我想将网站部署到S3存储桶并使用静态网站托管。但是,我有一些严格的安全限制:
这是我的计划:
这是一个图:
不过,我有一个大问题:在CloudFront 真的之间转发自定义标头是实现此目的的最佳方法吗? AWS文档说,原始访问身份不能用于充当网站(https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)的S3存储桶。自定义标头似乎不如原始访问标识安全,并且更难维护。使用随机字符串作为唯一的安全性使我感到不自在,该安全性可防止某人绕过我的CloudFront发行版并直接访问S3存储桶。如果恶意方猜测
我在这里的另一个选择是硬着头皮移到服务器,在这些服务器上我可以更好地控制很多安全性,但是我想利用S3网站的便利性。
答案 0 :(得分:1)
您应从S3存储桶中删除网站配置,并使用Origin Access Identity。其余的设置都可以。
您不需要将S3存储桶配置为网站端点,因为您不会直接通过S3提供内容。使用Origin Access Identity,您的存储桶将仅可从CloudFront使用(除非您在存储桶策略中添加了其他内容),而这正是您想要的。
答案 1 :(得分:1)
答案 2 :(得分:0)
您不能在S3上使用任何自定义标头,仅允许某些标头,例如:Referer,User-Agent等。 最好的方法是将OAI与S3 Rest API端点(而不是网站端点)一起使用。
但是,您可以为网站端点选择其他方法: 1.允许CloudFront IP范围访问S3存储桶。
http://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips
和 2.在CloudFront原始配置上添加Origin客户标头,例如“ Referer:一些随机值”,并创建存储区策略以允许在Referer标头中使用该特定值。