微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

由于角色,CodePipeline StackSet 集成失败 wtth ValidationException

如何解决由于角色,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"
        }
    ]
}

这是堆栈集使用的角色:

enter image description here

而且这个角色是通过代码管道传递的:

enter image description here

解决方法

这部分看起来一切正常,但我不知道您是否在使用 CloudFormationStackSet Action

此外,您没有提及它是否正在与组织一起使用。如果是这种情况,您需要在组织设置中启用它。

Enable Stacksets

,

联系 AWS 支持 - 这是 CodePipeline-CloudFormation 集成的一个限制(在我看来是坏的)。 CodePipeline 强制使用非常特殊的值(其中 CloudFormation 不需要该值 - 我们在 2019 年初部署了堆栈集,并且无法使用当前的 CodePipeline 集成对其进行配置)。

我发出了一个功能请求以放宽此验证。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。