我想通过反向代理(Nginx)代理Amazon S3存储桶。
为了更高的安全性,我想禁止对存储桶的读取访问,除了我运行代理的HTTPS主机之外的任何内容。
有没有办法为此任务配置Amazon S3?
请提供配置。
我考虑在S3存储桶名称中添加密码,但它不是解决方案,因为我们还需要对存储桶进行签名上传,因此存储桶名称将公开提供。
答案 0 :(得分:0)
如果您的反向代理具有公共IP地址,那么您可以将此策略添加到Amazon S3存储桶:
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition": {
"IpAddress": {"aws:SourceIp": "54.240.143.22/32"}
}
}
]
}
如果请求来自特定IP地址,则授予GetObject
权限。默认情况下,Amazon S3是私有的,因此仅在该特定情况下授予访问权限。您还需要授予对IAM用户/组的访问权限(通过IAM,不一个存储桶策略),以便更新存储桶内容。