【问题标题】:CodePipeline StackSet integration fails wtth ValidationException because of roleCodePipeline StackSet 集成因角色而失败,出现 ValidationException
【发布时间】:2021-04-06 20:08:01
【问题描述】:

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

这是堆栈集使用的角色:

这个角色是由codepipeline传递的:

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation aws-codepipeline


    【解决方案1】:

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

    另外,你没有提到它是否被组织使用。如果是这种情况,您需要在您的组织设置中启用它。

    【讨论】:

    • 您提到的是使用组织单位的堆栈集的自动部署功能(所谓的服务管理访问)所必需的。对于自我管理(手动创建的角色),这不是必需的。但是,是的,我们已启用此功能。
    【解决方案2】:

    已联系 AWS 支持 - 这是 CodePipeline-CloudFormation 集成的限制(在我看来已被打破)。 CodePipeline 强制使用非常特殊的值(CloudFormation 不需要 - 我们在 2019 年初部署了堆栈集,并且无法通过当前的 CodePipeline 集成来配置它)。

    我发出了一项功能请求以放松此验证。

    【讨论】:

      猜你喜欢
      • 2021-09-21
      • 2022-01-18
      • 2012-04-08
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 2022-08-16
      相关资源
      最近更新 更多