本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在其他Amazon账户中部署应用程序
组织通常会有多个 Amazon 账户用于不同用途(例如,一个用于系统管理任务,另一个用于开发、测试和生产任务;或者一个与开发和测试环境关联,而另一个与生产环境关联)。
尽管您可能会在不同的账户中执行相关工作,但 CodeDeploy 部署组及其部署的 Amazon EC2 实例与创建它们时使用的账户严格关联。例如,您无法将在一个账户中启动的实例添加到另一个账户中的部署组。
假设您有两个 Amazon 账户:开发账户和生产账户。您主要使用开发账户进行工作,但是希望能够在生产账户中启动部署而无需完整的一组凭证,或者不希望注销开发账户并登录生产账户来进行工作。
完成以下跨账户配置步骤之后,您可以启动属于您组织的另一个账户下的部署,而无需另一个账户的一组完整权限。为此,部分原因是使用Amazon Security Token Service (Amazon STS) 提供的授予您临时访问该账户的权能。
步骤 1:在任一账户中创建 S3 存储桶
在开发账户或生产账户中:
-
如果您尚未完成此操作,请创建一个 Amazon S3 存储桶。有关信息,请参阅在 Amazon S3 中创建存储桶。您甚至可以为两个账户使用相同的存储桶和应用程序修订,将您在开发账户中测试和验证的相同文件部署到您的生产环境。
步骤 2:向生产账户的 IAM 实例配置文件授予 Amazon S3 存储桶权限
如果您在步骤 1 中创建的 Amazon S3 存储桶位于您的生产账户中,则无需执行此步骤。稍后您将承担的角色具有对此存储桶的访问权限,因为该存储桶也位于生产账户中。
如果您在开发账户中创建了 Amazon S3 存储桶,请执行以下操作:
-
在生产账户中,创建 IAM IAM IAM 实例配置文件。有关信息,请参阅步骤 4:为您的 Amazon EC2 实例创建 IAM 实例配置文件。
注意
记下此 IAM IAM IAM IAM 实例配置文件的 ARN。您需要将它添加到接下来创建的跨存储桶策略中。
-
在开发账户中,向您刚刚在生产账户中创建的 IAM 实例配置文件授予您在开发账户中创建的 Amazon S3 存储桶的访问权限。有关信息,请参阅示例 2:存储桶拥有者授予跨账户存储桶权限。
完成授予跨账户存储桶权限的过程时,请注意以下内容:
-
在示例演练中,账户 A 表示您的开发账户,账户 B 表示您的生产账户。
-
当您执行账户 A(开发账户)任务时,修改以下存储桶策略以授予跨账户权限,而不是使用演练中提供的示例策略。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Cross-account permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account-id
:role/role-name
" }, "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::bucket-name
/*" ] } ] }account-id
表示您刚刚创建 IAM 实例配置文件的生产账户的账户号。角色名称
代表您刚刚创建的 IAM IAM IAM IAM IAM 实例配置文件的名称。bucket-name
表示您在步骤 1 中创建的存储桶的名称。请确保在存储桶名称之后包括/*
,以提供对存储桶中各个文件的访问权限。
-
步骤 3:在生产账户中创建资源和跨账户角色
在生产账户中:
-
使用本指南中的说明创建您的 CodeDeploy 资源(应用程序、部署组、部署配置、Amazon EC2 实例、Amazon EC2 实例配置文件、服务角色等)。
-
创建一个额外的角色,即跨账户 IAM 角色,您的开发账户中的用户可以代入该角色在此生产账户中执行 CodeDeploy 操作。
使用演练:使用 IAM 角色委派跨Amazon账户访问权限作为指南,帮助您创建跨账户角色。与其将演练中的示例权限添加到策略文档中,不如向角色至少附加以下两个Amazon提供的策略:
-
AmazonS3FullAccess
:只有当 S3 存储桶位于开发账户中时才需要。为假设的生产账户角色提供对存储修订版的开发账户中 Amazon S3 服务和资源的完全访问权限。 -
AWSCodeDeployDeployerAccess
:允许用户注册和部署修订版。
如果要创建和管理部署组而不是启动部署,请添加
AWSCodeDeployFullAccess
策略而不是AWSCodeDeployDeployerAccess
策略。有关使用 IAM 托管策略授予 CodeDeploy 任务权限的更多信息,请参阅适用于 CodeDeploy 的 Amazon 托管(预定义)策略。如果您希望在使用此跨账户角色时在其他 Amazon 服务中执行任务,可以附加其他策略。
-
重要
在创建跨账户 IAM 角色时,记下获得生产账户访问权限所需的详细信息。
要使用 Amazon Web Services Management Console 来切换角色,您需要提供以下内容之一:
-
用于通过所代入角色的凭证来访问生产账户的 URL。您可以在 Review 页面上找到该 URL,该页面在跨账户角色创建过程结束时显示。
-
跨账户角色的名称以及账户 ID 编号或别名。
要使用 Amazon CLI 切换角色,您需要提供以下内容:
-
您将代入的跨账户角色的 ARN。
步骤 4:将应用程序修订上载到 Amazon S3 存储桶中
在您创建 Amazon S3 存储桶中:
-
将您的应用程序修订上载到 Amazon S3 存储桶中。有关信息,请参阅将每个Amazon S3 每个 CodeDeploy 每个每个每个每个每个每个每个每个每个每个每个每个每个每个每个每个每个每个每个每个。
步骤 5:担任跨账户角色并部署应用程序
在开发账户中,您可以使用 Amazon CLI 或 Amazon Web Services Management Console 来代入跨账户角色并在生产账户中启动部署。
有关如何使用切换角色和启动部署的Amazon Web Services Management Console说明,请参阅切换到角色 (Amazon Web Services Management Console) 和创建 EC2/本地计算平台部署(控制台)。
有关如何使用代入跨账户角色和启动部署的说明,请参阅切换到 IAM 角色 (Amazon Command Line Interface) 和创建 EC2/本地计算平台部署 (CLI)。Amazon CLI
有关通过代入角色的更多信息Amazon STS,请参阅AssumeRole《Amazon Security Token Service用户指南》和《Amazon CLI命令参考》中的 assume- role。
相关主题: