使用 的服務連結角色 AWS Batch - AWS Batch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 的服務連結角色 AWS Batch

AWS Batch use AWS Identity and Access Management (IAM) 服務連結角色。服務連結角色是直接連結至的 IAM 角色的唯一類型 AWS Batch。服務連結角色由 預先定義, AWS Batch 並包含服務 AWS 代表您呼叫其他服務所需的所有許可。

服務連結角色可讓您更 AWS Batch 輕鬆地設定,因為您不必手動新增必要的許可。 AWS Batch 會定義其服務連結角色的許可,除非另有定義,否則只能 AWS Batch 擔任其角色。定義的許可包括信任政策和許可政策,該許可政策無法連接到任何其他 IAM 實體。

注意

執行下列其中一個動作,以指定 AWS Batch 運算環境的服務角色。

  • 使用服務角色的空字串。這可讓 AWS Batch 建立服務角色。

  • 以下列格式指定服務角色:arn:aws:iam::account_number:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch

如需詳細資訊,請參閱 AWS Batch 使用者指南角色名稱或 ARN 不正確中的 。

您必須先刪除服務連結角色的相關資源,才能將其刪除。如此可保護您 AWS Batch 的資源,避免您不小心移除資源的存取許可。

如需有關支援服務連結角色的其他 服務的資訊,請參閱服務連結角色欄中AWS 與 IAM 搭配使用的服務,並尋找具有 Yes 的服務。選擇具有連結的,以檢視該服務的服務連結角色文件。

的服務連結角色許可 AWS Batch

AWS Batch 使用名為 AWSServiceRoleForBatch 的服務連結角色。AWSServiceRoleForBatch 角色 AWS Batch 允許 代表您建立和管理 AWS 資源。

AWSServiceRoleForBatch 服務連結角色信任batch.amazonaws.com服務主體擔任該角色。

名為 BatchServiceRolePolicy 的 IAM 政策 AWS Batch 允許 在特定資源上完成下列動作:

  • autoscaling – 允許 AWS Batch 建立和管理 Amazon EC2 Auto Scaling 資源。 AWS Batch 建立和管理大多數運算環境的 Amazon EC2 Auto Scaling 群組。

  • ec2 – 允許 AWS Batch 控制 Amazon EC2 執行個體的生命週期,以及建立和管理啟動範本和標籤。 AWS Batch 建立和管理某些 EC2 Spot 運算環境的 EC2 Spot 機群請求。

  • ecs - 允許 AWS Batch 建立和管理 Amazon ECS 叢集、任務定義和任務,以進行任務執行。

  • eks - 允許 AWS Batch 描述用於驗證的 Amazon EKS 叢集資源。

  • iam - 允許 AWS Batch 將擁有者提供的角色驗證並傳遞給 Amazon EC2、Amazon EC2 Auto Scaling 和 Amazon ECS。

  • logs – 允許 AWS Batch 建立和管理 AWS Batch 任務的日誌群組和日誌串流。

您必須設定許可,以允許 IAM 實體 (例如使用者、群組或角色) 建立、編輯或刪除服務連結角色。如需詳細資訊,請參閱 IAM 使用者指南中的服務連結角色許可

為 建立服務連結角色 AWS Batch

您不需要手動建立一個服務連結角色。當您在 AWS Management Console AWS CLI、 或 AWS API 中 CreateComputeEnvironment Word,且未指定 serviceRole 參數的值時, 會為您 AWS Batch 建立服務連結角色。

重要

此服務連結角色可以顯示在您的帳戶,如果您於其他服務中完成一項動作時,可以使用支援此角色的功能。此外,如果您在 2021 年 3 月 10 日之前使用 AWS Batch 服務,當服務連結角色開始支援時, 會在您的帳戶中 AWS Batch 建立 AWSServiceRoleForBatch 角色。若要進一步了解,請參閱 My IAM 帳戶中出現的新角色

若您刪除此服務連結角色,之後需要再次建立,您可以在帳戶中使用相同程序重新建立角色。當 you CreateComputeEnvironment 時, 會再次為您 AWS Batch 建立服務連結角色。

編輯 的服務連結角色 AWS Batch

使用 AWS Batch,您無法編輯 AWSServiceRoleForBatch 服務連結角色。因為可能有各種實體會參考服務連結角色,所以您無法在建立角色之後變更其名稱。不過,您可以使用 IAM 編輯角色的描述。如需詳細資訊,請參閱 IAM 使用者指南中的編輯服務連結角色

允許 IAM 實體編輯 AWSServiceRoleForBatch 服務連結角色的描述

將下列陳述式新增至許可政策。這可讓 IAM 實體編輯服務連結角色的描述。

{ "Effect": "Allow", "Action": [ "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch", "Condition": {"StringLike": {"iam:AWSServiceName": "batch.amazonaws.com"}} }

刪除 的服務連結角色 AWS Batch

我們建議您,如果您不再需要使用需要服務連結角色的功能或服務,請刪除該角色。如此一來,您沒有未使用的實體,而該實體未受到主動監控或維護。然而,在手動刪除服務連結角色之前,您必須先清除資源。

允許 IAM 實體刪除 AWSServiceRoleForBatch 服務連結角色

將下列陳述式新增至許可政策。這可讓 IAM 實體刪除服務連結角色。

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch", "Condition": {"StringLike": {"iam:AWSServiceName": "batch.amazonaws.com"}} }

清除服務連結角色

您必須先確認角色沒有作用中工作階段,並刪除單一分割區中所有 AWS 區域中使用該角色的所有 AWS Batch 運算環境,才能使用 IAM 刪除服務連結角色。

檢查服務連結角色是否有作用中工作階段
  1. 在 IAM 開啟 https://console.aws.amazon.com/iam/ 主控台。

  2. 在導覽窗格中,選擇角色,然後選擇 AWSServiceRoleForBatch 名稱 (而非核取方塊)。

  3. Summary (摘要) 頁面上,選擇 Access Advisor (存取 Advisor),然後檢閱服務連結角色的近期活動。

    注意

    如果您不知道 AWS Batch 是否使用 AWSServiceRoleForBatch 角色,您可以嘗試刪除角色。如果服務使用角色,則角色無法刪除。您可以檢視正在使用角色的區域。如果服務正在使用該角色,您必須先等到工作階段結束,才能刪除該角色。您無法撤銷服務連結角色的工作階段。

若要移除 AWSServiceRoleForBatch 服務連結角色所使用的 AWS Batch 資源

您必須刪除所有 AWS 區域中使用 AWSServiceRoleForBatch 角色的所有 AWS Batch 運算環境,才能刪除 AWSServiceRoleForBatch 角色。

  1. https://console.aws.amazon.com/batch/ 開啟 AWS Batch 主控台。

  2. 從導覽列中選取要使用的「區域」。

  3. 在導覽窗格中,選擇 Compute environments (運算環境)。

  4. 選取運算環境。

  5. 選擇停用。等待狀態變更為 DISABLED

  6. 選取運算環境。

  7. 選擇 刪除 。選擇刪除運算環境,確認您想要刪除運算環境

  8. 針對在所有區域中使用服務連結角色的所有運算環境,重複步驟 1–7。

在 IAM (主控台) 中刪除服務連結角色

您可以使用 IAM 主控台來刪除服務連結角色。

刪除服務連結角色 (主控台)
  1. 登入 AWS Management Console 並在 IAM 開啟 https://console.aws.amazon.com/iam/ 主控台。

  2. 在 IAM 主控台的導覽窗格中,選擇角色。然後選取 AWSServiceRoleForBatch 旁的核取方塊,而非名稱或資料列本身。

  3. 選擇 Delete role (刪除角色)。

  4. 在確認對話方塊中,檢閱服務上次存取資料,以顯示每個所選取角色上次存取 AWS 服務的時間。這可協助您確認角色目前是否作用中。如果您想要繼續進行,請選擇 Yes, Delete (是,刪除) 來提交服務連結角色以進行刪除。

  5. 觀看 IAM 主控台通知,以監控服務連結角色刪除的進度。由於 IAM 服務連結角色刪除是非同步的,因此在您提交角色以供刪除之後,刪除任務可能會成功或失敗。

    • 如果任務成功,則會從清單中移除角色,而且成功通知會出現在頁面頂端。

    • 如果任務失敗,您可以從通知中選擇 View details (檢視詳細資訊)View Resources (檢視資源),以了解刪除失敗的原因。如果刪除因角色使用服務資源而失敗,則服務傳回該資訊時,通知會包含資源清單。您接著可以清除資源,並重新提交刪除。

      注意

      根據服務所傳回的資訊,您可能需要重複此程序數次。例如,您的服務連結角色可能會使用六個資源,而且您的服務可能傳回其中五項的相關資訊。如果您清除五個資源,並重新提交刪除角色,則刪除會失敗,而且服務會報告還有一個資源。服務可能會傳回所有資源、其中一些資源,或未報告任何資源。

    • 如果任務失敗,而且通知未包含資源清單,則服務可能未傳回該資訊。若要了解如何清除該服務的資源,請參閱 AWS 服務 與 IAM 搭配使用。請在表格中找到您的服務,然後選擇 Yes (是) 連結,檢視該服務的服務連結角色文件。

在 IAM (AWS CLI) 中刪除服務連結角色

您可以從 使用 IAM 命令 AWS Command Line Interface 來刪除服務連結角色。

刪除服務連結角色 (CLI)
  1. 因為無法刪除正在使用或具有相關聯資源的服務連結角色,所以您必須提交刪除要求。如果不符合這些條件,則可以拒絕該請求。您必須從回應中擷取 deletion-task-id,以檢查刪除任務的狀態。輸入下列命令,以提交服務連結角色刪除要求:

    $ aws iam delete-service-linked-role --role-name AWSServiceRoleForBatch
  2. 使用下列命令,以檢查刪除任務的狀態:

    $ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id

    刪除任務的狀態可以是 NOT_STARTEDIN_PROGRESSSUCCEEDEDFAILED。如果刪除失敗,則呼叫會傳回失敗原因,以進行疑難排解。如果刪除因角色使用服務資源而失敗,則服務傳回該資訊時,通知會包含資源清單。您接著可以清除資源,並重新提交刪除。

    注意

    根據服務所傳回的資訊,您可能需要重複此程序數次。例如,您的服務連結角色可能會使用六個資源,而且您的服務可能傳回其中五項的相關資訊。如果您清除五個資源,並重新提交刪除角色,則刪除會失敗,而且服務會報告還有一個資源。服務可能會傳回所有資源,包括其中一些資源。或者,它可能不會報告任何資源。若要了解如何清除未報告任何資源之服務的資源,請參閱AWS 使用 IAM 的服務。請在表格中找到您的服務,然後選擇 Yes (是) 連結,檢視該服務的服務連結角色文件。

在 IAM (AWS API) 中刪除服務連結角色

您可以使用 IAM API來刪除服務連結角色。

刪除服務連結角色 (API)
  1. 若要提交服務連結卷的刪除請求,請呼叫 DeleteServiceLinkedRole。在請求中,指定 AWSServiceRoleForBatch 角色名稱。

    因為無法刪除正在使用或具有相關聯資源的服務連結角色,所以您必須提交刪除要求。如果不符合這些條件,則可以拒絕該請求。您必須從回應中擷取 DeletionTaskId,以檢查刪除任務的狀態。

  2. 若要檢查刪除的狀態,請呼叫 GetServiceLinkedRoleDeletionStatus。在請求中,指定 DeletionTaskId

    刪除任務的狀態可以是 NOT_STARTEDIN_PROGRESSSUCCEEDEDFAILED。如果刪除失敗,則呼叫會傳回失敗原因,以進行疑難排解。如果刪除因角色使用服務資源而失敗,則服務傳回該資訊時,通知會包含資源清單。您接著可以清除資源,並重新提交刪除。

    注意

    根據服務所傳回的資訊,您可能需要重複此程序數次。例如,您的服務連結角色可能會使用六個資源,而且您的服務可能傳回其中五項的相關資訊。如果您清除五個資源,並重新提交刪除角色,則刪除會失敗,而且服務會報告還有一個資源。服務可能會傳回所有資源、其中一些資源,或未報告任何資源。若要了解如何清除未報告任何資源之 服務的資源,請參閱AWS 服務 該 與 IAM 搭配使用。請在表格中找到您的服務,然後選擇 Yes (是) 連結,檢視該服務的服務連結角色文件。

AWS Batch 服務連結角色的支援區域

AWS Batch 支援在所有提供服務的區域中使用服務連結角色。如需詳細資訊,請參閱 AWS Batch 端點