amazon-s3 - 如何将 EBS 上 Rails 应用程序上的入站安全组限制为仅来自我的应用程序(在 S3 上)并防止其他服务器访问我的 API?
问题描述
我的 Rails 后端 (api.mydomain.com) 托管在 EBS 中。EC2 主机有一个 VPC 安全组。VPC 安全组的入站规则只允许 HTTP 上对应的负载均衡器安全组。负载均衡器安全组允许0.0.0.0/0
HTTP 和 HTTPS。我想限制访问我的 Rails 后端的 API 调用只能来自我在 S3 (mydomain.com) 中托管的 Angular 应用程序。这可能吗?
我想防止其他服务器访问我的 API。
解决方案
它与你的 AWS 安全无关;您应该为您的后端 API 设置 CORS 设置,并将您的 API 设置为仅接受来自您的域的请求。
了解 CORS
同源策略是 Web 浏览器实现的一个重要的安全概念,以防止 Javascript 代码针对与其提供服务的源不同的源(例如,不同的域)发出请求。尽管同源策略可以有效地防止来自不同来源的资源,但它也可以防止服务器与已知和可信来源的客户端之间的合法交互。
跨域资源共享 (CORS) 是一种放宽同源策略的技术,允许网页上的 Javascript 使用从不同来源提供的 REST API。
有关更多信息,请阅读以下文档:
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
https://www.html5rocks.com/en/tutorials/cors/
https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
以及这些关于 CORS 和 Rails 的文档
https://demisx.github.io/rails-api/2014/02/18/configure-accept-headers-cors.html
https://til.hashrocket.com/posts/4d7f12b213-rails-5-api-and-cors
推荐阅读
- reactjs - 用于编辑数据的 React 组件
- javascript - 在 React.JS 中的映射函数中嵌套映射函数
- javascript - Javascript 不会将 json 元素识别为数字
- git - Git切换并拉新分支
- django - Docker 没有持久化 postgres 卷 [django]
- c++ - 具有静态和 const 私有成员的奇怪重复模板模式
- python - 如何仅使用animation.FuncAnimation绘制当前帧?
- vb.net - 如何使用小时、分钟和秒创建倒数计时器?
- regex - 用制表符分隔行的正则表达式
- excel - 从 SAS 导出到 Excel 时出错 - 逗号问题