从AWS S3显示私有HTML文件

时间:2017-03-17 04:36:23

标签: html amazon-web-services amazon-s3 amazon-cognito

我目前正在AWS S3上托管一个静态网站。我有部分网站,我只希望AWS Cognito经过身份验证的用户可以访问。 S3存储桶的这些部分仅限于某些角色。据我了解,一旦Cognito用户收到他们的临时AWS凭证,我就需要使用S3 sdk从S3加载受限对象(index.html)并将其显示在网页中。这是正确的方法,一旦我从S3返回对象,我该如何将其加载到网页中?谢谢!

1 个答案:

答案 0 :(得分:2)

您需要在后端运行的应用程序逻辑来控制您的安全性并存储/检索数据。虽然大部分内容都可以通过浏览器完成,但它仍然可以进行黑客攻击。因此,您需要在后端使用访问控制逻辑。

选项1:API网关和Lambda函数

您可以在Amazon S3之外提供静态网页,通过API网关对Lambda函数进行API调用。这称为无服务器模型

以下是Serverless Code website

的示例图表

Serverless architecture

基本上,Lambda函数接收请求,确定用户是否被授权,确定他们将收到什么(例如,到不同页面的预签名URL)并将其发送回网页。这种设计的好处是它不需要任何服务器。

选项2:Amazon EC2服务器

或者,您可以运行Elastic Load Balancer前端的Amazon EC2实例。这是传统的应用程序设计,允许您使用许多不同的框架。但是,即使没有人使用您的应用程序,服务器也会有持续的成本。