如何解决由于角色,CodePipeline StackSet 集成失败 wtth ValidationException
Recentry CodePipeline 引入了 CloudFormation StackSet 集成 (https://aws.amazon.com/about-aws/whats-new/2020/12/aws-codepipeline-supports-deployments-with-cloudformation-stacksets/)。我正在尝试构建一个部署堆栈集的管道,但管道操作失败并显示消息:
对 CloudFormation.UpdateStackSet (RequestId: {ID}) 的 API 调用返回了 ValidationError 错误:您必须为管理角色 ARN 提供正确的 PassRole 权限才能在此 StackSet 上执行更新操作。
堆栈集已经存在并且角色工作正常,我只是尝试使用新的集成功能(使用相同的角色)将部署绑定到 CodePipeline。
允许我的管道角色传递堆栈集管理角色:
{
"Version": "2012-10-17","Statement": [
{
"Action": [
"iam:PassRole"
],"Resource": [
"arn:aws:iam::<ID>:role/infrastructure-v1-organiz-StackSetAdministratorRol-1Q81WRE9ZGNAT"
],"Effect": "Allow"
}
]
}
这是堆栈集使用的角色:
而且这个角色是通过代码管道传递的:
解决方法
这部分看起来一切正常,但我不知道您是否在使用 CloudFormationStackSet Action
此外,您没有提及它是否正在与组织一起使用。如果是这种情况,您需要在组织设置中启用它。
,联系 AWS 支持 - 这是 CodePipeline-CloudFormation 集成的一个限制(在我看来是坏的)。 CodePipeline 强制使用非常特殊的值(其中 CloudFormation 不需要该值 - 我们在 2019 年初部署了堆栈集,并且无法使用当前的 CodePipeline 集成对其进行配置)。
我发出了一个功能请求以放宽此验证。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。