Amazon cloudformation AWS Cloudformation如何从S3存储桶名称CommaDelimitedList生成ARN列表-半循环

Amazon cloudformation AWS Cloudformation如何从S3存储桶名称CommaDelimitedList生成ARN列表-半循环,amazon-cloudformation,Amazon Cloudformation,以下是参数-S3存储桶名称列表: Parameters: S3BucketNames: Description: Enter S3 Bucket Names Type: CommaDelimitedList Default: my-first-bucket,testing-bucket,codepipeline-bucket 当arn必须采用以下适合IAM策略的格式时,需要为GetObject、PutObject操作制定策略IAM策略: arn:${Partitio

以下是参数-S3存储桶名称列表:

Parameters:
  S3BucketNames:
    Description: Enter S3 Bucket Names
    Type: CommaDelimitedList
    Default: my-first-bucket,testing-bucket,codepipeline-bucket
当arn必须采用以下适合IAM策略的格式时,需要为GetObject、PutObject操作制定策略IAM策略:

arn:${Partition}:s3:::${BucketName}/${ObjectName}
在我的示例中,它应该如下所示:

"arn:aws:s3:::my-first-bucket/*",
"arn:aws:s3:::testing-bucket/*",
"arn:aws:s3:::codepipeline-bucket/*"

我不得不想一想如何才能成功,当你知道这一点时,这是显而易见的,但也许会对某人有所帮助:

  S3RolePolicy:
    Type: AWS::IAM::Policy
    Properties:
      PolicyName: DemoPolicy
      PolicyDocument:
        Statement:
          - Effect: Allow
            Action:
              - s3:PutObject
              - s3:GetObject
            Resource: !Split
            - ","
            - !Sub
              - arn:aws:s3:::${S3Middle}/*
              - S3Middle: !Join [ "/*,arn:aws:s3:::" , !Ref S3BucketNames ]
这不是一个完整的云形成模板-只是一个样本和平