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

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

使用服務連結角色 AWS Batch

AWS Batch 使用 AWS Identity and Access Management (IAM) 服務連結角色。服務連結角色是直接連結到 AWS Batch的唯一 IAM 角色類型。服務連結角色由預先定義, 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 的資源,避免您不小心移除資源的存取許可。

如需關於支援服務連結角色的其他服務的資訊,請參閱可搭配 IAM 運作的AWS 服務,並尋找服務連結角色欄顯示為的服務。選擇具有連結的,以檢視該服務的服務連結角色文件。

服務連結角色權限 AWS Batch

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

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

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

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

  • ec2— AWS Batch 允許控制 Amazon EC2 執行個體的生命週期,以及建立和管理啟動範本和標籤。 AWS Batch 為某些 EC2 競價型運算環境建立和管理 EC2 競價型叢集請求。

  • 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

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

重要

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

若您刪除此服務連結角色,之後需要再次建立,您可以在帳戶中使用相同程序重新建立角色。當您時 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"}} }

清除服務連結角色

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

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

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

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

    注意

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

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

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

  1. 請在以下位置開啟 AWS Batch 主控台。 https://console.aws.amazon.com/batch/

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

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

  4. 選取運算環境。

  5. 選擇停用。等待「狀」變更為「已停用」。

  6. 選取運算環境。

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

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

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

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

刪除服務連結角色 (主控台)
  1. 登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/

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

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

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

  5. 查看 IAM 主控台通知,監視服務連結角色刪除的進度。因為 IAM 服務連結角色刪除不同步,所以在您提交角色進行刪除之後,刪除任務可能會成功或失敗。

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

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

      注意

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

    • 如果任務失敗,而且通知未包含資源清單,則服務可能未傳回該資訊。若要瞭解如何清除該服務的資源,請參閱使用 IAM 的AWS 服務。請在表格中找到您的服務,然後選擇 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。如果刪除失敗,則呼叫會傳回失敗原因,以進行疑難排解。如果刪除因角色使用服務資源而失敗,則服務傳回該資訊時,通知會包含資源清單。您接著可以清除資源,並重新提交刪除。

    注意

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

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

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

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

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

  2. 要檢查刪除狀態,請致電GetServiceLinkedRoleDeletionStatus。在請求中,指定 DeletionTaskId

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

    注意

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

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

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