【发布时间】:2019-04-25 10:43:33
【问题描述】:
我正在尝试执行包含以下资源的 cloudformation 堆栈:
- 代码构建项目
- 代码管道管道
- 需要角色
在尝试执行堆栈时,它失败并出现以下错误:
arn:aws:iam::ACCOUNT_ID:role/CodePipelineRole 无权对角色 arn:aws:iam::ACCOUNT_ID:role/CodePipelineRole 执行 AssumeRole(服务:AWSCodePipeline;状态代码:400;错误代码:InvalidStructureException;请求 ID:7de2b1c6-a432-47e6-8208-2c0072ebaf4b)
我使用托管策略创建了角色,但我已经尝试使用普通策略,但它也不起作用。
这是角色政策:
CodePipelinePolicy:
Type: AWS::IAM::ManagedPolicy
Properties:
Description: 'This policy grants permissions to a service role to enable Codepipeline to use multiple AWS Resources on the users behalf'
Path: "/"
PolicyDocument:
Version: "2012-10-17"
Statement:
- Resource: "*"
Effect: "Allow"
Condition: {}
Action:
- autoscaling:*
- cloudwatch:*
- cloudtrail:*
- cloudformation:*
- codebuild:*
- codecommit:*
- codedeploy:*
- codepipeline:*
- ec2:*
- ecs:*
- ecr:*
- elasticbeanstalk:*
- elasticloadbalancing:*
- iam:*
- lambda:*
- logs:*
- rds:*
- s3:*
- sns:*
- ssm:*
- sqs:*
- kms:*
这就是角色
CodePipelineRole:
Type: "AWS::IAM::Role"
Properties:
RoleName: !Sub ${EnvironmentName}-CodePipelineRole
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Action:
- 'sts:AssumeRole'
Effect: Allow
Principal:
Service:
- codepipeline.amazonaws.com
Path: /
ManagedPolicyArns:
- !Ref CodePipelinePolicy
最让我感兴趣的是,CodePipelineRole 似乎试图为自己承担角色。我不明白这里会发生什么。
当我将策略的操作设置为 * 时,它起作用了!我不知道可能缺少哪些权限。
谢谢
【问题讨论】:
-
您是否尝试为 CodePipeline 角色和 CloudFormation 或操作角色使用相同的角色?换一个角色试试,看看错误是否仍然存在。
-
你有没有想过这个问题?我也有同样的问题。
-
同样的问题,有答案了吗?
-
刚刚发生在我身上的代码管道。我最终等了几分钟,然后再次单击创建,它就成功了
-
也许您需要在Trust Relationships 标签上进行编辑,不确定。
标签: amazon-web-services amazon-cloudformation amazon-iam aws-codepipeline