[英]AWS S3 Bucket Policy - Allow GetObject only within a prefix
我正在尝试在存储桶上放置一条策略,以允许对对象的公共“ GetObject”访问,但仅允许在特定前缀内的对象访问。 像这样:
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/publicstuff/*"
}
问题是,AWS警告我,这会使整个存储桶公开。 可以肯定的是, 如果我尝试从/ mybucket / anywhereelse /获取对象,则S3免费提供它。 因此,“ mybucket”之后的所有内容都将被忽略。
有什么方法可以构建适用于存储桶中特定前缀的存储桶策略? 我尝试了一个策略条件,但发现在使用s3:GetObject操作时无法使用s3:prefix。
感谢@michael和@mok,我找到了答案:我是个白痴。 我用来验证标准行为的其他对象碰巧具有对它们的单独权限,以允许getObject,而且我不记得将它们放在那里或没有注意到它们在那儿。 当我删除这些权限时,看来我仍然可以访问这些对象,但实际上是在拾取缓存的副本。 在删除这些虚假权限并使用完全不同的浏览器时,我验证了我最初发布的策略是正确的。 抱歉,添麻烦了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.