我有一个像这样的 s3 存储桶策略,如果引用者未在下面列出,则拒绝请求
{
"Sid": "6",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my_bucket_name/*",
"Condition": {
"StringNotLike": {
"aws:Referer": [
"http://example1.com/*",
"http://example2.com/*",
"https://*amazon.com*/*"
]
}
}
}
请注意,我尝试过https://*amazon.com*/*, https://*aws.amazon.com* ,https://*amazon.com*,http://*amazon.com*
的问题是,当它尝试获取对象时,我无法获得弹性 trasncoders(aws 服务之一)引用,因此作业给出了这样的错误“您没有读取所需的权限来自指定存储桶的指定对象”。请注意,如果我删除该策略,一切正常。所以我的问题是,我应该将弹性转码器引用为什么?我尝试了几种组合并到处搜索,但都是徒劳的。如果您认为有更好的方法,请告诉我。
- 更新:
还有一种方法可以通过存储桶策略过滤一些被拒绝的请求,例如在上述情况下,我可以允许不是来自上述域但具有特定 IP 地址的请求。从这里的亚马逊文档中,我看到他们首先检查明确拒绝,然后不检查那些拒绝请求有没有办法解决这个问题?任何形式的帮助将不胜感激。谢谢你的时间