【问题标题】:AWS BucketPolicy failed to create - Invalid policy syntax MalformedPolicyAWS BucketPolicy 未能创建 - 无效的策略语法 MalformedPolicy
【发布时间】:2020-12-29 09:48:57
【问题描述】:

我正在尝试在 yaml 中创建以下存储桶策略,但 bucketPolicy 无法创建:

Cloudformation 错误消息:

Invalid policy syntax. (Service: Amazon S3; Status Code: 400; Error Code: MalformedPolicy; Request ID: CD4; S3 Extended Request ID: Noxxxx/sXX=; Proxy: null)

需要完成的存储桶策略:

{
    "Version": "2012-10-17",
    "Id": "ig",
    "Statement": [
        {
            "Sid": "LZone",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123:role/l-zone"
            },
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::bucketname-l/*",
                "arn:aws:s3:::bucketname-l"
            ]
        }
    ]
}

这是上述政策的 yaml 中的代码(不起作用):

LBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Sub bucketname-l          
LBucketPolicy:
    Type: AWS::S3::BucketPolicy
    Properties:
      Bucket: !Ref LBucket
      PolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Sid: LZone
            Effect: Allow
            Action: 
              - 's3:AbortMultipartUpload'
              - 's3:ListBucket'
              - 's3:PutObject'
              - 's3:GetObject'
              - 's3:GetObjectVersion'
              - 's3:PutObjectAcl'
            Resource:
              Fn::Join:  
              - ""  
              -  
                - "arn:aws:s3:::"  
                -  
                  Ref: "LBucket"  
                - "/*"  
            Principal: "AWS: arn:aws:iam::123:role/l-zone"

有人可以帮我解决我所缺少的问题吗?谢谢

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudformation aws-serverless


    【解决方案1】:

    政策应该是:

      LBucketPolicy:
          Type: AWS::S3::BucketPolicy
          Properties:
            Bucket: !Ref LBucket
            PolicyDocument:
              Version: '2012-10-17'
              Statement:
                - Sid: LZone
                  Effect: Allow
                  Action: 
                    - 's3:AbortMultipartUpload'
                    - 's3:ListBucket'
                    - 's3:PutObject'
                    - 's3:GetObject'
                    - 's3:GetObjectVersion'
                    - 's3:PutObjectAcl'
                  Resource:
                    - !Sub "arn:aws:s3:::${LBucket}"
                    - !Sub "arn:aws:s3:::${LBucket}/*"
                  Principal: 
                    AWS: arn:aws:iam::123:role/l-zone
    

    【讨论】:

    • 感谢 Marcin,我之前也尝试过,但会再试一次。谢谢
    • @Harry 没问题。这是正确的保单形式。如果它不起作用,那么还有一些其他问题,从您的问题中尚不明显。
    • 太棒了。我不得不删除围绕 AWS: 的引号在 Principal 下。将标记为正确。谢谢
    猜你喜欢
    • 2021-09-02
    • 2020-10-31
    • 2022-01-01
    • 2023-01-27
    • 1970-01-01
    • 2022-01-20
    • 2021-02-19
    • 2019-02-06
    • 1970-01-01
    相关资源
    最近更新 更多