AWS:保护对 EC2 实例上特定端口的访问

AWS:保护对 EC2 实例上特定端口的访问

我有一个 EC2 实例正在运行一个应用程序,该应用程序在端口 1000 和 2000 上提供 API。EC2 实例应该允许所有传出流量以及到端口 1000 的任何传入流量。

但是,与端口 2000 的连接应受到授权保护 - 例如通过 Cognito 用户池。我在考虑是否可以使用 API 网关实现这一点。我想到了三个问题:

  • 所有到端口 1000 的流量是否也必须通过 API 网关进行路由,而这些流量不应以任何形式的访问控制进行保护,并且应该对整个互联网开放,从而导致更高的成本?
  • 如果可以不通过 API 网关将流量路由到端口 1000,而将流量路由到端口 2000,那么外部客户端是否可以通过同一 IP 访问两个端点?
  • 通过添加 API 网关,我仍然可以轻松允许来自 EC2 实例的所有传出流量吗?

我正在寻找一种适用于此场景的经济高效的方法。如果有更好的方法来实现此行为,我愿意听取涉及其他 AWS 服务而非 API 网关的解决方案。

答案1

亚马逊 API 网关以及应用程序负载均衡器支持通过 Amazon Cognito 进行身份验证。

所有到端口 1000 的流量是否也必须通过 API 网关进行路由,而这些流量不应以任何形式的访问控制进行保护,并且应该对整个互联网开放,从而导致更高的成本?

是的,你需要这样做。你不能根据端口为 DNS 条目设置不同的端点。你需要像 API Gateway 或 ALB 这样的工具来根据端口路由流量。

通过添加 API 网关,我仍然可以轻松允许来自 EC2 实例的所有传出流量吗?

是的,出站流量不会通过 API 网关或 ALB 路由。出站流量会经过 NAT 网关、NAT 实例或 IGW,具体取决于您的 VPC 设置。

相关内容