AWS S3 Bucket Policy YAML格式错误求助:Statement与Id格式异常
S3 Bucket Policy YAML格式错误排查与修复
问题原因
你的Bucket Policy YAML文件核心问题是缩进层级错误:在PolicyDocument节点下,Version、Id、Statement应该是同级的顶级属性,但你把Id和Statement的缩进比Version多了一级,导致YAML解析器误判它们是Version的子节点,触发格式错误。
修复后的代码
BucketPolicy: Type: AWS::S3::BucketPolicy DeletionPolicy: Retain Properties: Bucket: !Ref MyWebsite PolicyDocument: Version: 2008-10-17 Id: PolicyForCloudFrontPrivateContent Statement: - Sid: AllowCloudFrontServicePrincipal Effect: Allow Principal: Service: cloudfront.amazonaws.com Action: 's3:GetObject' Resource: 'arn:aws:s3:::travissalmonwebsite/*' Condition: StringEquals: 'AWS:SourceArn': 'arn:aws:cloudfront::224062589507:distribution/EY5YTW9GQAJ75' - Sid: PublicGetObject Effect: Allow Principal: '*' Action: 's3:GetObject' Resource: 'arn:aws:s3:::travissalmonwebsite/*'
关键调整点
- 将
Id和Statement的缩进调整到与Version同一层级,确保三者都是PolicyDocument的直接子属性 - 保持其他节点的缩进一致(比如
Properties下的Bucket和PolicyDocument同级,Statement下的子项缩进统一)
内容的提问来源于stack exchange,提问作者Travis Salmon
相关产品推荐
相关产品推荐

