首页 > 解决方案 > CodePipeline StackSet 集成因角色而失败,出现 ValidationException

问题描述

最近 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"
        }
    ]
}

这是堆栈集使用的角色:

在此处输入图像描述

这个角色是由代码管道传递的:

在此处输入图像描述

标签: amazon-web-servicesamazon-cloudformationaws-codepipeline

解决方案


这部分似乎一切正常,但我不知道您是否正在使用CloudFormationStackSet 操作

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

启用堆栈集


推荐阅读