安全性群組應用指導和案例
安全性群組用於控制ECS執行個體的入方向和出方向流量。本文介紹安全性群組規劃原則,並提供Web服務、遠端存取、資料庫訪問、內網互連等常見情境的規則配置樣本。
安全性群組應用指導
1、規劃安全性群組
配置安全性群組前,先明確業務邊界和安全要求,例如哪些服務對公網開放,哪些服務僅允許內網訪問。
公網服務和內網服務使用不同安全性群組
公網服務僅開放必要連接埠,其他連接埠和協議預設關閉,減少暴露面。
資料庫、緩衝等內部服務建議部署在無公網存取權限的ECS執行個體上,並通過授權另一個安全性群組實現內網訪問。
不同應用使用不同安全性群組
不同應用通常需要開放不同連接埠,建議分屬不同安全性群組,避免規則互相影響。
例如,Linux執行個體可能開放TCP 22連接埠用於SSH,Windows執行個體可能開放TCP 3389連接埠用於遠端桌面。
即使使用同一鏡像類型,提供不同服務且無需內網互訪時,也建議劃入不同安全性群組,便於後續解耦和變更。
規劃應用時,可以結合網段和安全性群組劃分服務邊界。
生產環境和測試環境使用不同安全性群組
生產、測試、開發環境建議使用不同安全性群組,避免測試規則影響線上業務。
多套測試環境也可以分配不同安全性群組,減少環境之間的互相干擾。
不需要公網訪問的資源不分配公網IP
串連ECS執行個體時,優先使用Workbench、會話管理工具或跳板機,減少公網暴露。訪問無公網或私網環境中的服務時,可使用連接埠轉寄功能,請參見通過會話管理CLI的連接埠轉寄訪問無公網執行個體。
分布式應用中,不對公網提供服務的ECS執行個體建議不分配公網IP。多台伺服器提供公網服務時,建議通過分發流量,避免單點故障。
ECS執行個體僅需出方向訪問公網時,建議使用NAT Gateway配置SNAT規則,避免分配公網IP或EIP後暴露服務。具體配置,請參見建立和管理SNAT條目。
以白名單的方式使用安全性群組
安全性群組建議按白名單方式使用:預設拒絕訪問,僅添加允許規則放通必要連接埠和授權對象。排查線上問題時,不建議臨時分配公網IP或掛載EIP,以免擴大暴露面。
2、配置安全性群組規則
配置安全性群組規則時,僅開放業務必需的連接埠,並盡量限制源IP位址範圍。
在VPC網路中,一條安全性群組規則可同時控制公網和內網訪問。
普通安全性群組和企業級安全性群組預設策略有差異
普通安全性群組和企業級安全性群組預設拒絕所有入方向訪問。普通安全性群組預設允許所有出方向訪問;企業級安全性群組預設拒絕所有出方向訪問。
不同安全性群組及不同型別安全組的內網互連性有差異
即使是同一個賬戶下的ECS執行個體,如果分屬不同安全性群組,內網網路也是隔離的。普通安全性群組預設組內內網互連;企業級安全性群組預設組內內網隔離。
遵循最小授權原則添加安全性群組規則
例如,開放Linux執行個體22連接埠用於遠程登入時,僅允許特定IP訪問。
警告授權對象為0.0.0.0/0或::/0時,表示允許所有IP訪問執行個體,風險較高。僅在必須對公網開放的情境使用,並只開放必要連接埠。
請按最小範圍開放原則配置規則,避免全開。關於安全性群組支援的授權物件類型,請參見安全性群組規則。
遵循最小許可權原則設定組內隔離
在不需要普通安全性群組內ECS執行個體互相內網互連時,將普通安全性群組的組內連通原則設定為組內隔離。
盡量保持單個安全性群組內規則用途統一
按照用途將規則維護在多個安全性群組中,並將執行個體關聯到這些安全性群組。單個安全性群組的規則數量過多,會增加管理複雜度。
謹慎選擇安全性群組規則的授權對象
安全性群組規則的授權對象可以是IP地址、安全性群組或者CIDR網段。
不同安全性群組之間需要內網互連時,優先使用安全性群組ID授權,避免逐個維護IP或CIDR網段。例如,Web層使用
sg-web,資料庫層使用sg-database,可在sg-database中授權sg-web訪問MySQL(3306)連接埠。內網訪問建議使用源安全性群組授權,而不是CIDR網段授權。
典型的應用通常使用預設的連接埠提供服務
這些應用會通過伺服器的特定連接埠與外部進行通訊,詳情請參見常用連接埠。
3、持續最佳化調整
業務變化後,原有安全性群組規則可能不再適用,建議定期檢查並調整。修改線上規則前,可複製安全性群組並在測試環境驗證,確認流量正常後再應用到生產環境,避免業務中斷。
安全性群組應用案例
管控ECS執行個體的入站流量
入站流量指外部資源訪問ECS執行個體的流量。安全性群組入方向規則預設拒絕訪問,僅需配置允許規則。相關案例包含:
管控ECS執行個體的出站流量
出站流量指ECS執行個體訪問外部資源的流量。安全性群組出方向規則預設允許訪問,可通過拒絕規則限制執行個體訪問指定外部資源。相關案例包含:
案例1:部署在ECS執行個體的網站業務提供Web服務
網站部署在ECS執行個體上並對公網提供服務時,僅開放TCP 80(HTTP)和443(HTTPS)入方向訪問,其他服務連接埠保持關閉。
安全性群組規則樣本如下表所示:
規則方向 | 授權策略 | 優先順序 | 協議類型 | 連接埠範圍 | 授權對象 |
入方向 | 允許 | 1 | 自訂TCP | 服務的開放連接埠:
| 源:0.0.0.0/0 |
如果添加安全性群組規則後仍無法訪問網站,請檢查服務的開放連接埠是否正常工作。具體操作,請參見無法訪問ECS執行個體中的服務的排查方法。
案例2:特定使用者需要遠端存取ECS執行個體
需要遠端連線ECS執行個體時,僅對管理員或指定伺服器IP開放遠程登入連接埠,例如TCP 22(SSH)或自訂SSH連接埠,降低被攻擊風險。
安全性群組規則樣本如下表所示:
規則方向 | 授權策略 | 優先順序 | 協議類型 | 連接埠範圍 | 授權對象 |
入方向 | 允許 | 1 | 自訂TCP |
| 源:192.168.XX.XX 說明 根據串連方式填寫特定使用者或伺服器的公網IP或私網IP。 可通過IP地址查詢等網站擷取本地公網IP地址。 |
使用阿里雲Workbench遠端連線執行個體時,僅需允許特定授權對象。安全性群組入方向規則樣本如下表所示。
授權策略 | 優先順序 | 協議類型 | 連接埠範圍 | 授權對象 |
允許 | 1 | 自訂TCP |
|
|
案例3:資料庫服務部署在ECS的安全性原則
資料庫服務建議僅允許特定IP地址或應用伺服器安全性群組訪問對應連接埠,避免直接暴露到公網。
如果入方向規則已包含0.0.0.0/0,請檢查是否確有公網訪問需求。不需要公網訪問時,可添加拒絕規則。例如MySQL預設不應向公網開放3306連接埠,可添加如下拒絕規則,並將優先順序設為100。
常見資料庫預設連接埠的安全性群組規則如下表所示:
資料庫類型 | 規則方向 | 授權策略 | 優先順序 | 協議類型 | 連接埠範圍 | 授權對象 |
MySQL | 入方向 | 允許 | 1 | 自訂TCP | 目的:3306/3306 | 源:172.16.XX.XX |
Oracle | 入方向 | 允許 | 1 | 自訂TCP | 目的:1521/1521 | 源:192.168.XX.XX |
MS SQL | 入方向 | 允許 | 1 | 自訂TCP | 目的:1433/1433 | 源:192.168.XX.XX/16 |
PostgreSQL | 入方向 | 允許 | 1 | 自訂TCP | 目的:5432/5432 | 源:sg-bp1hv6wvmegs036**** |
Redis | 入方向 | 允許 | 1 | 自訂TCP | 目的:6379/6379 | 源:160998252992****/sg-bp174yoe2ib1sqj5**** |
請根據實際情況替換IP地址、CIDR地址塊、阿里雲帳號ID和安全性群組ID。
案例4:只允許特定協議的業務訪問
如需測試網路連通性,可允許ICMP協議訪問。例如,在用戶端執行ping命令前,需要放通ICMP。安全性群組規則樣本如下表所示:
規則方向 | 授權策略 | 優先順序 | 協議類型 | 連接埠範圍 | 授權對象 |
入方向 | 允許 | 1 |
| 目的:-1/-1 | 用戶端IP地址 說明 根據網路環境不同,輸入IPv4地址或者IPv6地址。 |
案例5:不同安全性群組的執行個體實現內網互連
同一VPC內,不同安全性群組的執行個體需要互訪時,建議通過授權安全性群組實現。例如,安全性群組A中的執行個體需要通過FTP訪問安全性群組B中的共用檔案,可授權安全性群組A訪問安全性群組B的對應連接埠,無需逐個維護執行個體IP。
如果執行個體屬於不同VPC,不能僅通過安全性群組實現內網互連。
如果業務支援將所有ECS執行個體部署到同一VPC,可通過更換ECS執行個體的VPC實現VPC內網互連。
如果ECS執行個體必須部署在不同VPC中,可使用VPC對等串連、私網串連或雲企業網等方案。更多資訊,請參見VPC互連。
情況一:
安全性群組A和安全性群組B屬於同一帳號時,授權對象填寫安全性群組ID。規則樣本如下表所示。
規則方向
授權策略
優先順序
協議類型
連接埠範圍
授權對象
入方向
允許
1
自訂TCP
目的:21/21
源:sg-bp1hv6wvmegs036****
說明請根據實際情況替換安全性群組ID。
情況二:
安全性群組A和安全性群組B屬於不同帳號時,授權對象填寫阿里雲帳號ID和安全性群組ID。規則樣本如下表所示。
規則方向
授權策略
優先順序
協議類型
連接埠範圍
授權對象
入方向
允許
1
自訂TCP
目的:21/21
源:160998252992****/sg-bp174yoe2ib1sqj5****
說明請根據實際情況替換阿里雲帳號ID和安全性群組ID。
案例6:限制ECS執行個體訪問外部網站
如果只允許執行個體訪問指定網站,可將出方向規則按白名單方式配置:先拒絕全部出方向訪問,再允許訪問指定網站IP。
設定安全性群組規則時需注意:
當協議、連接埠和授權對象匹配到多條規則時,系統根據優先順序和授權策略判斷最終生效規則。僅最終結果為允許時,才建立會話。
安全性群組規則優先順序數值越小,優先順序越高。相同優先順序下,拒絕規則優先生效。因此,拒絕全部出方向訪問的規則優先順序應低於允許規則,確保指定網站訪問能命中允許規則。
安全性群組規則樣本如下表所示:
規則方向 | 授權策略 | 優先順序 | 協議類型 | 連接埠範圍 | 授權對象 |
出方向 | 拒絕 | 2 | 全部 | 目的:-1/-1 | 目的:0.0.0.0/0 |
出方向 | 允許 | 1 | 自訂TCP | 目的:80/80 | 目的:47.96.XX.XX |
出方向 | 允許 | 1 | 自訂TCP | 目的:443/443 | 目的:121.199.XX.XX |
以上規則表示:安全性群組內執行個體僅允許訪問47.96.XX.XX的80連接埠和121.199.XX.XX的443連接埠,其他出方向訪問均被拒絕。