在 CodePipeline 中创建使用另一个 AWS 账户的资源的管道

Posted cloudrivers

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 CodePipeline 中创建使用另一个 AWS 账户的资源的管道相关的知识,希望对你有一定的参考价值。

您可能希望创建一个使用由另一个 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

主题

以上是关于在 CodePipeline 中创建使用另一个 AWS 账户的资源的管道的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk - CodePipeline 部署不工作 - 健康状况 - 严重

如何使用另一个变量对在 geom_segment 中创建的箭头进行加权和标记

在另一个actor中创建Akka actor

使用在另一个 Swift VC 文件中创建的对象?

在 C++ 中使用另一个类的对象计数在一个类中创建一个数组

在另一个数据框的转换中创建/访问数据框