Amazon-Web-Services

限制 AWS VPC 之間的流量

  • December 23, 2021

我有兩個 VPC:A 和 B。

我希望 A 中的任何節點都能夠打開到 B 中的任何節點的 TCP 連接,但反過來不行。B 中的任何節點還必須能夠打開到公共 Internet 主機的傳出連接。實現這一目標的最佳方法是什麼?

案例:VPC A 包含許多敏感的內部服務,而 VPC B 包含執行完全不受信任的程式碼的節點。VPC A 需要向 VPC B 發出 HTTP 請求,但不得公開任何內部服務。

VPC 對等允許 A 和 B 中的任何節點之間的直接連接 - 這不能在路由級別上受到限制。安全組可用於阻止傳出連接,但由於沒有 DENY 規則,因此配置起來有點棘手。

網路 ACL 在這裡沒有用,因為必須允許從 B -> A 返回的流量。

還有其他選擇嗎?類似於 NAT 網關,只允許在一個方向打開連接?AWS 確實支持私有 NAT 網關,但我找不到任何此類配置的文件。

我沒有詳細閱讀您的答案,但似乎有點不對勁。我完全不知道您為什麼要使用 NAT 網關,它們純粹是為了允許私有子網中的實例訪問 Internet。

這裡的一個關鍵是單向通信,它強烈表明安全組就是答案。我的解決方案(不用想太多):

  • 兩個 VPC 之間的 VPC 對等互連,不同的 CIDR 範圍
  • 兩個 VPC 中的路由表以啟用通信
  • VPC A 中的安全組允許傳出流量到 VPC B CIDR 範圍,但不允許傳入。這將允許傳出流量和返回流量,但不允許在 VPC A 中發起的流量
  • VPC B 中的安全組允許來自 VPC A CIDR 的傳入流量,但不允許傳出。這允許流量進入並返回,但不允許在 A 中發起的流量到達 B
  • VPC B 中的 Internet 網關。如果您不需要通過 Internet 訪問 VPC B,則可以使用 VPC B 中的 NAT 網關。

引用自:https://serverfault.com/questions/1087603