【问题标题】:In AWS Cloud formation, How to specify two resources with Ref in IAM Policy?在 AWS Cloud Formation 中,如何在 IAM 策略中使用 Ref 指定两个资源?
【发布时间】:2021-10-18 03:26:43
【问题描述】:

如果两个相同的 IAM 策略针对两个不同的资源,如何将它们合并为一个。其中一项资源具有 Join 和 Ref。 CloudFormation 模板中是否可以将以下两个策略合并为单个?

- Effect: Allow
  Action:
    - "s3:DeleteObject"
    - "s3:DeleteObjectTagging"
    - "s3:GetObjectAcl"
    - "s3:GetObjectTagging"
    - "s3:PutObject"
    - "s3:PutObjectAcl"
    - "s3:PutObjectTagging"
  Resource:
    !Join
      - ''
      - - 'arn:aws:s3:::'
        - !Ref TestBucketName
        - '/*'

- Effect: Allow
  Action:
    - "s3:DeleteObject"
    - "s3:DeleteObjectTagging"
    - "s3:GetObjectAcl"
    - "s3:GetObjectTagging"
    - "s3:PutObject"
    - "s3:PutObjectAcl"
    - "s3:PutObjectTagging"
  Resource: "arn:aws:s3:::SecondTestBucket/Download/*"

【问题讨论】:

    标签: amazon-web-services amazon-s3 yaml amazon-cloudformation amazon-iam


    【解决方案1】:

    您也可以使用!Sub or Fn::Sub 代替Join,如下所示,以获得清晰的代码。

    - Effect: Allow
      Action:
        - "s3:DeleteObject"
        - "s3:DeleteObjectAcl"
        - "s3:DeleteObjectTagging"
        - "s3:GetObjectAcl"
        - "s3:GetObjectTagging"
        - "s3:PutObject"
        - "s3:PutObjectAcl"
        - "s3:PutObjectTagging"
      Resource:
        - !Sub arn:aws:s3:::${TestBucketName}/*
        - "arn:aws:s3:::SecondTestBucket/Download/*"
    

    【讨论】:

    • `Sub` 可以用于输入参数吗? `TestBucketName`在这种情况下是云形成模板的输入参数。
    • 是的,它适用于Parameters 你可以参考here
    【解决方案2】:
    - Effect: Allow
      Action:
        - "s3:DeleteObject"
        - "s3:DeleteObjectAcl"
        - "s3:DeleteObjectTagging"
        - "s3:GetObjectAcl"
        - "s3:GetObjectTagging"
        - "s3:PutObject"
        - "s3:PutObjectAcl"
        - "s3:PutObjectTagging"
      Resource:
        - !Join
          - ''
          - - 'arn:aws:s3:::'
            - !Ref TestBucketName
            - '/*'
        - "arn:aws:s3:::SecondTestBucket/Download/*"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-23
      • 2015-08-15
      • 2018-11-02
      • 2020-06-15
      • 2021-06-05
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      相关资源
      最近更新 更多