您可能希望创建一个使用由另一个 AWS 账户创建或管理的资源的管道。例如,您可能希望将一个账户用于您的管道,将另一个账户用于您的 CodeDeploy 资源。
在此示例中,您必须创建一个要使用的 AWS Key Management Service (AWS KMS) 密钥,将该密钥添加到管道,并设置账户策略和角色以启用跨账户访问。对于 AWS KMS 密钥,您可以使用密钥 ID、密钥 ARN 或别名 ARN。
注意
仅在创建了客户主密钥 (CMK) 的账户中识别别名。对于跨账户操作,您只能使用密钥 ID 或密钥 ARN 来标识密钥。
在本演练及其示例中,AccountA
是最初用于创建管道的账户。它可以访问用于存储管道项目的 Amazon S3 存储桶以及 AWS CodePipeline 使用的服务角色。AccountB
是最初用于创建 CodeDeploy 应用程序、部署组以及 CodeDeploy 使用的服务角色的账户。
要使 AccountA
能够编辑管道以使用 AccountB
创建的 CodeDeploy 应用程序,AccountA
必须:
- 请求
AccountB
的 ARN 或账户 ID (在本演练中,AccountB
ID 为012ID_ACCOUNT_B
)。 - 在管道的区域中创建或使用客户管理的 AWS KMS 密钥,并向服务角色 (
AWS-CodePipeline-Service
) 和AccountB
授予使用该密钥的权限。 - 创建一个 Amazon S3 存储桶策略,以授予
AccountB
访问该 Amazon S3 存储桶的权限 (例如codepipeline-us-east-2-1234567890
)。 - 创建一个允许
AccountA
担任由AccountB
配置的角色的策略,并将该策略附加到服务角色 (AWS-CodePipeline-Service
)。 - 编辑管道以使用客户托管 AWS KMS 密钥而不是默认密钥。
要使 AccountB
允许在 AccountA
中创建的管道访问其资源,AccountB
必须:
- 请求
AccountA
的 ARN 或账户 ID (在本演练中,AccountA
ID 为012ID_ACCOUNT_A
)。 - 创建一个应用到为 CodeDeploy 配置的 Amazon EC2 实例角色的策略,以允许访问 Amazon S3 存储桶 (
codepipeline-us-east-2-1234567890
)。 - 创建一个应用到为 CodeDeploy 配置的 Amazon EC2 实例角色的策略,以允许访问用于加密
AccountA
中的管道项目的客户管理的 AWS KMS 密钥。 - 配置一个 IAM 角色 (
CrossAccount_Role
),并将允许AccountA
担任该角色的信任关系策略附加到该角色。 - 创建一个允许访问管道所需的部署资源的策略,并将其附加到
CrossAccount_Role
。 - 创建一个允许访问 Amazon S3 存储桶 (
codepipeline-us-east-2-1234567890
) 的策略,并将其附加到CrossAccount_Role
。
主题
原文地址:https://www.cnblogs.com/cloudrivers/p/11620808.html
时间: 2024-10-29 12:31:01