【发布时间】:2020-03-30 07:47:15
【问题描述】:
我正在实施 CodePipeline;使用 GitHub、CodeBuild 和 Amazon ECS(蓝/绿)。我使用的角色,是Pipeline生成的角色:ecsTaskExecutionRole
生成时,它配备以下政策: AmazonECSTaskExecutionRolePolicy(包含以下操作):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]}
以及以下信任关系:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"codebuild.amazonaws.com",
"ecs-tasks.amazonaws.com",
]
},
"Action": "sts:AssumeRole"
}
]
}
鉴于该角色是自动生成的,人们会假设它要么拥有所有必要的权限(使管道运行),要么 AWS 将有一个关于分配哪些权限的指南(分配给策略或信任关系配置)。
尽管更新了信任关系以包括:
"Service": [
"codebuild.amazonaws.com",
"ecs-tasks.amazonaws.com",
"ec2.amazonaws.com",
"codedeploy.amazonaws.com",
"codepipeline.amazonaws.com",
"s3.amazonaws.com"
]
我在过去 1-2 年的多个博客/论坛中看到了这个问题;令人难以置信的是,这仍然没有正确记录为 AWS 教程(或相关博客)的一部分。
【问题讨论】:
标签: amazon-iam amazon-ecs aws-code-deploy aws-codepipeline