

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

# 使用 Amazon EMR 的服務連結角色進行清除
<a name="using-service-linked-roles-cleanup"></a>

Amazon EMR 使用 AWS Identity and Access Management (IAM) [服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服務連結角色是直接連結至 Amazon EMR 的一種特殊 IAM 角色類型。服務連結角色是由 Amazon EMR 預先定義，並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可與 Amazon EMR 服務角色和 Amazon EMR 的 Amazon EC2 執行個體描述檔搭配使用。如需服務角色和執行個體設定檔的詳細資訊，請參閱[設定服務和資源的 Amazon EMR 許可的 IAM AWS 服務角色](emr-iam-roles.md)。

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

只有在刪除任何相關資源並終止帳戶中的所有 EMR 叢集之後，您才能刪除 Amazon EMR 的此服務連結角色。這可保護您的 Amazon EMR 資源，讓您不會不小心移除存取資源的許可。

## 使用服務連結角色進行清除
<a name="using-service-linked-roles-permissions-cleanup"></a>

Amazon EMR 使用服務型 **AWSServiceRoleForEMRCleanup** 角色，在 Amazon EMR 服務連結角色失去該功能時，授予 Amazon EMR 代表您終止和刪除 Amazon EC2 資源的許可。如果尚未存在，Amazon EMR 會在叢集建立期間自動建立服務連結角色。

AWSServiceRoleForEMRCleanup 服務連結角色信任下列服務可擔任該角色：
+ `elasticmapreduce.amazonaws.com`

AWSServiceRoleForEMRCleanup 服務連結角色許可政策允許 Amazon EMR 對指定的資源上完成下列動作：
+ 動作：`ec2` 上的 `DescribeInstances`
+ 動作：`ec2` 上的 `DescribeLaunchTemplates`
+ 動作：`ec2` 上的 `DeleteLaunchTemplate`
+ 動作：`ec2` 上的 `DescribeSpotInstanceRequests`
+ 動作：`ec2` 上的 `ModifyInstanceAttribute`
+ 動作：`ec2` 上的 `TerminateInstances`
+ 動作：`ec2` 上的 `CancelSpotInstanceRequests`
+ 動作：`ec2` 上的 `DeleteNetworkInterface`
+ 動作：`ec2` 上的 `DescribeInstanceAttribute`
+ 動作：`ec2` 上的 `DescribeVolumeStatus`
+ 動作：`ec2` 上的 `DescribeVolumes`
+ 動作：`ec2` 上的 `DetachVolume`
+ 動作：`ec2` 上的 `DeleteVolume`
+ 動作：`ec2` 上的 `DescribePlacementGroups`
+ 動作：`ec2` 上的 `DeletePlacementGroup`

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

## 建立 Amazon EMR 的服務連結角色
<a name="create-service-linked-role"></a>

您不需要手動建立 AWSServiceRoleForEMRCleanup 角色。當您第一次啟動叢集或 AWSServiceRoleForEMRCleanup 服務連結角色不存在時，Amazon EMR 會為您建立 AWSServiceRoleForEMRCleanup 服務連結角色。您必須具有建立服務連結角色的許可。如需將此功能新增至 IAM 實體 （例如使用者、群組或角色） 許可政策的範例陳述式：

將下列陳述式新增至需要建立服務連結角色之 IAM 實體的許可政策。

```
{
             "Sid": "ElasticMapReduceServiceLinkedRole",
             "Effect": "Allow",
             "Action": "iam:CreateServiceLinkedRole",
             "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*",
             "Condition": {
                 "StringEquals": {
                     "iam:AWSServiceName": [
                         "elasticmapreduce.amazonaws.com",
                         "elasticmapreduce.amazonaws.com.rproxy.govskope.us.cn"
                     ]
                 }
             }
 }
```

**重要**  
如果您在 2017 年 10 月 24 日之前使用 Amazon EMR，當不支援服務連結角色時，Amazon EMR 會在您的帳戶中建立 AWSServiceRoleForEMRCleanup 服務連結角色。如需詳細資訊，請參閱[我的 IAM 帳戶中出現新角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

## 編輯 Amazon EMR 的服務連結角色
<a name="edit-service-linked-role"></a>

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

### 編輯服務連結角色說明 (IAM 主控台)
<a name="edit-service-linked-role-iam-console"></a>

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

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

1. 在 IAM 主控台的導覽窗格中，選擇 **Roles** (角色)。

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

1. 在**角色描述**右側，選擇**編輯**。

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

### 編輯服務連結角色描述 (IAM CLI)
<a name="edit-service-linked-role-iam-cli"></a>

您可以使用 的 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**。

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

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

### 編輯服務連結角色說明 (IAM API)
<a name="edit-service-linked-role-iam-api"></a>

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

**變更服務連結角色的說明 (API)**

1. (選用) 若要檢視角色的目前說明，請使用下列命令：

   IAM API：[GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) 

1. 若要更新角色的說明，請使用下列命令：

   IAM API：[UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)

## 刪除 Amazon EMR 的服務連結角色
<a name="delete-service-linked-role"></a>

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

### 清除服務連結角色
<a name="service-linked-role-review-before-delete"></a>

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

**檢查服務連結角色是否於 IAM 主控台有作用中的工作階段**

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇**角色**。選取 AWSServiceRoleForEMRCleanup 服務連結角色的名稱 （非核取方塊）。

1. 在所選服務連結角色的**摘要**頁面上，選擇 **Access Advisor**。

1. 在 **Access Advisor (存取 Advisor)** 標籤中，檢閱服務連結角色的近期活動。
**注意**  
如果您不確定 Amazon EMR 是否使用 AWSServiceRoleForEMRCleanup 服務連結角色，您可以嘗試刪除服務連結角色。如果服務使用服務連結角色，則刪除會失敗，而且您可以檢視使用服務連結角色的區域。如果正在使用服務連結角色，則必須等待工作階段結束，才能刪除服務連結角色。您無法撤銷服務連結角色的工作階段。

**移除 AWSServiceRoleForEMRCleanup 使用的 Amazon EMR 資源**
+ 終止您帳戶內的所有叢集。如需詳細資訊，請參閱[在啟動、執行或等待狀態下終止 Amazon EMR 叢集](UsingEMR_TerminateJobFlow.md)。

### 刪除服務連結角色 (IAM 主控台)
<a name="delete-service-linked-role-iam-console"></a>

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

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

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇**角色**。選取 AWSServiceRoleForEMRCleanup 旁邊的核取方塊，而非名稱或資料列本身。

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

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

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

### 刪除服務連結角色 (IAM CLI)
<a name="delete-service-linked-role-iam-cli"></a>

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

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

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

   ```
   $ aws iam [delete-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-service-linked-role.html) --role-name AWSServiceRoleForEMRCleanup
   ```

1. 鍵入下列命令，以檢查刪除任務的狀態：

   ```
   $ aws iam [get-service-linked-role-deletion-status](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-linked-role-deletion-status.html) --deletion-task-id deletion-task-id
   ```

   刪除任務的狀態可以是 `NOT_STARTED`、`IN_PROGRESS`、`SUCCEEDED` 或 `FAILED`。如果刪除失敗，則呼叫會傳回失敗原因，以進行疑難排解。

### 刪除服務連結角色 (IAM API)
<a name="delete-service-linked-role-iam-api"></a>

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

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

1. 若要提交服務連結角色的刪除請求，請呼叫 [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html)。在請求中，指定 AWSServiceRoleForEMRCleanup 角色名稱。

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

1. 如需檢查刪除的狀態，請呼叫 [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html)。在請求中，指定 `DeletionTaskId`。

   刪除任務的狀態可以是 `NOT_STARTED`、`IN_PROGRESS`、`SUCCEEDED` 或 `FAILED`。如果刪除失敗，則呼叫會傳回失敗原因，以進行疑難排解。

## AWSServiceRoleForEMRCleanup 支援的 區域
<a name="emr-slr-regions"></a>

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 | 是 | 