我有以下设置:
- VPC-1 中的 ECS (Fargate) 集群
- VPC-2 中的 RDS
我在 ECS 中运行的应用程序使用 DNS 名称连接到 RDS,但 DNS 不是私有(private) IP,而是解析公共(public) IP 地址。
在 RDS 中,我想配置严格的安全规则以防止来自外部世界的连接 - 我想将其限制为仅接受来自 VPC-1 的连接。
我尝试了以下操作:
- 对等连接 VPC-1 和 VPC-2 - 没有帮助,在 ECS 中运行的应用程序仍然解析公共(public) IP
- 将所有出站流量 (0.0.0.0/0) 从 ECS 集群路由到 NAT 网关(而不是互联网网关)并在 RDS 中配置安全组以接受来自为 NAT 网关配置的弹性 IP 的连接 - 在这种情况下我的应用程序不甚至不想开始,我怀疑这是由于出站流量通过 NAT 路由而导致配置过程失败
- 所有 VPC 都将“DNS 解析”和“DNS 主机名”设置为"is"
我不知道如何正确配置它。一旦我允许我的 RDS 的所有入站流量 (0.0.0.0/0),一切都会开始正常工作,但我不希望那样。
我在这里错过了什么?也许我应该使用完全不同的方法来保护对我的 RDS 的访问?
最佳答案
我设法通过使用 NAT 网关的方法解决了这个问题 - 我不确定为什么它不能更早地工作,我改变了方法来首先创建 VPC,然后创建 ECS 集群并将它与之前创建的 VPC 相关联。
创建弹性 IP、NAT 网关、具有私有(private)和公共(public)子网的 VPC,如本文所述:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-public-private-vpc.html
NAT网关关联私有(private)子网
在私有(private)子网中创建ECS集群
创建负载均衡器并将其关联到公共(public)网络
修改了 RDS 的安全组,以允许来自在先前创建的 NAT 网关上配置的弹性 IP 的流量。
通过此设置,从应用程序到 RDS 的任何流量都通过 NAT,因此我可以设置安全组规则以允许此流量。另一方面,公共(public)子网中的负载均衡器能够与位于私有(private)网络中的集群通信。
关于amazon-web-services - AWS Fargate 连接到不同 VPC 中的 RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50249493/