【问题标题】:Aws CDK skip IAM Statement ChangesAws CDK 跳过 IAM 语句更改
【发布时间】:2021-02-22 00:47:39
【问题描述】:

这是我已经通过策略声明的角色:

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "sqs:ReceiveMessage",
              "sqs:DeleteMessage",
              "sqs:GetQueueAttributes",
              "sqs:ChangeMessageVisibility",
              "sqs:GetQueueUrl"
          ],
          "Resource": "arn:aws:sqs:*:<my-account>:my-prefix-*"
      }
   ]
}

当我手动部署我的队列和 Lambda(带触发器)时,一切正常(并且按预期工作)。但是,当我使用 CDK 进行部署时,它会尝试添加一个看起来完全相同的新内联策略(没有通配符):

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "sqs:ReceiveMessage",
              "sqs:DeleteMessage",
              "sqs:GetQueueAttributes",
              "sqs:ChangeMessageVisibility",
              "sqs:GetQueueUrl"
          ],
          "Resource": "arn:aws:sqs:eu-west-3:<my-account>:my-prefix-MYRESOURCE-CREATED"
      }
   ]
}

我的问题:

  • 为什么 CDK 没有检测到相同的策略?
  • 如果按设计工作,有没有办法不包括 IAM 更改?

我没有引用用户想要自动批准的How to skip IAM change confirmation during a cdk deploy?

感谢和问候

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation amazon-iam aws-cdk


    【解决方案1】:

    我假设您将 role 参数传递到您的 Lambda Function

    如果您不希望 CDK 自动将内联策略添加到此角色,您可能需要使用 .without_policy_updates()

    如果您希望构造使用此角色而不自动更新角色的策略,请使用此方法返回的对象。

    如果这样做,您有责任自行将正确的声明添加到角色的政策中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      相关资源
      最近更新 更多