我有一个 EC2 实例运行一个应用程序,该应用程序在端口 1000 和 2000 上提供 API。应该允许 EC2 实例的所有传出流量以及到端口 1000 的任何传入流量。
但是,与端口 2000 的连接应受授权保护 - 例如通过 Cognito 用户池。我在考虑是否可以使用 API 网关来实现这一点。我想到了三个问题:
- 到端口 1000 的所有流量,不应该以任何形式的访问控制保护并且应该对整个互联网开放,是否也必须通过 API 网关路由,从而导致更高的成本?
- 如果可以不通过 API 网关将流量路由到端口 1000,同时将流量路由到端口 2000,那么外部客户端是否可以通过相同的 IP 访问两个端点?
- 通过添加 API 网关,我是否仍然可以轻松地允许来自 EC2 实例的所有传出流量?
我正在为这种情况寻找一种经济高效的方法。如果有更好的方法来实现这种行为,我愿意听到涉及其他 AWS 服务而不是 API Gateway 的解决方案。
Amazon API Gateway以及Application Load Balancer支持通过 Amazon Cognito 进行身份验证。
是的,你需要这样做。您不能根据端口为 DNS 条目设置不同的端点。您需要 API Gateway 或 ALB 之类的东西来根据端口路由流量。
是的,出站流量不通过 API Gateway 或 ALB 路由。出站流量通过 NAT 网关、NAT 实例或 IGW,具体取决于您的 VPC 设置。