Amazon-Web-Services

為什麼主網路介面被迫繼承其 EC2 實例的所有安全組?

  • December 13, 2018

我正在測試一個在 EC2 實例上執行的虛擬負載均衡器。我希望能夠在各種條件下更改設置並測試平衡器。為了模擬物理負載均衡器,我為實例分配了三個網路介面:

  1. 外部(主要) - Web 的公開界面。AWS 規則將設置為允許所有流量到此介面。負載均衡器將設置自己的 IP/埠規則以在內部過濾此流量。與此介面的連接將從 VPC 內部和外部到達。
  2. 管理 - 一個專用介面,其規則設置為允許 HTTPS 流量到負載均衡器的 Web 界面或 SSH 流量到負載均衡器上執行的管理 shell。將從 VPC 外部的電腦建立管理連接。
  3. 內部 - 負載均衡器後面的所有實例都將通過該介面進行連接。此介面上的連接將由負載平衡器映射到外部介面上的連接。與內部介面的連接只會從 VPC 內部的實例到達。

為了模擬物理連接,我想對這些介面應用一些 AWS 安全組規則,以便只允許 VPC 中某些實例之間的連接(即:它們相互插入)。為此,我為每個介面(內部、管理和外部)創建了一個單獨的安全組。

我的理解是,安全組內的規則適用於屬於它們的介面上的所有入站和出站流量。由於此設置中的每個介面都扮演不同的角色,我希望每個介面都屬於一個(並且只有一個)安全組。

我不清楚的是實例本身(與其介面相反)屬於安全組意味著什麼。 我的想法是,由於負載均衡器實例將在所有三個介面上進行通信,因此它應該屬於所有三個安全組。

不幸的是,當我將內部和管理安全組應用於實例時,它會強制外部介面也位於內部和管理安全組中。

同樣,當我從外部介面中刪除內部和管理安全組時,它也會從這些安全組中刪除實例。

應用於實例的安全組是否只是一個多餘的配置快捷方式(IE:只有應用於網路介面的安全組實際上很重要),是否有其他方法可以實現我想要的配置,或者我是否認為問題有誤? AWS有理由阻止這種配置嗎?

雖然可能暗示 AWS 實例具有安全組,但實際上網路介面具有安全組。每個介面(隨實例或ENI提供)都可以有自己的安全組。任何安全組都可以根據需要應用於任意數量的網路介面。

因為這就是它的工作方式,以及它是如何工作的。

將安全組應用於實例的能力只是語法糖。如文件所述,它將安全組應用於該實例的主網路介面。

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