使用服務連結角色進行清除 - Amazon EMR

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

使用服務連結角色進行清除

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

服務連結角色可與 Amazon EMR 服務角色和 Amazon EC2 執行個體設定檔搭配使用,適用於 Amazon EMR。如需服務角色和執行個體設定檔的詳細資訊,請參閱將 Amazon EMR 許可的 IAM 服務角色設定為 AWS 服務和資源

服務連結角色可讓您輕鬆設定 Amazon EMR,因為您不必手動新增必要的許可。Amazon EMR 會定義其服務連結角色的許可,除非另有定義,否則只有 Amazon EMR 可以擔任其角色。定義的許可包括信任政策和許可政策,且該許可政策無法附加至其他 IAM 實體。

只有在刪除帳戶中的任何相關資源並終止所有 EMR 叢集後,才能刪除 Amazon EMR 的此服務連結角色。這樣可以保護您的 Amazon EMR 資源,因此您不會意外移除存取資源的權限。

使用服務連結角色進行清除

如果 Amazon EMR 服務連結AWSServiceRoleForEMRCleanup角色失去該功能,Amazon EMR 會使用以服務為基礎的角色授與 Amazon EMR 權限,以代表您終止和刪除 Amazon EC2 資源。Amazon EMR 會在叢集建立期間自動建立服務連結角色 (如果尚未存在)。

服 AWSServiceRoleForEMRCleanup 務連結角色會信任下列服務擔任該角色:

  • elasticmapreduce.amazonaws.com

AWSServiceRoleForEMRCleanup 服務連結角色許可政策允許 Amazon EMR 對指定的資源完成下列動作:

  • 動作:ec2 上的 DescribeInstances

  • 動作:ec2 上的 DescribeSpotInstanceRequests

  • 動作:ec2 上的 ModifyInstanceAttribute

  • 動作:ec2 上的 TerminateInstances

  • 動作:ec2 上的 CancelSpotInstanceRequests

  • 動作:ec2 上的 DeleteNetworkInterface

  • 動作:ec2 上的 DescribeInstanceAttribute

  • 動作:ec2 上的 DescribeVolumeStatus

  • 動作:ec2 上的 DescribeVolumes

  • 動作:ec2 上的 DetachVolume

  • 動作:ec2 上的 DeleteVolume

您必須設定許可,IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。

建立 Amazon EMR 的服務連結角色

您不需要手動建立 AWSServiceRoleForEMRCleanup 角色。當您第一次啟動叢集或 AWSServiceRoleForEMRCleanup 服務連結角色不存在時,Amazon EMR 會為您建立 AWSServiceRoleForEMRCleanup 服務連結角色。您必須擁有建立服務連結角色的權限。如需新增此功能至 IAM 實體 (例如使用者、群組或角色) 許可政策的範例陳述式,請參閱 使用服務連結角色進行清除

重要

如果您在 2017 年 10 月 24 日之前使用 Amazon EMR,但不支援服務連結角色,則 Amazon EMR 會在您的帳戶中建立 AWSServiceRoleForEMRCleanup 服務連結角色。如需詳細資訊,請參閱我的 IAM 帳戶中出現新角色

編輯 Amazon EMR 的服務連結角色

Amazon EMR 不允許您編輯 AWSServiceRoleForEMRCleanup 服務連結角色。建立服務連結角色之後,您無法變更服務連結角色的名稱,因為各種實體可能會參照服務連結角色。不過,您可以使用 IAM 編輯服務連結角色的說明。

編輯服務連結角色說明 (IAM 主控台)

您可以使用 IAM 主控台來編輯服務連結角色的說明。

編輯服務連結角色的說明 (主控台)
  1. 在 IAM 主控台的導覽窗格中,選擇 Roles (角色)。

  2. 選擇要修改之角色的名稱。

  3. 角色描述右側,選擇編輯

  4. 在方塊中輸入新說明,然後選擇 Save changes (儲存變更)。

編輯服務連結角色描述 (IAM CLI)

您可以使用的 IAM 命令 AWS Command Line Interface 來編輯服務連結角色的說明。

變更服務連結角色的說明 (CLI)
  1. (選用) 若要檢視角色的目前說明,請使用下列命令:

    $ aws iam get-role --role-name role-name

    透過 CLI 命令,使用角色名稱 (而非 ARN) 來參照角色。例如,如果角色具有下列 ARN:arn:aws:iam::123456789012:role/myrole,請將角色參照為 myrole

  2. 若要更新服務連結角色的說明,請使用下列其中一個命令:

    $ aws iam update-role-description --role-name role-name --description description

編輯服務連結角色說明 (IAM API)

您可以使用 IAM API 來編輯服務連結角色的說明。

變更服務連結角色的說明 (API)
  1. (選用) 若要檢視角色的目前說明,請使用下列命令:

    IAM API:GetRole

  2. 若要更新角色的說明,請使用下列命令:

    IAM API:UpdateRoleDescription

刪除 Amazon EMR 的服務連結角色

如果您不再需要使用需要服務連結角色的功能或服務,建議您刪除該服務連結角色。如此一來,您就沒有未主動監控或維護的未使用實體。然而,務必清除您的服務連結角色,之後才能將其刪除。

清除服務連結角色

您必須先確認服務連結角色沒有作用中工作階段,並移除服務連結角色所使用的任何資源,然後才能使用 IAM 刪除服務連結角色。

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

  2. 在導覽窗格中,選擇角色。選取 AWSServiceRoleForEMRCleanup 服務連結角色的名稱 (而非核取方塊)。

  3. 在所選服務連結角色的 [摘要] 頁面上,選擇 [存取建議程式]。

  4. Access Advisor (存取 Advisor) 標籤中,檢閱服務連結角色的近期活動。

    注意

    如果您不確定 Amazon EMR 是否使用 AWSServiceRoleForEMRCleanup 服務連結角色,可以嘗試刪除服務連結角色。如果服務使用服務連結角色,則刪除作業會失敗,您可以檢視使用服務連結角色的區域。如果正在使用服務連結角色,您必須等待工作階段結束,才能刪除服務連結角色。您無法撤銷服務連結角色的工作階段。

要刪除 Amazon EMR 資源使用 AWSServiceRoleForEMRCleanup
  • 終止您帳戶內的所有叢集。如需詳細資訊,請參閱 終止叢集

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

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

刪除服務連結角色 (主控台)
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇角色。選取旁邊的核取方塊 AWSServiceRoleForEMRCleanup,而不是名稱或列本身。

  3. 在頁面頂端的 Role (角色) 動作中選擇 Delete (刪除) 角色。

  4. 在確認對話方塊中,複查上次存取服務的資料,其中顯示每個選取角色上次存取 AWS 服務的時間。這可協助您確認角色目前是否作用中。若要繼續,請選擇 Yes, Delete (是,刪除)

  5. 查看 IAM 主控台通知,監視服務連結角色刪除的進度。由於 IAM 服務連結角色刪除是非同步的,因此在您提交要刪除的服務連結角色之後,刪除工作可能會成功或失敗。如果任務失敗,您可以從通知中選擇 View details (檢視詳細資訊)View Resources (檢視資源),以了解刪除失敗的原因。如果刪除因角色使用服務中資源而失敗,則失敗原因會包含資源清單。

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

您可以使用的 IAM 命令 AWS Command Line Interface 來刪除服務連結角色。因為無法刪除正在使用或具有相關聯資源的服務連結角色,所以您必須提交刪除要求。如果不符合這些條件,則該要求可能遭拒。

刪除服務連結角色 (CLI)
  1. 若要檢查刪除任務的狀態,您必須從回應中擷取 deletion-task-id。鍵入下列命令,以提交服務連結角色刪除要求:

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

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

    刪除任務的狀態可以是 NOT_STARTEDIN_PROGRESSSUCCEEDEDFAILED。如果刪除失敗,則呼叫會傳回失敗原因,以進行疑難排解。

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

您可以使用 IAM API 刪除服務連結角色。因為無法刪除正在使用或具有相關聯資源的服務連結角色,所以您必須提交刪除要求。如果不符合這些條件,則該要求可能遭拒。

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

    若要檢查刪除任務的狀態,您必須從回應中擷取 DeletionTaskId

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

    刪除任務的狀態可以是 NOT_STARTEDIN_PROGRESSSUCCEEDEDFAILED。如果刪除失敗,則呼叫會傳回失敗原因,以進行疑難排解。

支援的地區 AWSServiceRoleForEMRCleanup

Amazon EMR 支援在下列區域中使用 AWSServiceRoleForEMRCleanup 服務連結角色。

區域名稱 區域身分 在 Amazon EMR 中支援
美國東部 (維吉尼亞北部) us-east-1
美國東部 (俄亥俄) us-east-2
美國西部 (加利佛尼亞北部) us-west-1
美國西部 (奧勒岡) us-west-2
亞太區域 (孟買) ap-south-1
亞太區域 (大阪) ap-northeast-3
亞太區域 (首爾) ap-northeast-2
亞太區域 (新加坡) ap-southeast-1
亞太區域 (雪梨) ap-southeast-2
亞太區域 (東京) ap-northeast-1
加拿大 (中部) ca-central-1
歐洲 (法蘭克福) eu-central-1
歐洲 (愛爾蘭) eu-west-1
歐洲 (倫敦) eu-west-2
歐洲 (巴黎) eu-west-3
南美洲 (聖保羅) sa-east-1