

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

# 第 3 步：限制 CodeDeploy 用户的权限
<a name="getting-started-policy"></a>

出于安全考虑，我们建议您将您在中创建的管理用户的权限限制[步骤 1：设置](getting-started-setting-up.md)为在中创建和管理部署所需的权限 CodeDeploy。

使用以下一系列过程来限制 CodeDeploy 管理用户的权限。

**开始前的准备工作**
+ 确保按照中的说明在 IAM Identity Center 中创建了 CodeDeploy 管理用户[步骤 1：设置](getting-started-setting-up.md)。

**创建权限集**

稍后，您将向 CodeDeploy 管理用户分配此权限集。

1. 登录 AWS 管理控制台 并打开 AWS IAM Identity Center 控制台，网址为[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/)。

1. 在导航窗格中，选择**权限集**，然后选择**创建权限集**。

1. 选择**自定义权限集**。

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

1. 选择**内联策略**。

1. 删除示例代码。

1. 添加以下策略代码：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CodeDeployAccessPolicy",
               "Effect": "Allow",
               "Action": [
                   "autoscaling:*",
                   "codedeploy:*",
                   "ec2:*",
                   "lambda:*",
                   "ecs:*",
                   "elasticloadbalancing:*",
                   "iam:AddRoleToInstanceProfile",
                   "iam:AttachRolePolicy",
                   "iam:CreateInstanceProfile",
                   "iam:CreateRole",
                   "iam:DeleteInstanceProfile",
                   "iam:DeleteRole",
                   "iam:DeleteRolePolicy",
                   "iam:GetInstanceProfile",
                   "iam:GetRole",
                   "iam:GetRolePolicy",
                   "iam:ListInstanceProfilesForRole",
                   "iam:ListRolePolicies",
                   "iam:ListRoles",
                   "iam:PutRolePolicy",
                   "iam:RemoveRoleFromInstanceProfile",
                   "s3:*",
                   "ssm:*"
               ],
               "Resource": "*"
           },
           {
               "Sid": "CodeDeployRolePolicy",
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": "arn:aws:iam::111122223333:role/CodeDeployServiceRole"
           }
       ]
   }
   ```

------

   在此策略中，*arn:aws:iam::account-ID:role/CodeDeployServiceRole*用您在中创建的 CodeDeploy 服务角色的 ARN 值替换。[步骤 2：为创建服务角色 CodeDeploy](getting-started-create-service-role.md)您可以在 IAM 控制台的服务角色的详细信息页面中找到 ARN 值。

   上述策略允许您将应用程序部署到 AWS Lambda 计算平台、EC2/本地计算平台和 Amazon ECS 计算平台。

   您可以使用本文档中提供的 CloudFormation 模板启动与兼容的 Amazon EC2 实例 CodeDeploy。要使用 CloudFormation 模板创建应用程序、部署组或部署配置，必须通过向 CodeDeploy 管理用户的权限策略添加权限来提供访问`cloudformation:*`权限 CloudFormation以及 CloudFormation 依赖的 AWS 服务和操作，如下所示：

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

****  

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

------

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

1. 在**权限集名称**中，输入：

   ```
   CodeDeployUserPermissionSet
   ```

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

1. 在**查看和创建**页面上，检查相应信息，然后选择**创建**。

**将权限集分配给 CodeDeploy 管理用户**

1. 在导航窗格中 **AWS 账户**，选择，然后选中您当前登录 AWS 账户 的旁边的复选框。

1. 选择**分配用户或组**按钮。

1. 选择**用户**选项卡。

1. 选中 CodeDeploy 管理员用户旁边的复选框。

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

1. 选中 `CodeDeployUserPermissionSet` 旁边的复选框。

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

1. 检查相应信息，然后选择**提交**。

   现在，您已将 CodeDeploy 管理员用户和分配`CodeDeployUserPermissionSet`给您的 AWS 账户，并将它们绑定在一起。

**注销并以 CodeDeploy 管理员用户身份重新登录**

1. 在注销之前，请确保您拥有 CodeDeploy 管理员 AWS 用户的访问门户 URL 以及用户名和一次性密码。
**注意**  
如果您没有这些信息，请前往 IAM Identity Center 中的 CodeDeploy 管理员用户详细信息页面，选择**重置密码**，**生成一次性密码 [...]** ，然后再次**重置密码**以在屏幕上显示信息。

1. 退出 AWS。

1. 将 AWS 访问门户 URL 粘贴到浏览器的地址栏中。

1. 以 CodeDeploy 管理员用户身份登录。

   屏幕上会出现一个 **AWS 账户**框。

1. 选择 **AWS 账户**，然后选择您 AWS 账户 为其分配了 CodeDeploy 管理员用户和权限集的名称。

1. 在 `CodeDeployUserPermissionSet` 旁，选择**管理控制台**。

    AWS 管理控制台 出现了。现在，您已以 CodeDeploy 具有有限权限的管理员用户身份登录。现在，您可以以该用户身份执行 CodeDeploy CodeDeploy相关操作，并且*只能*执行相关的操作。