You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

S3 BucketPolicy部署遇E2507及MalformedPolicy错误求助

解决AWS S3 BucketPolicy部署错误:MalformedPolicy与E2507

问题根源

你遇到的两个错误都是同一个原因导致的:YAML大小写敏感,而AWS IAM策略要求Version字段首字母必须大写。你当前代码里的version(小写v)不符合AWS的策略规范,因此被识别为无效字段,触发:

  • 部署阶段的MalformedPolicy错误(提示Unknown field version)
  • sam validate --lint检测的E2507错误(提示"IAM Policy key version doesn't exist")

YAML校验网站只验证语法格式,不会检查AWS服务的特定字段规范,所以无法发现这个问题。

修正后的BucketPolicy代码

将PolicyDocument里的version改为Version即可解决问题:

BucketPolicy:
  Type: AWS::S3::BucketPolicy
  Properties:
    PolicyDocument:
      Id: MyPolicy
      Version: '2012-10-17'  # 改为首字母大写的Version
      Statement:
        - Sid: PublicReadForGetBucketObject
          Effect: Allow
          Principal: '*'
          Action: "s3:GetObject"
          Resource: !Join
            - ""
            - - "arn:aws:s3:::"
              - !Ref MyWebsite
              - /*
    Bucket: !Ref MyWebsite

额外说明

AWS IAM策略的核心字段(如Version、Statement、Effect等)都是大小写敏感的,必须严格按照官方规范的大小写编写,否则会触发各类验证或部署错误。

内容的提问来源于stack exchange,提问作者Travis Salmon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:12:09