![如何使用 AWS 中的 vpc 流日志诊断跨账户 EC2/RDS 连接?](https://linux22.com/image/766080/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20AWS%20%E4%B8%AD%E7%9A%84%20vpc%20%E6%B5%81%E6%97%A5%E5%BF%97%E8%AF%8A%E6%96%AD%E8%B7%A8%E8%B4%A6%E6%88%B7%20EC2%2FRDS%20%E8%BF%9E%E6%8E%A5%EF%BC%9F.png)
在AWS上创建了2个账户。
- 帐户 1:A | 已部署 EC2
- 帐户 2:B | 已部署的 RDS
想要从账户 1 的 EC2 连接到账户 2 的 RDS,但不起作用。因此启用 VPC 流日志来诊断问题所在。这两个账户之间的连接使用传输网关。双方都已使用路由表连接到自己的 VPC。
通过 db connect client 从 A 到 B 进行连接测试后,尝试从 A 查找网络接口 ID(例如eni-XXXXXXXX
属于 EC2 实例),但在 B 的 CloudWatch Logs Group 中找不到其名称。
我按照这个指南做了,使用 AWS VPC 流日志诊断间歇性 RDS 连接。但这些步骤不能解决我的问题,我无法用它来诊断:
确定您的 RDS 实例的弹性网络 ID (ENI)
- 使用 AWS RDS 控制台获取实例的端点(其格式为 [xxx].[region].rds.amazonaws.com)。
- 使用 dig 或类似工具查找端点的 IP 地址。CNAME 是不够的,您需要实际 IP。
- 使用 AWS 网络接口控制台搜索您获得的 IP 地址,并从结果记录中获取网络接口 ID(将是 eni-XXXXXXXX)。
查询您的流日志
- 使用 VPC 控制台找到您的 VPC。转到“流日志”选项卡,然后单击进入 CloudWatch Logs 组。
- 在 CloudWatch Logs 组中,使用搜索框查找您的网络接口 ID。
- 单击您找到的记录,您将看到您的实例的所有流量!
如何才能正确确认网络流量?
我在流日志中发现了一个未知端口。
2 023910321035 eni-12309fdsaj0jf012 ACCOUNT_1_EC2_IP ACCOUNT_2_RDS_IP 45052 31337 6 3 180 1619490209 1619490213 REJECT OK
2 023910321035 eni-12309fdsaj0jf012 ACCOUNT_1_EC2_IP ACCOUNT_2_RDS_IP 45052 31337 6 3 180 1619490209 1619490213 REJECT OK
端口31337
没有开放,为什么会连接这个端口?