安全組
安全組充當虛擬防火牆,控制允許到達和離開與其關聯的資源的流量。 例如,在將安全組與 EC2 實例關聯后,它將控制該實例的入站和出站流量。它允許你控制哪些流量可以流入計算機,以及哪些流量可以流出。 安全組就是這樣一個防火牆,它可以被關聯到 VPC 內的實例(如 EC2)。 關聯后,這台 EC2 就有了類似 Windows 中那樣的防火牆。 所以可以認為安全組就是實例的防火牆。
對於每個安全組,你都可以添加若干入站規則和出站規則。
入站規則
入站規則描述了什麼樣的流量可以流入實例,例如下方的入站規則允許任意一個IP位址通過 HTTPS 協定訪問實例。
源IP | 協議類型 | 埠號 | 描述 |
0.0.0.0/0 | TCP | 443 | 允許從所有 IPv4 位址進行入站 HTTPS 訪問 |
出站規則
出站規則描述了什麼樣的流量可以流出實例,例如下方的出站規則允許實例將流量發送到任何地方。
目的地 IP | 協議類型 | 埠號 | 描述 |
0.0.0.0/0 | TCP | All | 允許所有的出站 IPv4 流量 |
需要注意的是,源和目的地不僅可以是IP位址,也可以是另一個安全組。
連接跟蹤
安全組使用連接跟蹤來跟蹤有關進出實例的流量的資訊。 安全組將基於流量的連接狀態應用規則以確定允許還是拒絕流量。 有了這種方法,安全組就具有狀態。 這意味著無論出站安全組規則如何都允許對入站流量的回應流出實例,反之亦然。
連接跟蹤有助於簡化請求回應模式的出入站規則配置。 請求回應模式常見於網路傳輸協定(如 HTTP),用戶端向伺服器發起一個請求,伺服器將回應返回給客戶端,請求和回應總是成對出現。 借助安全組的連接跟蹤特性,可以實現如下兩個效果。
入站跟蹤
如果從源發來的請求流量通過了入站規則進入實例,則隨後的回應流量在出站時會忽略出站規則直接流出。
如果從源發來的請求流量通過了入站規則進入實例,則隨後的回應流量在出站時會忽略出站規則直接流出。
出站跟蹤
如果從實例發出的請求流量通過了出站規則流出實例,則隨後的回應流量在入站時會忽略入站規則直接流入。
如果從實例發出的請求流量通過了出站規則流出實例,則隨後的回應流量在入站時會忽略入站規則直接流入。
未跟蹤的連接
並不是所有的連接都會被跟蹤(有狀態)。 如果有一個安全組規則允許所有通信(0.0.0.0/0 或 ::/0)的 TCP 或 UDP 流,而另一個方向上存在一個對應的規則允許所有埠(0-65535)的所有回應通信(0.0.0.0/0 或 ::/0),則不會跟蹤該通信流。 下邊的例子展示了其中的一些規律。
入站規則
源IP | 協議類型 | 埠號 |
203.0.113.1/32 | TCP | 22(SSH) |
0.0.0.0/0 | TCP | 80(HTTP) |
::/0 | TCP | 80(HTTP) |
0.0.0.0/0 | ICMP | All |
出站規則
目的地 IP | 協議類型 | 埠號 |
0.0.0.0/0 | All | All |
::/0 | All | All |
- 1.將會跟蹤埠 22(SSH)上流入和流出實例的 TCP 流量,因為入站規則只允許來自 203.0.113.1/32 的流量,而不是所有 IP 位址(0.0.0.0/0)。
- 2.不會跟蹤埠 80(HTTP)上流入和流出實例的 TCP 流量,因為入站和出站規則都允許所有流量(0.0.0.0/0 或 ::/0)。
- 3.無論規則如何,始終跟蹤ICMP流量,因為不是TCP或UDP協定。
- 4.如果您從安全組刪除出站規則,則將跟蹤往返於實例上的所有流量,包括埠 80(HTTP)上的流量,因為出站規則不再允許所有IP位址。
網路 ACL
網路訪問控制清單(ACL)是 VPC 的一個可選安全層,可用作防火牆來控制進出一個或多個子網的流量。 你可以設置網路 ACL,使其規則與你的安全組相似,以便為你的 VPC 添加額外安全層。
網路 ACL 和安全組極為相似,都可作為防火牆控制流量的進出,且工作在子網級別。 因此可以認為網路 ACL 是子網的防火牆。
可設置拒絕規則
安全組使用白名單模式設置規則,每條規則都表示允許某種流量通過。 而網路 ACL 還支援黑名單模式,可以設置拒絕哪些流量通過。 例如下邊的入站規則:
規則編號 | 源IP | 類型 | 協議類型 | 埠號 | 允許/拒絕 | 註釋 |
120 | 0.0.0.0/0 | SSH | TCP | 22 | 拒絕 | 拒絕所有 SSH 連接 |
* | 0.0.0.0/0 | All traffic | All | All | 允許 | 允許所有連接 |
為了解決這種衝突,網路 ACL 按照規則編號由小到大逐個嘗試。 如果流量遇到了適用的規則,則應用該規則,並停止嘗試後續規則。
安全組與網路 ACL 的差異
網路 ACL 只比安全組多了黑名單模式,即拒絕規則
安全組 | 網路 ACL |
在實例級別運行 | 在子網級別運行 |
僅支援允許規則 | 支援允許規則和拒絕規則 |
有狀態:返回數據流會被自動允許,不受任何規則的影響 | 無狀態:返回數據流必須被規則明確允許 |
會在決定是否允許數據流前評估所有規則 | 在決定是否允許流量時,按順序處理規則,從編號最低的規則開始 |
只有在啟動實例的同時指定安全組、或稍後將安全組與實例關聯的情況下,操作才會被應用到實例 | 自動應用於與之關聯的子網中的所有實例(因此,如果安全組規則過於寬鬆,它提供額外的防禦層) |
二者最主要的差別是安全組作用於實例(如EC2),因此每個實例都可以配置不同的安全組。而網絡ACL 作用於子網,相當於是給子網裝了一個防火牆,子網內的所有資源都會被網絡ACL 保護
沒有留言:
張貼留言