AWS S3 静态站点可以访问 VPC 中的 REST API 吗?
Can an AWS S3 Static Site access REST API in VPC?
我已经阅读了好几页文档和其他 Whosebug questions/answers,但似乎无法找到任何可以帮助我解决我的情况的东西。
我在 S3 存储桶中托管一个 public 静态站点。该站点对我在 VPC 的 EC2 实例中托管的 API 进行了一些调用。因此,我的 API 只能被同一 VPC 中的其他实例和服务调用。
但我不确定如何允许 S3 Bucket 站点访问我的 API。
我已经尝试创建 VPC 端点并沿着这条路走下去,但所做的只是限制只能从我的 VPC 中的实例访问我的 S3 站点(这不是我想要的)。
如果有任何帮助,我将不胜感激,非常感谢。
希望我的问题很清楚。
不,S3 静态网站是 100% 的客户端代码。所以它基本上只是 html + css + javascript 被交付,原样来自 S3。如果您想将动态内容添加到您的网站中,您需要考虑调用可从用户浏览器(即从互联网)访问的 API。
AWS API Gateway with Private Integrations 可用于接受传入的 REST 调用并将其发送到 VPC 中的 EC2 服务器。
我向 S3 静态网站添加动态数据的首选解决方案是使用 API 网关和 AWS Lambda 创建无服务器网站。这最大限度地减少了 运行 成本、维护,并允许快速部署。见 The Serverless Framework 起床和 运行 这个解决方案。
静态网站不会 运行 在服务器上。它 运行 完全存在于每个站点访问者的 Web 浏览器中。 运行ning 所在的计算机将是最终用户的笔记本电脑。 S3 存储桶中 None 的代码 运行。 S3 存储桶只是存储文件并将它们提供给最终用户的浏览器,然后 运行 发送代码。您尝试授予 S3 存储桶访问 VPC 资源的路径将不起作用。
您需要使您的 API public 易于访问,以便代码 运行ning 在您的静态站点中(运行ning 在 Web 浏览器中,最后-user 的 laptops/tablets/phones/etc.) 才能访问它。您应该查看 API 密钥或 JWT 令牌之类的东西来为您的 public API.
提供安全性
我已经阅读了好几页文档和其他 Whosebug questions/answers,但似乎无法找到任何可以帮助我解决我的情况的东西。
我在 S3 存储桶中托管一个 public 静态站点。该站点对我在 VPC 的 EC2 实例中托管的 API 进行了一些调用。因此,我的 API 只能被同一 VPC 中的其他实例和服务调用。
但我不确定如何允许 S3 Bucket 站点访问我的 API。
我已经尝试创建 VPC 端点并沿着这条路走下去,但所做的只是限制只能从我的 VPC 中的实例访问我的 S3 站点(这不是我想要的)。
如果有任何帮助,我将不胜感激,非常感谢。 希望我的问题很清楚。
不,S3 静态网站是 100% 的客户端代码。所以它基本上只是 html + css + javascript 被交付,原样来自 S3。如果您想将动态内容添加到您的网站中,您需要考虑调用可从用户浏览器(即从互联网)访问的 API。
AWS API Gateway with Private Integrations 可用于接受传入的 REST 调用并将其发送到 VPC 中的 EC2 服务器。
我向 S3 静态网站添加动态数据的首选解决方案是使用 API 网关和 AWS Lambda 创建无服务器网站。这最大限度地减少了 运行 成本、维护,并允许快速部署。见 The Serverless Framework 起床和 运行 这个解决方案。
静态网站不会 运行 在服务器上。它 运行 完全存在于每个站点访问者的 Web 浏览器中。 运行ning 所在的计算机将是最终用户的笔记本电脑。 S3 存储桶中 None 的代码 运行。 S3 存储桶只是存储文件并将它们提供给最终用户的浏览器,然后 运行 发送代码。您尝试授予 S3 存储桶访问 VPC 资源的路径将不起作用。
您需要使您的 API public 易于访问,以便代码 运行ning 在您的静态站点中(运行ning 在 Web 浏览器中,最后-user 的 laptops/tablets/phones/etc.) 才能访问它。您应该查看 API 密钥或 JWT 令牌之类的东西来为您的 public API.
提供安全性