步骤 4. 为您的 Amazon EC2 实例 - AWS CodeDeploy
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

步骤 4. 为您的 Amazon EC2 实例

注意

如果您正在使用 Amazon ECS 或 AWS Lambda 计算平台 ,跳过此步骤。 Amazon ECS 部署部署 Amazon ECS 服务,以及 AWS Lambda 部署部署无服务器 Lambda 功能版本,所以用于 Amazon EC2 不需要实例。

您的 Amazon EC2 实例需要访问 Amazon S3 存储应用程序的存储区或Github存储库。启动 Amazon EC2 与 CodeDeploy,您必须创建额外的 IAM 角色, 实例配置文件. 这些说明向您展示如何创建 IAM 要附加到您的 Amazon EC2 实例。该角色赋予 CodeDeploy 访问 Amazon S3 存储应用程序的存储区或Github存储库。

您可以创建 IAM 实例配置文件 AWS CLI、 IAM 控制台,或 IAM API。

注意

您可以附加 IAM 实例配置文件 Amazon EC2 当您启动或前往之前启动的实例。有关详细信息,请参阅 实例配置文件.

创建 IAM 用于您的 Amazon EC2 实例(CLI)

在这些步骤中,我们假定您已遵循中前三步的说明。开始使用 CodeDeploy.

  1. 在您的开发机器上,创建名为 CodeDeployDemo-EC2-Trust.json...粘贴以下内容,允许 Amazon EC2 代表您工作:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "ec2.cn-north-1.amazonaws.com.cn", "ec2.cn-northwest-1.amazonaws.com.cn" ] }, "Action": "sts:AssumeRole" } ] }
  2. 在同一目录中,创建名为 CodeDeployDemo-EC2-Permissions.json...粘贴以下内容:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    注意

    我们建议您将此策略仅限定用于您的 Amazon EC2 实例必须访问的 Amazon S3 存储桶。确保提供对包含 CodeDeploy 代理的 Amazon S3 存储桶的访问权限。否则,在实例上安装或更新 CodeDeploy 代理时可能会出现错误。例如:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws-cn:s3:::replace-with-your-s3-bucket-name/*", "arn:aws-cn:s3:::aws-codedeploy-cn-north-1/*", "arn:aws-cn:s3:::aws-codedeploy-cn-northwest-1/*" ] } ] }
    注意

    如果您想使用 IAM 授权 或 Amazon Virtual Private Cloud (VPC)终点 CodeDeploy,您需要添加更多权限。参见 使用 CodeDeploy 带有 Amazon Virtual Private Cloud 如需更多信息。

  3. 从同一个目录中呼叫 create-role 命令创建 IAM 名称名称 CodeDeployDemo-EC2-Instance-Profile,基于第一个文件中的信息:

    重要

    务必在文件名前包含 file://。此命令中需要该项。

    aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
  4. 从同一个目录中呼叫 put-role-policy 命令指定角色 CodeDeployDemo-EC2-Instance-Profile 基于第二个文件中的信息的权限:

    重要

    务必在文件名前包含 file://。此命令中需要该项。

    aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document file://CodeDeployDemo-EC2-Permissions.json
  5. 呼叫 attach-role-policy 提供职责 Amazon EC2 Systems Manager 权限 SSM 可以安装 CodeDeploy 代理。如果您计划使用命令行从公用 Amazon S3 存储桶安装代理,则不需要此策略。了解有关 安装 CodeDeploy 代理.

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
  6. 呼叫 create-instance-profile 命令,然后是 add-role-to-instance-profile 命令创建 IAM 名称的实例配置文件 CodeDeployDemo-EC2-Instance-Profile...实例配置文件允许 Amazon EC2 通过 IAM 名称名称 CodeDeployDemo-EC2-Instance-Profile 到 Amazon EC2 实例首次启动时的实例:

    aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile aws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile

    如果您需要 IAM 实例配置文件,参见 列表实例配置文件角色 在 IAM 部分 AWS CLI 参考.

您现在已经创建了 IAM 要附加到您的 Amazon EC2 实例。有关详细信息,请参阅 IAM 角色 Amazon EC2Amazon EC2 用户指南.

创建 IAM 用于您的 Amazon EC2 实例(控制台)

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在 IAM 控制台,在导航窗格中,选择 政策,然后选择 创建策略. (如果 开始 按钮,选择它,然后选择 创建策略.)

  3. 创建策略 页面,粘贴以下内容 JSON 选项卡:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    注意

    我们建议您将此策略仅限定用于您的 Amazon EC2 实例必须访问的 Amazon S3 存储桶。确保提供对包含 CodeDeploy 代理的 Amazon S3 存储桶的访问权限。否则,在实例上安装或更新 CodeDeploy 代理时可能会出现错误。例如:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws-cn:s3:::replace-with-your-s3-bucket-name/*", "arn:aws-cn:s3:::aws-codedeploy-cn-north-1/*", "arn:aws-cn:s3:::aws-codedeploy-cn-northwest-1/*" ] } ] }
    注意

    如果您想使用 IAM 授权 或 Amazon Virtual Private Cloud (VPC)终点 CodeDeploy,您需要添加更多权限。参见 使用 CodeDeploy 带有 Amazon Virtual Private Cloud 如需更多信息。

  4. 选择 审查政策.

  5. 创建策略 页面,键入 CodeDeployDemo-EC2-Permissions策略名称 盒。

  6. (可选) 描述,键入策略的说明。

  7. 选择 创建策略.

  8. 在导航窗格中,选择角色,然后选择创建角色

  9. Create role (创建角色) 页面上,选择 AWS service (AWS 服务),然后从 Choose the service that will use this role (选择将使用此角色的服务) 列表中,选择 EC2.

  10. 选择您的使用情形 列表,选择 EC2.

  11. 选择 Next: Permissions

  12. 在策略列表中,选中刚创建策略旁边的复选框(代码部署演示-EC2-权限)。(如有必要,请使用搜索框查找该策略。

  13. 要使用系统管理器安装或配置CodeDeployAgent,请选择旁边的框 亚马逊天然气管理. 此 AWS 托管策略使实例能够使用 Systems Manager 服务核心功能。(如有必要,请使用搜索框查找该策略。如果您计划使用命令行从公用 Amazon S3 存储桶安装代理,则不需要此策略。了解有关 安装 CodeDeploy 代理.

  14. 选择 下一步: 标签

  15. Add tags (optional) (添加标签(可选)) 页保持不变,选择 Next: Review (下一步: 审核)

  16. Review (审核) 页面的 Role name (角色名称) 中,输入服务角色的名称(例如, CodeDeployDemo-EC2-Instance-Profile), and then choose Create role.

    您还可以在 Role description (角色描述) 中输入此服务角色的描述。

您现在已经创建了 IAM 要附加到您的 Amazon EC2 实例。有关详细信息,请参阅 IAM 角色 Amazon EC2Amazon EC2 用户指南.