S3存储桶禁止根目录上传文件的策略配置问题求助
S3存储桶限制根目录上传的正确配置
你之前的桶策略报错,核心原因是**s3:prefix条件键不支持s3:PutObject操作**——这个条件键主要用于列表类操作(比如s3:ListBucket),上传对象时需要检查的是对象本身的键路径,得用s3:object-key条件键来实现限制。
下面是能实现需求的正确桶策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObjectOnlyInSubfolders", "Effect": "Allow", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::nh-test-01/*", "Condition": { "StringLike": { "s3:object-key": "*/*" } } } ] }
策略说明
Resource指定为arn:aws:s3:::nh-test-01/*,确保只能操作桶内的对象(不包括桶本身)Condition通过StringLike匹配s3:object-key包含至少一个斜杠的情况,也就是强制文件必须存入子文件夹(比如folder1/file.txt符合要求,file.txt不符合)
另外要注意:如果你的IAM用户/角色还有其他允许根目录上传的权限策略,需要一并调整,否则会覆盖这个桶策略的限制。
内容的提问来源于stack exchange,提问作者Mohammad Nawaz
相关产品推荐
相关产品推荐

