我的应用程序有适用于 CI/CD 的 AWS 代码管道。 我正在使用 2 个 AWS 账户。帐户 1 用于我的存储库和管道,帐户 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 中的部署组/服务器,但在 downloadBundle
事件中失败并出现错误
访问被拒绝
这是因为我的工件存储桶在账户 1 中(因为我的管道在账户 1 中)而账户 2 中的部署组无权访问账户 1 中的此工件存储桶。
我尝试做这样的事情,但不知道如何让 props.ec2DeploymentGroup
的角色在这里传递。
pipeline.artifactBucket.grantRead(whatObjectToPassHere)
那么我应该如何使用 AWS CDK 授予跨账户访问工件存储桶的权限?
答案 0 :(得分:0)
所以我找到了我的问题的解决方案(我从 AWS 支持那里得到了帮助)我的 EC2 实例配置文件无法访问我在另一个账户中的工件存储桶。
我使用以下代码在 CDK 中管理
cmp -s path1 path2 rm path2 ||echo "files are different"