【发布时间】:2019-10-07 05:23:15
【问题描述】:
我正在尝试使用存储桶策略将 Amazon S3 存储桶中的对象(媒体文件)的访问权限限制为特定的引用域 privatewebsite.com,但无论引用的域如何,访问都会被拒绝。
我对阻止公共访问有以下设置
阻止对通过新访问控制列表 (ACL) 授予的存储桶和对象的公共访问 - 开启
阻止对通过任何访问控制列表 (ACL) 授予的存储桶和对象的公共访问 - 开启
阻止对通过新的公共存储桶策略授予的存储桶和对象的公共访问 - 关闭
通过任何公共存储桶策略阻止公共和跨账户访问存储桶和对象 - 关闭
我已经添加了以下代码、带有和不带有 http:// 和 https:// 的 URL,但仍然被拒绝访问。 (privatewebsite.com, https://privatewebsite.com, http://privatewebsite.com)
{
"Version": "2012-10-17",
"Id": "Policy8675309",
"Statement": [
{
"Sid": "Stmt8675309",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-media-bucket/*",
"Condition": {
"StringLike": {
"aws:Referer": "https://privatewebsite.com"
}
}
},
{
"Sid": "Explicit deny to ensure requests are allowed only from specific referer.",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-media-bucket/*",
"Condition": {
"StringNotLike": {
"aws:Referer": [
"https://privatewebsite.com/*",
"http://privatewebsite.com/*"
]
}
}
}
]
}
任何人都可以在我的存储桶策略中看到任何明显的错误吗?
我希望此政策允许来自 privatewebsite.com 上的页面的任何请求,同时拒绝所有其他请求,但目前所有请求都被拒绝。
【问题讨论】:
-
旁注:
Referer很容易被伪造,因此它不是一种好的安全形式。请注意您提供的信息。
标签: json amazon-web-services amazon-s3