使用AWS我对以下情况非常满意:
example.com
设置为静态网站。 example.com
的分发。 但是,您知道,仍然可以直接使用HTTP从S3存储桶直接在其备用URL下访问该网站。我想防止用户直接访问S3存储桶URL。
网络上的一些教程(包括CloudFront documentation)说,我需要创建一个原始访问身份(OAI),并将对S3存储桶的访问限制为仅使用该OAI的CloudFront发行版。但是,本文档还说,我不能将OAI与设置为静态网站端点的S3存储桶一起使用。
所以这给我留下了一些文档无法解决的问题:
example.com
的静态网站访问,一旦使用OAI将其连接到CloudFront,我是否仍然能够通过HTTPS通过CloudFront访问S3存储桶内容?也就是说,即使我已为存储桶关闭了静态网站托管,CloudFront是否也可以为我的S3存储桶提供“静态网站访问”? foo.html
重定向到bar.html
。如果我关闭了S3存储桶的静态网站托管,该如何设置重定向? CloudFront是否提供我可以配置的相似路由规则,或者还有另一种方法可以实现此目的? 最佳答案
限制从CloudFront访问S3网站终结点的其他方法是:
CloudFront IP地址:CloudFront IP range
如果您使用S3 rest api终结点而不是s3网站终结点作为源,则您的网站仍可以在HTTPS上运行(SSL在CloudFront上终止),但是有几个问题:
例子:
如果您访问abc.com/path-> S3静态终结点会将其重定向到abc.com/path/index.html
(abc.com-> abc.com/index.html的异常,可以通过定义Root文档在CloudFront上完成)
对于foo.html和bar.html的问题,您需要使用Lambda @ edge函数通过原始请求函数来更改URI。
Lambda@edge examples
关于amazon-web-services - 关于通过CloudFront作为网站服务非网站S3存储桶的说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58575810/