【发布时间】:2019-08-25 06:58:30
【问题描述】:
我想暂时限制用户访问我在 s3 中托管的静态网站,该网站位于云端发行版后面。
这可能吗?如果可以,我可以用什么方法来实现它?
我已经能够通过使用存储桶策略中的条件来限制对我的 s3 存储桶的特定访问,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "12.34.56.73/32"
}
}
}
]
}
它可以工作并将我的 s3 存储桶限制为我的 ip,但这意味着云端 url 获取 403 forbidden: access denied。
阅读 AWS 文档时,建议使用 Origin Access Identity 限制对 s3 资源的特定访问。但是他们指定了以下内容:
如果您没有看到 Restrict Bucket Access 选项,您的 Amazon S3 源可能被配置为网站终端节点。在该配置中,必须使用 CloudFront 将 S3 存储桶设置为自定义源,并且您不能对它们使用源访问身份。
这表明我不能在这种情况下使用它。理想情况下,我想强制我的分发或存储桶策略使用特定的安全组并以这种方式控制它,以便我可以轻松添加/删除批准的 IP。
【问题讨论】:
-
您只想限制他们直接访问 S3 还是同时访问 S3 和 CloudFront?
-
@kichik 都理想
标签: amazon-web-services amazon-s3 amazon-cloudfront