我完全从 Amazon S3 存储桶运行静态网站,但我想用密码保护我的内容。这可能吗?身份验证的类型不会打扰我,它只需要在那里,这样人们就不能只是“发现”我的网站。
目前,我没有设置域名,我认为这排除了http://www.s3auth.com/作为可能的解决方案。还有其他人吗?
我完全从 Amazon S3 存储桶运行静态网站,但我想用密码保护我的内容。这可能吗?身份验证的类型不会打扰我,它只需要在那里,这样人们就不能只是“发现”我的网站。
目前,我没有设置域名,我认为这排除了http://www.s3auth.com/作为可能的解决方案。还有其他人吗?
AWS 目前不提供直接执行此操作的方法。您提到的 S3auth 解决方案很好,因为您的存储桶/对象保持私有,因此直接访问存储桶不允许在没有您的私有凭证的情况下读取对象。s3auth 方法的缺点是它依赖于您信任 s3auth 和您的私人凭据。如果您的凭据在任何阶段都被泄露,则可能会付出高昂的代价,具体取决于某人如何滥用您的访问权限。
如果您使您的对象公开可读(就像您在创建网站时所做的那样),任何学习/猜测/知道您的对象名称等的人都可以访问它们。或者实际上,如果存储桶是可读的,那么他们所需要的只是存储桶名称。除了收紧 S3 访问权限外,没有真正的解决方法。
如果您只从某些 IP 地址访问您的网站,那么查看存储桶策略可能会有所帮助。向下滚动到限制对特定 IP 地址的访问。这不是密码,但它确实允许您至少限制访问的来源。
提供对对象的临时访问的另一种常用技术是查询字符串请求身份验证。但是,这不符合您对密码保护 S3 存储桶网站的原始要求。
这可以使用 CloudFront 和 Lambda@Edge 来实现。在此处查看答案:https ://stackoverflow.com/a/45971193/4550880
我认为适用于 Javascript 的 AWS 开发工具包正是您正在寻找的。公平地说,当您 2 年前发布此问题时,它不可用。它允许您使用 Facebook、Google 或 Amazon 登录。这是使用 AWS 登录 的另一个资源。