什么是安全組
安全組是一種網絡安全防護機制,用于防止未經授權的訪問和保護計算機網絡免受惡意攻擊。它是一種虛擬防火墻,用于限制入向和出向網絡流量通行。安全組工作在網絡層和傳輸層,它通過檢查數據包的源地址、目標地址、協議類型和端口號等信息來決定是否允許通過。安全組創建后,用戶可以在安全組中定義各種訪問規則,當彈性云主機加入該安全組后,即受到這些訪問規則的保護。
不同資源池的安全組存在部分差異,如表1所示:
表1 可用區資源池和地域資源池的差異
| 對比項 | 多可用區資源池 | 地域資源池 |
|---|---|---|
| 作用機制 | “白名單”機制,即不匹配規則時,默認拒絕所有訪問。 | “白名單”機制,即不匹配規則時,默認拒絕所有訪問。 |
| 創建安全組 | 需指定和VPC的關聯關系 | 無需指定和VPC的關聯關系 |
| 默認安全組 | 一個VPC一個默認安全組 | 一個資源池一個默認安全組 |
| 自定義模板安全組的默認規則 | 自定義模板類型的安全組不存在默認規則 | 每個自定義模板類型的安全組存在兩條默認規則 |
| 默認安全組規則 | 存在默認安全組規則,具體規則以表3為準 | 存在默認安全組規則,具體規則以表2為準 |
| 安全組是否有狀態 | 出/入方向均有狀態 | 僅出向有狀態 |
| 安全組模板 | 自定義、通用Web服務器、開放全部端口 | 自定義、通用Web服務器、開放全部端口 |
默認安全組:
- 對于地域資源池,系統會為每個用戶默認創建一個安全組,多個VPC可以共用同一個安全組。默認安全組的默認規則可參考表2“地域資源池默認安全組規則”。
- 對于可用區資源池,系統會為每個VPC默認創建一個安全組。一般來講不同VPC之間是不同的業務,VPC之間是相互隔離的,相同業務一般部署在一個VPC。大多數情況下,不同的VPC由于業務的差異,所使用的安全組規則應該是不一樣的。每個VPC自動建立一個默認安全組,可以滿足用戶不同業務需要不同安全組的場景。默認安全組的默認規則可參考表3“可用區資源池默認安全組規則”。
安全組狀態:
- 對于地域資源池來說,安全組出向是有狀態的。如果您從實例發送一個出站請求,且該安全組的出站規則是放通的話,那么無論其入站規則如何,都將允許該出站請求的響應流量流入。
- 對于可用區資源池來說,安全組出/入方向均有狀態的。如果您從實例發送一個出站請求,且該安全組的出站規則是放通的話,那么無論其入站規則如何,都將允許該出站請求的響應流量流入。同理,如果該安全組的入站規則是放通的,那無論出站規則如何,都將允許入站請求的響應流量可以出站。
自定義安全組:
- 對于地域資源池來說,用戶創建安全組時,模板類型為自定義的安全組會存在兩條默認規則,即出向默認放通所有IP地址(0.0.0.0/0、::/0)流量的數據報文通過。
- 對于可用區資源池來說,用戶創建安全組時,模板類型為自定義的安全組不存在默認規則,如未添加規則,則默認安全組出、入方向將均拒絕所有訪問。
不同資源池列表見產品簡介-資源池區別頁面,實際情況以控制臺展現為準。
安全組規則
為了更好地管理安全組的入出方向,您可以設置安全組規則,去控制云服務器的出入向流量。通過配置適當的規則,控制和保護加入安全組的彈性云服務器的訪問。
-
安全組規則可分為入向規則和出向規則。入向規則用于控制流入服務器實例的流量,出向規則用于控制從服務器實例流出的流量。默認安全組會自帶一些默認規則,您也可以自定義添加安全組規則。
-
安全組規則主要遵循白名單機制,具體說明如下:
入方向規則:入方向指外部訪問安全組內的云服務器的指定端口。當外部請求匹配上安全組中入方向規則的源地址,并且授權策略為“允許”時,允許該請求進入,其他請求一律攔截。通常情況下,您一般不用在入方向配置授權策略為“拒絕”的規則,因為不匹配“允許”規則的請求均會被攔截。
出方向規則:出方向指安全組內的云服務器訪問外部的指定端口。在出方向中放通全部協議和端口,配置全零IP地址,并且策略為“允許”時,允許所有的內部請求出去。0.0.0.0/0表示所有IPv4地址,::/0表示所有IPv6地址。
地域資源池:
對于地域資源池來說,系統會為每個用戶默認創建一個安全組,默認安全組包含一系列默認規則,主要是在出方向上的數據報文全部放行,入方向訪問受限,安全組內的云服務器無需添加規則即可互相訪問。

默認安全組規則如下表2:
表2 地域資源池默認安全組規則
| 方向 | 授權策略 | 類型 | 協議 | 端口范圍 | 目的地址/源地址 | 說明 |
|---|---|---|---|---|---|---|
| 出方向 | 允許 | IPv4 | Any | Any | 0.0.0.0/0 | 允許所有IPv4類型的出站流量的數據報文通過。 |
| 出方向 | 允許 | IPv6 | Any | Any | ::/0 | 允許所有IPv6類型的出站流量的數據報文通過。 |
| 入方向 | 允許 | IPv4 | Any | Any | 默認安全組ID (例如:sg-xxxxx) | 僅允許安全組內的云服務器彼此通信,丟棄其他入站流量的全部數據報文。 |
| 入方向 | 允許 | IPv6 | Any | Any | 默認安全組ID (例如:sg-xxxxx) | 僅允許安全組內的云服務器彼此通信,丟棄其他入站流量的全部數據報文。 |
| 入方向 | 允許 | IPv4 | TCP | 22 | 0.0.0.0/0 | 允許所有IP地址通過SSH遠程連接到Linux云服務器。 |
| 入方向 | 允許 | IPv4 | TCP | 3389 | 0.0.0.0/0 | 允許所有IP地址通過RDP遠程連接到Windows云服務器。 |
| 入方向 | 允許 | IPv4 | ICMP | Any | 0.0.0.0/0 | 使用ping程序測試云服務器之間的通訊狀況。 |
可用區資源池:
對于可用區資源池來說,系統會為每個VPC默認創建一個安全組,默認安全組包含一系列默認規則,主要是在出方向上的數據報文全部放行,入方向訪問受限。
默認安全組規則如下表3:
表3 可用區資源池默認安全組規則
| 方向 | 授權策略 | 類型 | 優先級 | 協議 | 端口范圍 | 目的地址/源地址 | 說明 |
|---|---|---|---|---|---|---|---|
| 出方向 | 允許 | IPv4 | 100 | Any | Any | 0.0.0.0/0 | 允許所有IPv4類型的出站流量的數據報文通過。 |
| 出方向 | 允許 | IPv6 | 100 | Any | Any | ::/0 | 允許所有IPv6類型的出站流量的數據報文通過。 |
| 入方向 | 允許 | IPv4 | 99 | ICMP | Any | 0.0.0.0/0 | 使用ping程序測試云服務器之間的IPv4地址通訊狀況 |
| 入方向 | 允許 | IPv6 | 99 | ICMP | Any | ::/0 | 使用ping程序測試云服務器之間的IPv6地址通訊狀況 |
| 入方向 | 允許 | IPv4 | 99 | TCP | 22 | 0.0.0.0/0 | 允許所有IPv4地址通過SSH遠程連接到Linux云服務器。 |
| 入方向 | 允許 | IPv6 | 99 | TCP | 22 | ::/0 | 允許所有IPv6地址通過SSH遠程連接到Linux云服務器。 |
| 入方向 | 允許 | IPv4 | 99 | TCP | 3389 | 0.0.0.0/0 | 允許所有IPv4地址通過RDP遠程連接到Windows云服務器。 |
| 入方向 | 允許 | IPv6 | 99 | TCP | 3389 | ::/0 | 允許所有IPv6地址通過RDP遠程連接到Windows云服務器。 |
| 入方向 | 拒絕 | IPv4 | 100 | Any | Any | 0.0.0.0/0 | 禁止所有IPv4類型的入站流量的數據報文通過。 |
| 入方向 | 拒絕 | IPv6 | 100 | Any | Any | ::/0 | 禁止所有IPv6類型的入站流量的數據報文通過。 |
實踐建議
以下是一些關于安全組的建議和實踐經驗,幫助確保您的云環境的安全性,您可根據具體需求和環境來制定適合的安全組策略:
- 原則上,安全組規則取最小權限原則,通過設置所需的端口和協議,限制對必要IP地址的訪問。只允許最少必要的流量進出您的資源實例。
- 定期更新安全組規則,以適應您的業務需求的變化。不再需要的規則應被刪除,根據業務變化添加新的安全組規則。
- 根據資源的安全需求,將資源實例劃分為不同的安全組。通過多層級的安全組可以實現細粒度的安全控制,確保安全性與靈活性之間的平衡。
- 通過有規范的命名等方式有意識地規劃和管理安全組規則,易于查找。
- 安全組應與其他安全措施如網絡ACL、防火墻等結合使用,以提供更全面的安全保護。
- 建議您不要直接修改線上環境使用的安全組,修改后的安全組會自動應用在安全組內的所有云服務器上,因此您可以先克隆一個安全組,在測試環境中進行調試,確保修改后云服務器之間的通訊正常,再將修改后的安全組同步到線上環境。