关于Amazon S3策略能否写入指定子目录对象的确认请求
分析你的Amazon S3权限策略是否支持写入指定子路径
让我帮你拆解下这个S3权限策略,看看能不能解决你无法在子目录下放置对象的问题~
首先先把你提供的策略贴出来方便分析:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:ListBucket" ], "Resource": "arn:aws:s3:::viessmann" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::viessmann/medias/*" } ] }
核心权限匹配分析
咱们重点看和写入对象相关的部分:
- 第二个Statement明确允许了
s3:PutObject操作,对应的资源是arn:aws:s3:::viessmann/medias/*——这个资源路径意味着所有键以medias/为前缀的对象都被允许写入、读取和删除。 - 你要写入的目标路径如果是
viessmann.s3-eu-west-1.amazonaws.com/medias/xxx(也就是对象键为medias/xxx),那这个策略是完全覆盖这个权限的。
可能的排查点(如果还是无法写入)
如果确认路径符合但还是失败,建议检查这几个地方:
- 对象键是否正确:S3没有真正的“子目录”,所谓的目录其实是对象键的前缀,比如你要上传到
medias下的test.png,对象键必须是medias/test.png,不能漏了前缀。 - 是否存在拒绝策略:IAM权限里
Deny的优先级高于Allow,如果这个IAM实体(用户/角色)还关联了其他包含Deny的策略,可能会覆盖这个允许权限。 - 策略关联是否生效:确认你使用的IAM用户/角色确实已经关联了这个策略,有时候策略刚创建可能需要等几分钟生效。
内容的提问来源于stack exchange,提问作者sf_tristanb
相关产品推荐
相关产品推荐

