如何通过存储桶策略限制Amazon S3指定文件夹仅允许上传特定后缀文件
S3存储桶策略解决方案
符合需求的策略配置
你原来的策略问题出在Deny语句的范围覆盖了全桶,我们调整为仅针对指定前缀下的非允许后缀上传触发拒绝,不影响其他路径的上传权限,完整策略如下:
{ "Version": "2012-10-17", "Id": "RestrictSpecificFolderFileType", "Statement": [ { "Sid": "DenyInvalidFileTypeInTargetFolder", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "NotResource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/folder/*.csv", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/prefixname/*.jpg" ], "Condition": { "StringEquals": { "aws:PrincipalAccount": "111111111111" }, "StringLike": { "s3:prefix": "folder/*" } } } ] }
配置说明
- 仅保留
Deny语句即可,无需额外的Allow语句:只要你IAM侧已经给账号内身份授予了对应S3桶的上传权限,本策略只会对指定前缀下的文件类型做限制,不会拦截其他路径的合法上传请求 aws:PrincipalAccount条件限制规则仅对你指定的AWS账号生效,刚好满足账号级别的权限配置需求,不需要单独针对每个IAM用户/角色设置规则- 如果需要限制多个不同前缀的文件类型,可新增多条
Deny语句,每个语句对应一组前缀+允许后缀的规则
注意事项
- 请将策略中的
111111111111替换为你的实际AWS账号ID - 替换
DOC-EXAMPLE-BUCKET为你的S3存储桶名称 - 替换
folder为你需要限制的目标前缀,允许的后缀可自行添加到NotResource数组中
内容的提问来源于stack exchange,提问作者Bradley Marks
相关产品推荐
相关产品推荐

