安全性群組應用指導和案例

更新時間:
Copy as MD

安全性群組用於控制ECS執行個體的入方向和出方向流量。本文介紹安全性群組規劃原則,並提供Web服務、遠端存取、資料庫訪問、內網互連等常見情境的規則配置樣本。

安全性群組應用指導

1、規劃安全性群組

配置安全性群組前,先明確業務邊界和安全要求,例如哪些服務對公網開放,哪些服務僅允許內網訪問。

  • 公網服務和內網服務使用不同安全性群組

    公網服務僅開放必要連接埠,其他連接埠和協議預設關閉,減少暴露面。

    資料庫、緩衝等內部服務建議部署在無公網存取權限的ECS執行個體上,並通過授權另一個安全性群組實現內網訪問。

  • 不同應用使用不同安全性群組

    不同應用通常需要開放不同連接埠,建議分屬不同安全性群組,避免規則互相影響。

    例如,Linux執行個體可能開放TCP 22連接埠用於SSH,Windows執行個體可能開放TCP 3389連接埠用於遠端桌面。

    即使使用同一鏡像類型,提供不同服務且無需內網互訪時,也建議劃入不同安全性群組,便於後續解耦和變更。

    規劃應用時,可以結合網段和安全性群組劃分服務邊界。

  • 生產環境和測試環境使用不同安全性群組

    生產、測試、開發環境建議使用不同安全性群組,避免測試規則影響線上業務。

    多套測試環境也可以分配不同安全性群組,減少環境之間的互相干擾。

  • 不需要公網訪問的資源不分配公網IP

    串連ECS執行個體時,優先使用Workbench、會話管理工具或跳板機,減少公網暴露。訪問無公網或私網環境中的服務時,可使用連接埠轉寄功能,請參見通過會話管理CLI的連接埠轉寄訪問無公網執行個體

    分布式應用中,不對公網提供服務的ECS執行個體建議不分配公網IP。多台伺服器提供公網服務時,建議通過分發流量,避免單點故障。

    ECS執行個體僅需出方向訪問公網時,建議使用NAT Gateway配置SNAT規則,避免分配公網IPEIP後暴露服務。具體配置,請參見建立和管理SNAT條目

  • 以白名單的方式使用安全性群組

    安全性群組建議按白名單方式使用:預設拒絕訪問,僅添加允許規則放通必要連接埠和授權對象。排查線上問題時,不建議臨時分配公網IP或掛載EIP,以免擴大暴露面。

2、配置安全性群組規則

配置安全性群組規則時,僅開放業務必需的連接埠,並盡量限制源IP位址範圍。

VPC網路中,一條安全性群組規則可同時控制公網和內網訪問。
  • 普通安全性群組和企業級安全性群組預設策略有差異

    普通安全性群組和企業級安全性群組預設拒絕所有入方向訪問。普通安全性群組預設允許所有出方向訪問;企業級安全性群組預設拒絕所有出方向訪問。

  • 不同安全性群組及不同型別安全組的內網互連性有差異

    即使是同一個賬戶下的ECS執行個體,如果分屬不同安全性群組,內網網路也是隔離的。普通安全性群組預設組內內網互連;企業級安全性群組預設組內內網隔離。

  • 遵循最小授權原則添加安全性群組規則

    例如,開放Linux執行個體22連接埠用於遠程登入時,僅允許特定IP訪問。

    警告

    授權對象為0.0.0.0/0或::/0時,表示允許所有IP訪問執行個體,風險較高。僅在必須對公網開放的情境使用,並只開放必要連接埠。

    請按最小範圍開放原則配置規則,避免全開。關於安全性群組支援的授權物件類型,請參見安全性群組規則

  • 遵循最小許可權原則設定組內隔離

    在不需要普通安全性群組內ECS執行個體互相內網互連時,將普通安全性群組的組內連通原則設定為組內隔離。

  • 盡量保持單個安全性群組內規則用途統一

    按照用途將規則維護在多個安全性群組中,並將執行個體關聯到這些安全性群組。單個安全性群組的規則數量過多,會增加管理複雜度。

  • 謹慎選擇安全性群組規則的授權對象

    安全性群組規則的授權對象可以是IP地址、安全性群組或者CIDR網段。

    不同安全性群組之間需要內網互連時,優先使用安全性群組ID授權,避免逐個維護IPCIDR網段。例如,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

服務的開放連接埠:

  • HTTP(80)

  • HTTPS(443)

  • 其他自訂連接埠:手動輸入連接埠範圍。

源:0.0.0.0/0

說明

如果添加安全性群組規則後仍無法訪問網站,請檢查服務的開放連接埠是否正常工作。具體操作,請參見無法訪問ECS執行個體中的服務的排查方法

案例2:特定使用者需要遠端存取ECS執行個體

需要遠端連線ECS執行個體時,僅對管理員或指定伺服器IP開放遠程登入連接埠,例如TCP 22(SSH)或自訂SSH連接埠,降低被攻擊風險。

安全性群組規則樣本如下表所示:

規則方向

授權策略

優先順序

協議類型

連接埠範圍

授權對象

入方向

允許

1

自訂TCP

  • Linux執行個體預設開放22連接埠:選擇SSH(22)

  • Windows執行個體預設開放3389連接埠:選擇RDP(3389)

  • 如果手動開放了其他連接埠,請手動輸入連接埠範圍。

源:192.168.XX.XX

說明

根據串連方式填寫特定使用者或伺服器的公網IP或私網IP。

可通過IP地址查詢等網站擷取本地公網IP地址。

使用阿里雲Workbench遠端連線執行個體時,僅需允許特定授權對象。安全性群組入方向規則樣本如下表所示。

授權策略

優先順序

協議類型

連接埠範圍

授權對象

允許

1

自訂TCP

  • Linux執行個體預設開放22連接埠:選擇SSH(22)

  • Windows執行個體預設開放3389連接埠:選擇RDP(3389)

  • 如果手動開放了其他連接埠,請手動輸入連接埠範圍。

  • 如果通過執行個體的公網IP(包括固定公網IPEIP)串連:添加161.117.0.0/16

  • 如果通過執行個體的專用網路私網IP串連:添加100.104.0.0/16。

案例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

  • IPv4網路環境:選擇全部ICMP(IPv4)

  • IPv6網路環境:選擇全部ICMP(IPv6)

目的:-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.XX80連接埠和121.199.XX.XX443連接埠,其他出方向訪問均被拒絕。