Amazon web services AWS S3 bucket策略和HTTP Referer始终提供403
我正在尝试将bucket策略添加到我的S3 bucket中。我有一个要求,只有我的网站应该能够访问从桶的资源。我发现HTTP Referer在当前场景中非常有用,因此我完成了以下步骤:Amazon web services AWS S3 bucket策略和HTTP Referer始终提供403,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我正在尝试将bucket策略添加到我的S3 bucket中。我有一个要求,只有我的网站应该能够访问从桶的资源。我发现HTTP Referer在当前场景中非常有用,因此我完成了以下步骤: 创建了这个桶 上传了一个png文件 禁用阻止所有公共访问 添加了低于桶策略 我现在假设它应该可以从我的网站上访问,而不是直接使用URL。以下是两者的结果 使用直接URL 我已经创建了一个包含以下内容的HTML页面(test.HTML),并将其添加到网站根目录中 只要检查一下是否遵循了所有这些步骤,谢谢链接@av
只要检查一下是否遵循了所有这些步骤,谢谢链接@aviboy2006!,我在这里有些疑问,这(带有HTTP Referer的bucket策略)是否仅适用于附件文件?它也应该适用于其他文件。不管是否允许公众访问您的bucket(如@gergelykalman所示,它不应该),请,请注意,不应使用
aws:referer
条件来限制未经授权的访问,而是当您不希望其他网站使用您的内容时。请参阅:。如果要将对bucket的访问限制为某个应用程序,可以在aws:SourceIp
条件上建立一个IpAddress
操作符,该条件等于应用程序的IP或IP范围。建议遵循@Marcin建议,在bucket中启用s3访问日志。完成后,您可以单击站点中的链接。然后检查日志中记录的Referer
值。获得该值后,将其插入bucket策略中的aws:Referer
条件,看看是否有效。
{
"Id": "Policy1599658083694",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1599658081534",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::mywebsiteso/*",
"Condition": {
"StringLike": {
"aws:Referer": "https://blue.mywebsite.io/*"
}
},
"Principal": "*"
}
]
}
<a href="https://mywebsiteso.s3.ap-south-1.amazonaws.com/403.PNG">click here</a>
"aws:Referer": [
"http://blue.mywebsite.io",
"http://blue.mywebsite.io/*",
"http://www.blue.mywebsite.io/*",
"https://blue.mywebsite.io",
"https://blue.mywebsite.io/*",
"https://www.blue.mywebsite.io/*"
]