【发布时间】:2020-01-25 00:58:11
【问题描述】:
我正在尝试使用 CodePipeline 将映像从一个帐户 (AccountA) 的 ECR 部署到另一个帐户 (AccountB) 的 ECS 集群。我在部署阶段遇到与权限相关的错误。
这是我在 AccountA 中的管道角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetBucketVersioning"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::<bucketname>/*"
],
"Effect": "Allow"
},
{
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:GetRepositoryPolicy",
"ecr:DescribeRepositories",
"ecr:ListImages",
"ecr:DescribeImages",
"ecr:BatchGetImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload",
"ecr:PutImage"
],
"Resource": [
"*"
],
"Effect": "Allow"
},
{
"Action": [
"codebuild:BatchGetBuilds",
"codebuild:InvalidateProjectCache",
"codebuild:StartBuild",
"codebuild:StopBuild",
"codebuild:UpdateProject",
"codebuild:UpdateWebhook"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"sts:AssumeRole"
],
"Resource": "arn:aws:iam::<AccountB>:role/taskexecutionrole",
"Effect": "Allow"
}
]
}
arn:aws:iam::<AccountB>:role/taskexecutionrole 角色存在于 AccountB 中并信任 AccountA。这是 AccountB 中的角色:
{
"Effect": "Allow",
"Action": "ecs:*",
"Resource": [
"*"
]
}
管道有一个 ECR 源,构建阶段生成一个 imagedefinitions.json 文件。最后在部署阶段进行 ECS 部署。
我得到的错误是: 无效的动作配置 标识符用于 AccountB。您的 accountId 是 AccountA
This answer 仅有助于手动 CLI 部署,我已经尝试了 this answer 的解决方案。
任何我缺少的指针?
【问题讨论】:
标签: amazon-web-services amazon-ecs aws-codepipeline