![更好地理解 VPC 间流量与“公共”流量:公共 IP 和 PrivateLink 接口端点](https://linux22.com/image/773048/%E6%9B%B4%E5%A5%BD%E5%9C%B0%E7%90%86%E8%A7%A3%20VPC%20%E9%97%B4%E6%B5%81%E9%87%8F%E4%B8%8E%E2%80%9C%E5%85%AC%E5%85%B1%E2%80%9D%E6%B5%81%E9%87%8F%EF%BC%9A%E5%85%AC%E5%85%B1%20IP%20%E5%92%8C%20PrivateLink%20%E6%8E%A5%E5%8F%A3%E7%AB%AF%E7%82%B9.png)
我正在尝试深入了解 VPC 中的资源相互通信以及与 AWS 服务通信时不同场景下的流量和路由。我最近遇到了这个问题常问问题在 AWS 文档中,它对我的理解造成了一点小困扰:
问:当两个实例使用公有 IP 地址进行通信时,或当实例与公有 AWS 服务终端节点进行通信时,流量是否会通过互联网传输?
否。使用公有 IP 地址时,AWS 中托管的实例和服务之间的所有通信都使用 AWS 的私有网络。来自 AWS 网络且目的地位于 AWS 网络上的数据包将保留在 AWS 全球网络上,但往返于 AWS 中国区域的流量除外。
场景 1:EC2 实例 <> EC2 实例,同一 VPC:公网 IP 通信
我的理解是,如果同一 VPC 中的两个 EC2 实例通过公共 IP 地址相互通信,则流量将退出 VPC 并穿越“公共互联网”,但根据上述常见问题解答,这可能并不意味着在 AWS 的私有网络之外?有谁更深入地了解这种情况下的安全风险?退出 VPC 意味着什么真的就暴露和风险而言意味着什么?
场景 2:EC2 实例 <> AWS 服务通信
我知道 AWS PrivateLink 用于从 VPC 内“安全地”连接到 AWS 服务。以下内容摘自文档关于使用 PrivateLink 和 RDS:
您的实例也不需要公共 IP 地址即可使用任何可用的 RDS API 操作。您的 VPC 和 Amazon RDS 之间的流量不会离开 Amazon 网络。
现在,根据上面的第一个常见问题解答,似乎当 VPC 中的实例通过公共端点/IP(即没有 PrivateLink 接口端点)与 AWS 服务通信时,流量应该永远不会离开亚马逊网络,但 PrivateLink 文档让它看起来像是 VPC 流量做如果不使用这些接口端点,是否有可能在某个时候离开亚马逊网络?
--
我希望有人能在这里提供一些说明,因为似乎我只需要更多细节就可以让我明白一切。我想我的关注点/关注的焦点是安全性以及在所呈现的每种情况下存在什么样的暴露/额外风险。如果最终所有流量都流向亚马逊网络,那么离开 VPC 的流量到底意味着什么?离开 VPC 的流量有哪些风险?主要是担心拒绝服务还是担心有人嗅探流量?还是其他什么?我知道这可能取决于威胁模型,但我很好奇其他人在风险/担忧方面是怎么想的。
欢迎分享任何您认为有助于理解这些内容的文档/论文。AWS 文档对我来说似乎有点矛盾(或者可能只是没有深入探讨,因为它涉及到他们的秘密),所以希望有些人对这些领域进行了更深入的研究并发表了一些文章。我知道这个讨论涉及很多问题和概念,所以如果我可以澄清/简化上面的帖子,请告诉我。提前谢谢!