

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS 并行计算服务的 IAM 实例配置文件
<a name="security-instance-profiles"></a>

在 EC2 实例上运行的应用程序必须在其发出的任何 AWS API 请求中包含 AWS 证书。我们建议您使用 IAM 角色来管理 EC2 实例上的临时证书。您可以定义实例配置文件来执行此操作，并将其附加到您的实例。有关更多信息，请参阅《[亚马逊*弹性计算云用户指南》中的 Amazon* EC2 的 IAM 角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)。

**注意**  
当您使用为 Amazon EC2 创建 IAM 角色时，控制台会自动创建实例配置文件并将其命名为 IAM 角色。 AWS 管理控制台 如果您使用 AWS CLI、 AWS API 操作或 AWS 软件开发工具包创建 IAM 角色，则可以将实例配置文件作为单独的操作创建。有关更多信息，请参阅 *Amazon 弹性计算云用户指南*中的[实例配置文件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#ec2-instance-profile)。

创建计算节点组时，必须指定实例配置文件的 Amazon 资源名称 (ARN)。您可以为部分或所有计算节点组选择不同的实例配置文件。

## 要求
<a name="security-instance-profiles_requirements"></a>

### 实例配置文件的 IAM 角色
<a name="security-instance-profiles_requirements_role"></a>

与实例配置文件关联的 IAM 角色的路径`/aws-pcs/`中必须有，或者其名称必须以开头`AWSPCS`。

**IAM 角色示例 ARNs**
+  `arn:aws:iam::*:role/AWSPCS-example-role-1` 
+  `arn:aws:iam::*:role/aws-pcs/example-role-2` 

### Permissions
<a name="security-instance-profiles_requirements_permissions"></a>

 与 AWS PCS 实例配置文件关联的 IAM 角色必须包含以下策略。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "pcs:RegisterComputeNodeGroupInstance"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

## 其他政策
<a name="security-instance-profiles_additional-policies"></a>

考虑向实例配置文件添加托管策略。例如：
+  [AmazonS3 ReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3ReadOnlyAccess.html) 提供对所有 S3 存储桶的只读访问权限。
+ [亚马逊SSMManagedInstanceCore](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html)启用 AWS Systems Manager 服务的核心功能，例如直接从亚马逊管理控制台进行远程访问。
+ [CloudWatchAgentServerPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchAgentServerPolicy.html)包含 AmazonCloudWatchAgent 在服务器上使用所需的权限。

您也可以加入自己的 IAM 策略来支持您的特定使用案例。

# 为 AWS PCS 创建实例配置文件
<a name="security-instance-profiles_create"></a>

------
#### [ AWS PCS console ]

**在创建计算节点组时选择 “创建基本配置文件**”，让 AWS PCS 使用最低要求的策略为您创建一个基本配置文件。

------
#### [ Amazon EC2 console ]

您可以直接从 Amazon EC2 控制台创建实例配置文件。有关更多信息，请参阅*AWS Identity and Access Management 用户指南*中的[使用实例配置文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。

**重要**  
确保在 IAM 角色名称`AWSPCS`中使用所需的前缀。

------
#### [ AWS CLI ]

**使用 AWS CLI 设置基本实例配置文件**
**注意**  
将以下示例*example-role*中的名称替换为您的 IAM 角色的名称。

1. 以路径属性或`/aws-pcs/`以开头的名称创建 IAM 角色`AWSPCS`。

   1. 将以下内容复制并粘贴到名为的新文本文件中`trust_policy.json`。  
****  

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

   1. 使用以下命令之一，创建 IAM 角色。

      ```
      aws iam create-role --path /aws-pcs/ --role-name example-role --assume-role-policy-document file://trust_policy.json
      ```

      或者

      ```
      aws iam create-role --role-name AWSPCS-example-role --assume-role-policy-document file://trust_policy.json
      ```

1. **附加权限。**

   1. 将以下内容复制并粘贴到名为的新文本文件中`policy_document.json`。  
****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Action": [
                      "pcs:RegisterComputeNodeGroupInstance"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
      ```

   1. 将策略文档附加到该角色。此命令将策略作为内联策略附加。

      ```
      aws iam put-role-policy \  
          --role-name example-role \  
          --policy-name pcsRegisterInstancePolicy \  
          --policy-document file://policy_document.json
      ```

1. **创建实例配置文件。*example-profile*替换为您的实例配置文件的名称。**

   ```
   aws iam create-instance-profile --instance-profile-name example-profile
   ```

1. **将 IAM 角色与实例配置文件关联。**

   ```
   aws iam add-role-to-instance-profile \  
      --instance-profile-name example-profile \  
      --role-name example-role
   ```

------

# 查找与 AWS PCS 一起使用的实例配置文件
<a name="security-instance-profiles_find"></a>

1. 如果您不知道 AWS PCS 的 IAM 角色的确切名称，请使用以下 AWS CLI 命令列出符合 AWS PCS 名称要求的 IAM 角色。

   ```
   aws iam list-roles --query "Roles[?starts_with(RoleName, 'AWSPCS') || contains(Path, '/aws-pcs/')].[RoleName]" --output text
   ```

1. 使用以下 AWS CLI 命令列出与特定 IAM 角色关联的实例配置文件。替换*role-name*为符合 AWS PCS 名称要求的 IAM 角色的名称。

   ```
   aws iam list-instance-profiles-for-role --role-name role-name
   ```