【问题标题】:AWS Instance Security Group to give access to itself via TCPAWS 实例安全组通过 TCP 授予对自身的访问权限
【发布时间】:2019-07-09 09:00:03
【问题描述】:

我有一个运行前端 (Angular) 的 Apache 服务器,它依赖于托管在与 Apache 相同的实例上的 API。我不希望我的 API (Express) 向公众开放,但需要通过共享相同 IP 的前端访问它。我尝试过的事情,

  • 将 API 基本 url 设置为 'localhost' 似乎不起作用。
  • 在 AWS 安全组中添加安全规则以仅允许连接到相同的 IP(到自身)不起作用。

有什么解决方法吗?

【问题讨论】:

  • 什么服务器提供该 API?如果那是 Apache,则可以编写适当的规则来仅为 localhost 提供某些目录
  • Apache 用于为 Angular 前端应用程序提供服务。 NodeJS, Express 用于 API。您的意思是 CORS 仅服务于本地主机吗?

标签: amazon-web-services aws-security-group


【解决方案1】:

默认情况下始终打开与同一 IP 的连接。您可能需要将 ec2 实例的 private IP 添加为您的 api 基本 URL。 (你更了解的端口)。也应该为该私有 IP 启用 Cors。

【讨论】:

  • 看起来 CORS 是唯一的选择,因为在前端设置私有 IP 会导致应用程序在客户端计算机中搜索 IP。我将尝试查看是否只能允许使用 CORS 从前端连接到 API。
【解决方案2】:

首先,使用 Angular 作为前端意味着需要一个可以公开访问的 API,您只需要实现安全,因为您只需将 UI 提供给客户端用户,而他们的浏览器是访问 API 而不是角度的服务器。 您可以设置另一个 API,该 API 可以部署在您的 UI 的同一服务器和相同的 url 上,作为您可以使用 AWS 中的安全组管理的“私有 API”的控制器

【讨论】:

  • 是的,我已经开始意识到这一点,我决定看看我是否可以阻止来自节点服务器 CORS 的源地址。您还有其他建议我可以尝试吗?
  • 您可以添加该来源阻止,但它始终可以更改该请求。只需在两个 API 上使用密钥实现良好的标记化
【解决方案3】:

将 ${IP} 替换为 172.17.0.1,以便重启后可以连接到同一个 EC2。为来自同一 SG 的入站连接添加规则

【讨论】:

    猜你喜欢
    • 2018-04-20
    • 2017-03-23
    • 2014-03-06
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2018-06-13
    • 2016-09-05
    相关资源
    最近更新 更多