

# 使用 DAX 的服务相关 IAM 角色
<a name="using-service-linked-roles"></a>

Amazon DynamoDB Accelerator (DAX) 使用 Amazon Identity and Access Management (IAM) [服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服务相关角色是一种独特类型的 IAM 角色，它与 DAX 直接相关。服务相关角色由 DAX 预定义，包含服务代表您调用其他 Amazon 服务所需的所有权限。

服务相关角色可让您更轻松地设置 DAX，因为您不必手动添加必要的权限。DAX 定义其服务相关角色的权限，除非另外定义，否则只有 DAX 可以代入该角色。定义的权限包括信任策略和权限策略。这些权限策略不能附加到任何其他 IAM 实体。

只有先删除角色的相关资源，才能删除角色。这将保护您的 DAX 资源，因为无法意外删除对资源的访问权限。

有关支持服务相关角色的其他服务的信息，请参阅 *IAM 用户指南*的[与 IAM 配合使用的 Amazon 服务](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。查找**服务相关角色**列为**是**的服务。选择**是**链接，查看该服务的服务相关角色文档。

**Topics**
+ [DAX 的服务相关角色权限](#service-linked-role-permissions)
+ [创建 DAX 的服务相关角色](#create-service-linked-role)
+ [编辑 DAX 的服务相关角色](#edit-service-linked-role)
+ [删除 DAX 的服务相关角色](#delete-service-linked-role)

## DAX 的服务相关角色权限
<a name="service-linked-role-permissions"></a>

DAX 使用名为 `AWSServiceRoleForDAX` 的服务相关角色。此角色允许 DAX 代表 DAX 集群调用服务。

**重要**  
`AWSServiceRoleForDAX` 服务相关角色使您可以轻松地设置和维护 DAX 集群。但是，您仍必须先授予每个集群对 DynamoDB 的访问权限，然后才能使用它。有关更多信息，请参阅 [DAX 访问控制](DAX.access-control.md)。

`AWSServiceRoleForDAX` 服务相关角色信任以下服务代入该角色：
+ `dax.amazonaws.com`

角色权限策略允许 DAX 对指定资源完成以下操作：
+ 对 `ec2` 的操作：
  + `AuthorizeSecurityGroupIngress`
  + `CreateNetworkInterface`
  + `CreateSecurityGroup`
  + `DeleteNetworkInterface`
  + `DeleteSecurityGroup`
  + `DescribeAvailabilityZones`
  + `DescribeNetworkInterfaces`
  + `DescribeSecurityGroups`
  + `DescribeSubnets`
  + `DescribeVpcs`
  + `ModifyNetworkInterfaceAttribute`
  + `RevokeSecurityGroupIngress`

您必须配置权限，允许 IAM 实体（如用户、组或角色）创建、编辑或删除服务关联角色。有关更多信息，请参阅《IAM 用户指南》**中的[服务关联角色权限](https://docs.amazonaws.cn/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

**允许 IAM 实体创建 AWSServiceRoleForDAX 服务相关角色**

 向该 IAM 实体的权限中添加以下策略声明。

```
{
    "Effect": "Allow",
    "Action": [
        "iam:CreateServiceLinkedRole"
    ],
    "Resource": "*",
    "Condition": {"StringLike": {"iam:AWSServiceName": "dax.amazonaws.com"}}
}
```

## 创建 DAX 的服务相关角色
<a name="create-service-linked-role"></a>

无需手动创建服务相关角色。创建集群时，DAX 将为您创建服务相关角色。

**重要**  
如果您在 2018 年 2 月 28 日开始支持服务相关角色之前使用 DAX 服务，DAX 会在您的账户中创建 `AWSServiceRoleForDAX` 角色。有关更多信息，请参阅 *IAM 用户指南*的[我的 Amazon 账户中出现新角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

如果删除此服务相关角色然后需要再次创建它，则可以使用相同的流程在您的账户中重新创建此角色。创建实例或集群时，DAX 将再次为您创建服务相关角色。

## 编辑 DAX 的服务相关角色
<a name="edit-service-linked-role"></a>

DAX 不允许您编辑 `AWSServiceRoleForDAX` 服务相关角色。创建服务关联角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色描述。有关更多信息，请参见 *IAM 用户指南*中的[编辑服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除 DAX 的服务相关角色
<a name="delete-service-linked-role"></a>

如果不再需要使用某个需要服务相关角色的功能或服务，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是，您必须先删除所有 DAX 集群，然后才能删除服务相关角色。

### 清除服务相关角色
<a name="service-linked-role-review-before-delete"></a>

必须先确认服务相关角色没有活动会话并删除该角色使用的任何资源，然后才能使用 IAM 删除服务相关角色。

**在 IAM 控制台中检查服务相关角色是否具有活动会话**

1. 登录 Amazon Web Services 管理控制台，打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

1. 在 IAM 控制台的导航窗格中，选择**角色**。然后选择 **AWSServiceRoleForDAX** 角色的名称（不是复选框）。

1. 在所选角色的**摘要**页面上，选择**访问顾问**选项卡。

1. 在**访问顾问**选项卡查看服务相关角色的近期活动。
**注意**  
如果您不确定 DAX 是否正在使用 `AWSServiceRoleForDAX` 角色，可以尝试删除该角色。如果服务正在使用该角色，则删除操作会失败，并且您可以查看正在使用该角色的区域。如果该角色正在使用中，则您必须先删除 DAX 集群，然后才能删除该角色。无法撤销服务相关角色对会话的权限。

如果要删除 `AWSServiceRoleForDAX` 角色，必须先删除您的所有 DAX 集群。

#### 删除所有 DAX 集群
<a name="delete-service-linked-role.clusters"></a>

使用以下过程之一删除每个 DAX 集群。

**要删除 DAX 集群（控制台）**

1. 打开 DynamoDB 控制台：[https://console.aws.amazon.com/dynamodb/](https://console.amazonaws.cn/dynamodb/)。

1. 在导航窗格的 **DAX**下，选择**集群**。

1. 选择**操作**，然后选择**删除**。

1. 在**删除集群确认**框中，选择**删除**。

**删除 DAX 集群 (Amazon CLI)**  
请参阅 *Amazon CLI 命令参考*的 [delete-cluster](https://docs.amazonaws.cn/cli/latest/reference/dax/delete-cluster.html)。

**要删除 DAX 集群 (API)**  
请参阅 *Amazon DynamoDB API 参考*的 [DeleteCluster](https://docs.amazonaws.cn/amazondynamodb/latest/APIReference/API_dax_DeleteCluster.html)。

#### 删除服务相关角色
<a name="delete-service-linked-role.slr"></a>

**使用 IAM 手动删除服务关联角色**

使用 IAM 控制台、IAM CLI 或 IAM API 删除 `AWSServiceRoleForDAX` 服务相关角色。有关更多信息，请参阅 *IAM 用户指南*的[删除服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。