使用Policy Generator创建S3存储桶策略时报Invalid ARN错误
S3 Policy Generator ARN校验报错排查方向
- 先确认策略类型选择正确:打开Policy Generator后第一步必须在策略类型下拉菜单选中
S3 Bucket Policy,如果误选IAM策略、Glacier存储策略等其他类型,工具会套用对应服务的ARN校验规则,合法的S3 ARN也会被判定无效。 - 排查ARN输入的格式污染问题:从其他页面、文档复制的ARN经常夹带零宽空格、全角标点、首尾不可见空白字符,中文输入法环境下还容易误输入全角冒号。你给出的示例
arn:aws:s3:::s3-demo-bucket-2022本身格式完全符合S3 ARN规范,这类隐性格式问题是跨账号复现该报错的最常见原因,建议手动逐字符输入ARN,或先把ARN粘贴到纯文本编辑器清除所有格式后再复制使用。 - 排查前端兼容bug:旧版AWS Policy Generator存在已知的前端校验逻辑兼容问题,在高版本Chrome、Edge浏览器下会误判合法输入,可尝试以下操作修复:
- 清空浏览器站点缓存,禁用广告拦截、脚本篡改类插件后重试
- 打开浏览器无痕访问模式加载Policy Generator页面
- 切换为Firefox浏览器操作,或直接使用IAM控制台内置的可视化策略编辑器,无需依赖独立的Policy Generator工具
- 确认ARN分区与使用的AWS区域匹配:如果使用中国区S3存储桶,ARN前缀为
arn:aws-cn:s3:::;使用GovCloud区存储桶,ARN前缀为arn:aws-us-gov:s3:::,只有标准全球区S3才使用arn:aws:s3:::前缀,分区字段不匹配也会触发校验报错。
临时规避方案
如果以上排查完成后问题仍然复现,可直接跳过Policy Generator,使用标准S3策略模板编写后直接粘贴到存储桶策略编辑框保存即可,基础策略参考如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::你的账号ID:root" }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::s3-demo-bucket-2022", "arn:aws:s3:::s3-demo-bucket-2022/*" ] } ] }
注意:配置对象级操作权限时,需要同时填写桶本身ARN和带
/*后缀的桶内对象ARN,否则权限不会生效。
内容的提问来源于stack exchange,提问作者Prasenjit Dhar
相关产品推荐
相关产品推荐

