

# 创建 DAX 集群
<a name="DAX.create-cluster"></a>

本节指导您完成在默认的 Amazon Virtual Private Cloud (Amazon VPC) 环境中首次设置和使用 Amazon DynamoDB Accelerator (DAX) 的过程。可以使用 AWS Command Line Interface (AWS CLI) 或 AWS 管理控制台 创建第一个 DAX 集群。

创建 DAX 集群之后，可以从在相同的 VPC 中运行的 Amazon EC2 实例进行访问。然后可以将您的 DAX 集群用于应用程序。有关更多信息，请参见 [使用 DynamoDB Accelerator（DAX) ）客户端进行开发](DAX.client.md)。

**Topics**
+ [为 DAX 创建一个 IAM 服务角色以访问 DynamoDB](#DAX.create-cluster.iam-permissions)
+ [DAX 和 IPv6](DAX.create-cluster.DAX_and_IPV6.md)
+ [使用 AWS CLI 创建 DAX 集群](DAX.create-cluster.cli.md)
+ [使用 AWS 管理控制台创建 DAX 集群](DAX.create-cluster.console.md)

## 为 DAX 创建一个 IAM 服务角色以访问 DynamoDB
<a name="DAX.create-cluster.iam-permissions"></a>

要让您的 DAX 集群可以代表您访问 DynamoDB 表，您必须创建一个*服务角色*。服务角色是 AWS Identity and Access Management (IAM) 角色，用于向 AWS 服务授权代表您执行操作。服务角色允许 DAX 访问您的 DynamoDB 表，就像您自己访问这些表一样。必须先创建服务角色，然后才能创建 DAX 集群。

如果使用控制台，则创建集群的工作流将检查是否存在现有的 DAX 服务角色。如果没有找到，则控制台将为您创建一个新的服务角色。有关更多信息，请参阅 [第 2 步：使用 AWS 管理控制台创建一个 DAX 集群](DAX.create-cluster.console.md#DAX.create-cluster.console.create-cluster)。

如果使用 AWS CLI，则必须指定之前创建的 DAX 服务角色。否则，需要事先创建一个新的服务角色。有关更多信息，请参阅 [第 1 步：使用 AWS CLI 为 DAX 创建一个 IAM 服务角色以访问 DynamoDB](DAX.create-cluster.cli.md#DAX.create-cluster.cli.create-service-role)。

### 创建服务角色所需的权限
<a name="DAX.create-cluster.iam-permissions.required"></a>

AWS 管理的 `AdministratorAccess` 策略提供创建 DAX 集群以及创建服务角色所需的所有权限。如果用户附加了 `AdministratorAccess`，则无需进一步操作。

否则，必须将以下权限添加到 IAM policy，以便用户可以创建服务角色：
+ `iam:CreateRole`
+ `iam:CreatePolicy`
+ `iam:AttachRolePolicy`
+ `iam:PassRole`

将这些权限附加到尝试执行操作的用户。

**注意**  
AWS 的 DynamoDB 托管策略中不包含 `iam:CreateRole`、`iam:CreatePolicy`、`iam:AttachRolePolicy` 和 `iam:PassRole` 权限。这是设计使然，因为这些权限提供了特权提升的可能性：即用户可以使用这些权限来创建新的管理员策略，然后将该策略附加到现有角色。因此，您（DAX 集群的管理员）必须明确将这些权限添加到您的策略。

### 问题排查
<a name="DAX.create-cluster.iam-permissions.troubleshooting"></a>

如果您的用户策略缺少 `iam:CreateRole`、`iam:CreatePolicy` 和 `iam:AttachPolicy` 权限，您会收到错误消息。下表列出这些消息，并说明了如何纠正问题。


****  

| 如果您看到此错误消息… | 执行以下操作： | 
| --- | --- | 
| User: arn:aws:iam::accountID:user/userName is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::accountID:role/service-role/roleName  | 将 iam:CreateRole 添加到您的用户策略中。 | 
| User: arn:aws:iam::accountID:user/userName is not authorized to perform: iam:CreatePolicy on resource: policy policyName |  将 iam:CreatePolicy 添加到您的用户策略中。 | 
| User: arn:aws:iam::accountID:user/userName is not authorized to perform: iam:AttachRolePolicy on resource: role daxServiceRole | 将 iam:AttachRolePolicy 添加到您的用户策略中。 | 

有关 DAX 集群管理所需的 IAM policy 的更多信息，请参见。[DAX 访问控制](DAX.access-control.md)