

 **帮助改进此页面** 

要帮助改进本用户指南，请选择位于每个页面右侧窗格中的**在 GitHub 上编辑此页面**链接。

# Amazon EKS 自动模式节点 IAM 角色
<a name="auto-create-node-role"></a>

**注意**  
您不能使用创建任何集群时使用的相同角色。

在创建节点之前，必须首先创建具有以下策略或同等权限的 IAM 角色：
+  [AmazonEKSWorkerNodeMinimalPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSWorkerNodeMinimalPolicy) 
+  [AmazonEC2ContainerRegistryPullOnly](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonEC2ContainerRegistryPullOnly) 

## 检查现有节点角色
<a name="auto-create-node-role-check"></a>

可以使用以下过程检查并查看您的账户是否已有 Amazon EKS 节点角色。

1. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

1. 在左侧导航窗格中，选择 **角色**。

1. 在角色列表中搜索 `AmazonEKSAutoNodeRole`。如果具有其中一个名称的角色不存在，请参阅下一部分的说明以创建该角色。如果包含 `AmazonEKSAutoNodeRole` 的角色确实存在，请选择该角色以查看附加的策略。

1. 选择**权限**。

1. 确保附加了上述必需的策略或等效自定义策略。

1. 选择 **Trust relationships**（信任关系），然后选择 **Edit trust policy**（编辑信任策略）。

1. 验证信任关系是否包含以下策略。如果信任关系符合以下策略，请选择 **Cancel**（取消）。如果信任关系不匹配，请将策略复制到**编辑信任策略**窗口并选择**更新策略**。

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "ec2.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

## 创建 Amazon EKS 节点 IAM 角色
<a name="auto-create-node-role-iam"></a>

您可以使用 AWS 管理控制台 或 AWS 创建节点 IAM 角色。

### AWS 管理控制台
<a name="auto-create-node-role-console"></a>

1. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

1. 在左侧导航窗格中，选择 **Roles**（角色）。

1. 在 **Roles**（角色）页面上，选择 **Create role**（创建角色）。

1. 在 **Select trusted entity**（选择受信任的实体）页面上，请执行以下操作：

   1. 在**可信实体类型**部分中，选择 **AWS 服务**。

   1. 在 **Use case**（使用案例）下，选择 **EC2**。

   1. 选择**下一步**。

1. 在**添加权限**页面上，附加以下策略：
   +  [AmazonEKSWorkerNodeMinimalPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSWorkerNodeMinimalPolicy) 
   +  [AmazonEC2ContainerRegistryPullOnly](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonEC2ContainerRegistryPullOnly) 

1. 在 **Name, review, and create**（命名、查看和创建）页面中，请执行以下操作：

   1. 对于 **Role name**（角色名称），请为角色输入唯一名称，例如 `AmazonEKSAutoNodeRole`。

   1. 对于 **Description**（说明），请将当前文本替换为描述性文本，例如 `Amazon EKS - Node role`。

   1. 在**添加标签（可选）**下，将标签作为键值对附加，以将元数据添加到角色。有关在 IAM 中使用标签的更多信息，请参阅《IAM 用户指南》** 中的[标记 IAM 资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

   1. 选择**创建角色**。

### AWS CLI
<a name="auto-create-node-role-cli"></a>

 **创建节点 IAM 角色** 

使用上一步中的 **node-trust-policy.json** 文件来定义哪些实体可以代入该角色。运行以下命令以创建节点 IAM 角色：

```
aws iam create-role \
    --role-name AmazonEKSAutoNodeRole \
    --assume-role-policy-document file://node-trust-policy.json
```

 **记下角色 ARN** 

创建角色后，检索并保存节点 IAM 角色的 ARN。在后续步骤中，您将需要此 ARN。使用以下命令来获取 ARN：

```
aws iam get-role --role-name AmazonEKSAutoNodeRole --query "Role.Arn" --output text
```

 **附加必需的策略** 

将以下 AWS 托管式策略附加到节点 IAM 角色，以提供必要的权限：

附加 AmazonEKSWorkerNodeMinimalPolicy：

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoNodeRole \
    --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy
```

附加 AmazonEC2ContainerRegistryPullOnly：

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoNodeRole \
    --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
```