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

CodePipeline StackSet integration fails wtth ValidationException because of role

近期 CodePipeline 引入了 CloudFormation StackSet 集成(https://aws.amazon.com/about-aws/whats-new/2020/12/aws-codepipeline-supports-deployments-with-cloudformation-stacksets/)。我正在尝试构建部署堆栈集的管道,但管道操作失败并显示消息:

An API call to CloudFormation.UpdateStackSet (RequestId: {ID}) returned a ValidationError error: You must provide an administration role ARN with the correct PassRole permission to perform an update operation on this 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 集成来提供它)。

我发出了放宽此验证的功能请求。