

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

# 為 Amazon ElastiCache 使用服務連結角色
<a name="using-service-linked-roles"></a>

Amazon ElastiCache 使用 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)。服務連結角色是直接連結至 AWS 服務的唯一 IAM 角色類型，例如 Amazon ElastiCache。Amazon ElastiCache 服務連結角色由 Amazon ElastiCache 預先定義。此角色包含服務需要的所有許可，以代您來呼叫其他的 AWS 服務。

服務連結角色可讓設定 Amazon ElastiCache 更為簡單，因為您不必手動新增必要的許可。這些角色已存在於您的帳戶中， AWS 但會連結至 Amazon ElastiCache 使用案例，並具有預先定義的許可。只有 Amazon ElastiCache 可以擔任這些角色，且只有這些角色可以使用預先定義的許可政策。您必須先刪除角色的相關資源，才能刪除角色。這可保護您的 Amazon ElastiCache 資源，避免您不小心移除存取資源所需的許可。

如需關於支援服務連結角色的其他服務的資訊，請參閱[可搭配 IAM 運作的AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，並尋找 **Service-Linked Role** (服務連結角色) 欄顯示為 **Yes **(是) 的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

**Contents**
+ [服務連結角色許可](#service-linked-role-permissions)
  + [建立服務連結角色的許可](#service-linked-role-permissions)
+ [建立服務連結角色 (IAM)](#create-service-linked-role-iam)
  + [使用 IAM 主控台](#create-service-linked-role-iam-console)
  + [使用 IAM CLI](#create-service-linked-role-iam-cli)
  + [使用 IAM API](#create-service-linked-role-iam-api)
+ [編輯服務連結角色描述](#edit-service-linked-role)
  + [使用 IAM 主控台](#edit-service-linked-role-iam-console)
  + [使用 IAM CLI](#edit-service-linked-role-iam-cli)
  + [使用 IAM API](#edit-service-linked-role-iam-api)
+ [刪除 Amazon ElastiCache 的服務連結角色](#delete-service-linked-role)
  + [清除服務連結角色](#service-linked-role-review-before-delete)
  + [刪除服務連結角色 (IAM 主控台)](#delete-service-linked-role-iam-console)
  + [刪除服務連結角色 (IAM CLI)](#delete-service-linked-role-iam-cli)
  + [刪除服務連結角色 (IAM API)](#delete-service-linked-role-iam-api)

## Amazon ElastiCache 的服務連結角色許可
<a name="service-linked-role-permissions"></a>

### 建立服務連結角色的許可
<a name="service-linked-role-permissions"></a>

**允許 IAM 實體建立 AWS ServiceRoleForElastiCache 服務連結角色**

將以下政策陳述式新增到該 IAM 實體的許可中：

```
{
    "Effect": "Allow",
    "Action": [
        "iam:CreateServiceLinkedRole",
        "iam:PutRolePolicy"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/elasticache.amazonaws.com/AWS ServiceRoleForElastiCache*",
    "Condition": {"StringLike": {"iam:AWS ServiceName": "elasticache.amazonaws.com"}}
}
```

**允許 IAM 實體刪除 AWS ServiceRoleForElastiCache 服務連結角色**

將以下政策陳述式新增到該 IAM 實體的許可中：

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/elasticache.amazonaws.com/AWS ServiceRoleForElastiCache*",
    "Condition": {"StringLike": {"iam:AWS ServiceName": "elasticache.amazonaws.com"}}
}
```

或者，您可以使用 AWS 受管政策來提供 Amazon ElastiCache 的完整存取權。

## 建立服務連結角色 (IAM)
<a name="create-service-linked-role-iam"></a>

您可以使用 IAM 主控台、CLI 或 API 建立服務連結角色。

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

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

**建立服務連結角色 (主控台)**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇**角色**。然後選擇 **Create new role (建立新角色)**。

1. 在 **Select type of trusted entity (選擇可信任的實體類型)** 下，選擇 **AWS Service (AWS 服務)**。

1. 在 **Or select a service to view its use cases (或者選取服務以檢視其使用案例)** 下，選擇 **ElastiCache**。

1. 選擇**下一步：許可**。

1. 在 **Policy name (政策名稱)**，請注意 `ElastiCacheServiceRolePolicy` 是此角色的必要項目。選擇 **Next: Add Tags (下一步：新增標籤)**。

1. 請注意，服務連結的角色不支援標籤。選擇 **Next:Review (下一步：檢閱)**。

1. (選擇性) 針對 **Role description (角色描述)**，編輯新服務連結角色的描述。

1. 檢閱角色，然後選擇 **Create role (建立角色)**。

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

您可以從 使用 IAM 操作 AWS Command Line Interface 來建立服務連結角色。此角色可包含服務擔任該角色所需的信任政策與內嵌政策。

**建立服務連結角色 (CLI)**

使用以下操作：

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

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

您可以使用 IAM API 建立服務連結角色。此角色可包含服務擔任該角色所需的信任政策與內嵌政策。

**建立服務連結角色 (API)**

使用 [CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) API 呼叫。在請求中指定 `elasticache.amazonaws.com` 的服務名稱。

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

Amazon ElastiCache 不允許您編輯 AWS ServiceRoleForElastiCache 服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。

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

您可以使用 IAM 主控台來編輯服務連結角色描述。

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

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

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

1. 在 **Role description** (角色說明) 的最右邊，選擇 **Edit** (編輯)。

1. 在方塊中輸入新的描述，然後選擇 **Save (儲存)**。

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

您可以從 使用 IAM 操作 AWS Command Line Interface 來編輯服務連結角色描述。

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

1. （選用） 若要檢視角色的目前描述，請使用適用於 IAM 操作 AWS CLI 的 `[get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html)`。  
**Example**  

   ```
   $ aws iam [get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html) --role-name AWS ServiceRoleForElastiCache
   ```

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

1. 若要更新服務連結角色的描述，請使用適用於 IAM 操作 AWS CLI 的 `[update-role-description](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role-description.html)`。

   若為 Linux、macOS 或 Unix：

   ```
   $ aws iam [update-role-description](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role-description.html) \
       --role-name AWS ServiceRoleForElastiCache \
       --description "new description"
   ```

   針對 Windows：

   ```
   $ aws iam [update-role-description](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role-description.html) ^
       --role-name AWS ServiceRoleForElastiCache ^
       --description "new 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)。  
**Example**  

   ```
   https://iam.amazonaws.com/
      ?Action=[GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)
      &RoleName=AWS ServiceRoleForElastiCache
      &Version=2010-05-08
      &AUTHPARAMS
   ```

1. 若要更新角色的描述，請使用 IAM API 操作 [UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)。  
**Example**  

   ```
   https://iam.amazonaws.com/
      ?Action=[UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)
      &RoleName=AWS ServiceRoleForElastiCache
      &Version=2010-05-08
      &Description="New description"
   ```

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

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

Amazon ElastiCache 不會為您刪除服務連結角色。

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

您必須先確認角色沒有與該角色相關聯的資源、叢集或複寫群組，才能使用 IAM 來刪除服務連結角色。

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

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇**角色**。然後選擇 AWS ServiceRoleForElastiCache 角色的名稱 （非核取方塊）。

1. 在所選角色的 **Summary (摘要)** 頁面中，選擇 **Access Advisor (存取 Advisor)** 分頁。

1. 在 **Access Advisor (存取 Advisor)** 分頁中，檢閱服務連結角色的近期活動。

**刪除需要ServiceRoleForElastiCache 的 Amazon ElastiCache 資源 AWS ServiceRoleForElastiCache**
+ 若要刪除叢集，請參閱下列指示：
  + [使用AWS 管理主控台](Clusters.Delete.md#Clusters.Delete.CON)
  + [使用AWS CLI刪除 ElastiCache 叢集](Clusters.Delete.md#Clusters.Delete.CLI)
  + [使用 ElastiCache API](Clusters.Delete.md#Clusters.Delete.API)
+ 若要刪除複寫群組，請參閱下列指示：
  + [刪除複寫群組 (主控台)](Replication.DeletingRepGroup.md#Replication.DeletingRepGroup.CON)
  + [刪除複寫群組 (AWS CLI)](Replication.DeletingRepGroup.md#Replication.DeletingRepGroup.CLI)
  + [刪除複寫群組 (ElastiCache API)](Replication.DeletingRepGroup.md#Replication.DeletingRepGroup.API)

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

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

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

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇 **Roles (角色)**。然後，選擇您要刪除的角色名稱旁的核取方塊，而非名稱或資料列本身。

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. 如果您不知道想要刪除的服務連結角色名稱，請輸入以下命令。此命令會列出您的帳戶中的角色及其 Amazon 資源名稱 (ARN)。

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

   透過 CLI 操作，使用角色名稱 (而非 ARN) 來參照角色。例如，如果角色的 ARN 為 `arn:aws:iam::123456789012:role/myrole`，參考這個角色時就需使用 **myrole**。

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 role-name
   ```

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)。在請求中，指定角色名稱。

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

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

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