我目前正在AWS S3上托管一个静态网站。我有部分网站,我只希望AWS Cognito经过身份验证的用户可以访问。 S3存储桶的这些部分仅限于某些角色。据我了解,一旦Cognito用户收到他们的临时AWS凭证,我就需要使用S3 sdk从S3加载受限对象(index.html)并将其显示在网页中。这是正确的方法,一旦我从S3返回对象,我该如何将其加载到网页中?谢谢!
答案 0 :(得分:2)
您需要在后端运行的应用程序逻辑来控制您的安全性并存储/检索数据。虽然大部分内容都可以通过浏览器完成,但它仍然可以进行黑客攻击。因此,您需要在后端使用访问控制逻辑。
选项1:API网关和Lambda函数
您可以在Amazon S3之外提供静态网页,通过API网关对Lambda函数进行API调用。这称为无服务器模型。
的示例图表
基本上,Lambda函数接收请求,确定用户是否被授权,确定他们将收到什么(例如,到不同页面的预签名URL)并将其发送回网页。这种设计的好处是它不需要任何服务器。
选项2:Amazon EC2服务器
或者,您可以运行Elastic Load Balancer前端的Amazon EC2实例。这是传统的应用程序设计,允许您使用许多不同的框架。但是,即使没有人使用您的应用程序,服务器也会有持续的成本。