

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

# 创建 CodePipeline 服务角色 (CLI)
<a name="pipelines-create-service-role-cli"></a>

在 Amazon 使用 CLI 或创建管道之前 Amazon CloudFormation，必须为管道创建 CodePipeline服务角色并附加服务角色策略和信任策略。要使用 CLI 创建您的服务角色，请按照以下步骤首先在运行 CLI 命令的目录中创建信任策略 JSON 和角色策略 JSON 作为单独的文件。

**注意**  
我们建议您只允许管理用户创建任何服务角色。拥有创建角色和附加任何策略权限的人员可以升级自己的权限。相反，应创建一个策略，允许他们仅创建他们所需的角色，或者让管理员代表他们创建服务角色。

1. 在终端窗口中，输入以下命令创建一个名为 `TrustPolicy.json` 的文件，在其中粘贴角色策略 JSON。此示例使用 VIM。

   ```
   vim TrustPolicy.json
   ```

1. 将以下 JSON 粘贴到文件中。

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

****  

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

------

   要保存并退出文件，请输入以下 VIM 命令：

   ```
   :wq
   ```

1. 在终端窗口中，输入以下命令创建一个名为 `RolePolicy.json` 的文件，在其中粘贴角色策略 JSON。此示例使用 VIM。

   ```
   vim RolePolicy.json
   ```

1. 将 JSON 策略粘贴到文件中。使用[CodePipeline 服务角色策略](how-to-custom-role.md#how-to-custom-role-policy)中提供的最低服务角色策略。此外，根据您计划使用的操作为您的服务角色添加相应的权限。有关操作列表和每个操作所需的服务角色权限的链接，请参阅[为 CodePipeline 服务角色添加权限](how-to-custom-role.md#how-to-update-role-new-services)。

   将范围缩小到 `Resource` 字段中的资源级别，确保尽可能缩小权限范围。

   要保存并退出文件，请输入以下 VIM 命令：

   ```
   :wq
   ```

1. 输入以下命令创建角色并附加信任角色策略。该策略名称格式通常与角色名称格式相同。此示例使用作为单独文件创建`TrustPolicy`的角色名称`MyRole`和策略。

   ```
   aws iam create-role --role-name MyRole --assume-role-policy-document file://TrustPolicy.json
   ```

1. 输入以下命令创建角色策略并将其附加到角色。该策略名称格式通常与角色名称格式相同。此示例使用作为单独文件创建`MyRole`的角色名称`MyRole`和策略。

   ```
   aws iam put-role-policy --role-name MyRole --policy-name RolePolicy --policy-document file://RolePolicy.json
   ```

1. 要查看创建的角色名称和信任策略，请为名为 `MyRole` 的角色输入以下命令：

   ```
   aws iam get-role --role-name MyRole
   ```

1. 使用 Amazon CLI 创建管道时使用服务角色 ARN 或 Amazon CloudFormation。