【问题标题】:Allow CodeBuildAction to update SSM parameter允许 CodeBuildAction 更新 SSM 参数
【发布时间】:2022-02-07 19:06:20
【问题描述】:

我目前正在尝试通过 CodeBuildAction 设置 SSM 参数存储值。我的第一次尝试导致了254 返回码,我猜这是因为请求未获得授权。然后我尝试将托管策略附加到与 CodeBuildAction 关联的角色,但 cdk deploy 失败:

Policy arn:aws:iam::aws:policy/AWSServiceRoleForAmazonSSM does not exist or is not attachable. (Service: AmazonIdentityManagement; Status Code: 404; Error Code: NoSuchEntity; Request ID: 2f65f8db-64a5-4173-ac45-de4c56bffa44; Proxy: nu
ll)

这是角色设置:

this.codeBuildRole = new Role(this, "application-build-project-role", {
  assumedBy: new ServicePrincipal("codebuild.amazonaws.com"),
  managedPolicies: [
    ManagedPolicy.fromAwsManagedPolicyName(
      "AmazonEC2ContainerRegistryPowerUser"
    ),
    ManagedPolicy.fromAwsManagedPolicyName("AWSServiceRoleForAmazonSSM"), // THIS IS THE NEW PART
  ],
});

我了解这意味着我使用了错误的政策,但我正在努力寻找替代方案。

是否有适用于此处的托管策略?如果没有,我将如何设置内联策略来实现我想要做的事情?

【问题讨论】:

    标签: amazon-web-services aws-cdk aws-parameter-store aws-systems-manager


    【解决方案1】:

    解决这个问题的惯用方法是使用 CDK 的抽象来修改角色,而不是创建自己的。

    假设您要更新特定参数,这就是它的样子。你会为你拥有的每个参数都这样做。

    mySsmParameter.grantWrite(myCodeBuildAction.actionProperties.role);
    

    或者,您可以授予对操作项目的访问权限:

    mySsmParameter.grantWrite(myCodeBuildProject);
    

    就是这样,CDK 将在后台处理所需的语句。

    【讨论】:

    • 我以前见过这个 (*.grantWrite(...)),但我完全没有想到。完美运行,谢谢!
    【解决方案2】:

    我能够让它与这个一起工作:

    this.codeBuildRole = new Role(this, "application-build-project-role", {
      assumedBy: new ServicePrincipal("codebuild.amazonaws.com"),
      managedPolicies: [
        ManagedPolicy.fromAwsManagedPolicyName(
          "AmazonEC2ContainerRegistryPowerUser"
        ),
      ],
      inlinePolicies: {
        SSMPutItem: new PolicyDocument({
          statements: [
            new PolicyStatement({
              resources: ["*"],
              actions: ["ssm:*"],
              effect: Effect.ALLOW,
            }),
          ],
        }),
      },
    });
    

    这可能比它需要的更放松,但这确实解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      • 2019-05-01
      相关资源
      最近更新 更多