【发布时间】:2021-03-08 11:17:51
【问题描述】:
我的应用程序有用于 CI/CD 的 AWS Code Pipeline。 我正在使用 2 个 AWS 帐户。 Account-1 用于我的存储库和管道,account-2 用于所有基础设施/服务器。
所以这是我管道的部署阶段,deploymentGroup 在 account-2 中创建并分配为对象 props.ec2DeploymentGroup
{
stageName: "deploy-to-" + props.targetEnvName,
actions: [
new codepipeline_actions.CodeDeployServerDeployAction({
actionName: "deploy-to-"+props.targetEnvName+"-"+ props.applicationName + "-ec2",
input: appBuildOutput,
deploymentGroup: props.ec2DeploymentGroup
})
]
}
现在,当我的部署阶段运行时,它成功尝试将工件部署到帐户 2 中的 DeploymentGroup/Servers,但在 downloadBundle 事件中失败并出现错误
访问被拒绝
这是因为我的工件存储桶位于 account-1 中(因为我的管道位于 account-1 中)并且 account-2 中的部署组无权访问 account-1 中的此工件存储桶。
我试图做这样的事情,但不知道如何让props.ec2DeploymentGroup 的角色在这里传递。
pipeline.artifactBucket.grantRead(whatObjectToPassHere)
那么我应该如何使用 AWS CDK 授予对工件存储桶的跨账户访问权限?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-cdk aws-codepipeline aws-code-deploy