本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

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

更新時間:2025-02-14 19:00
重要

本文中含有需要您注意的重要提示訊息,忽略該訊息可能對您的業務造成影響,請務必仔細閱讀。

為滿足您在網站提供Web服務、管理遠端連線訪問等常見情境下的網路流量管理需求,本文介紹如何利用安全性群組的特性來配置相應的安全性群組規則,保障雲資源網路流量的安全性和可靠性。

安全性群組應用指導

1、明確業務需求,規劃不同的安全性群組

您需要明確您的業務特性以及對安全性的具體要求。例如哪些服務對外公開,哪些服務僅限內部使用。

  • 公網服務和內網服務的伺服器盡量屬於不同的安全性群組

    開放多餘的業務連接埠可能會導致自己的應用被公網訪問造成業務不安全,所以雲端服務器所屬的安全性群組規則要採用最嚴格的規則,建議優先拒絕,預設情況下應當關閉所有的連接埠和協議,僅暴露對外提供需要服務的連接埠。

    對外提供伺服器的安全性群組職責應該比較清晰和簡單,避免在同一伺服器上對外提供其他的服務。例如MySQL、Redis等,建議將這些服務安裝在沒有公網存取權限的雲端服務器上,然後通過配置安全性群組規則的授權對象為另一個安全性群組實現存取權限。

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

    在生產環境中,不同的作業系統大多數情況下不會屬於同一個應用分組來提供負載平衡服務。提供不同的服務意味著需要暴露的連接埠和拒絕的連接埠是不同的,建議不同的作業系統盡量歸屬於不同的安全性群組。

    例如,對於Linux作業系統,可能需要暴露TCP(22)連接埠來實現SSH,對Windows可能需要開通TCP(3389)遠端桌面連線。

    除了不同的作業系統歸屬不同的安全性群組,即便同一個鏡像類型,提供不同的服務,如果之間不需要通過內網進行訪問,建議也劃歸不同的安全性群組。這樣方便解耦,並對未來的安全性群組規則進行變更,做到職責單一。

    在規劃和新增應用時,除了考慮劃分不同的虛擬交換器配置子網外,同時也應該合理地規劃安全性群組。使用“網段+安全性群組”約束自己作為服務提供者和消費者的邊界。

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

    為了更好地進行系統的隔離,在實際開發過程中,您可能會構建多套的測試環境和一套線上環境。為了更合理地進行網路隔離,您需要對不同的環境配置使用不同的安全性原則,避免因為測試環境的變更重新整理到線上,從而影響線上的穩定性。

    通過建立不同的安全性群組,限制應用的訪問域,避免生產環境和測試環境連通。同時也可以對不同的測試環境分配不同的安全性群組,避免多套測試環境之間互相干擾,提升開發效率。

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

    如果需要串連ECS執行個體,可以使用不需要公網IP的方式,如Workbench、會話管理工具,或者搭建跳板機,儘可能減少公網暴露。如果想要直接存取無公網或者私網環境中部署的服務,可以採用連接埠轉寄功能,請參見通過會話管理CLI的連接埠轉寄訪問無公網執行個體

    在分布式應用中,大多數應用都有不同的分層和分組,對於不提供公網訪問的雲端服務器盡量不提供公網IP,如果有多台伺服器提供公網訪問,建議您配置公網流量分發的負載平衡服務來提供公網服務,提升系統的可用性,避免單點故障。詳情請參見。

    在專用網路架構下,當您的雲端服務器需要訪問公網的時候,優先建議您使用NAT Gateway,用於為VPC內無公網IP的ECS執行個體提供訪問互連網的代理服務,您只需要配置相應的SNAT規則即可為具體的CIDR網段或者子網提供公網訪問能力,避免因為只需要訪問公網的能力而在分配了公網IP(EIP)之後也向公網暴露了服務。具體配置,請參見建立和管理SNAT條目

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

    安全性群組應該作為白名單方式使用,安全性群組預設拒絕所有訪問,您可以添加允許規則來放通指定的連接埠範圍和授權對象。建議儘可能少地開放和暴露連接埠,以及分配公網IP。若想訪問線上機器進行任務日誌或錯誤排查時直接分配公網IP,掛載EIP雖然簡便,但是會將整個機器暴露在公網之上。

2、配置安全性群組規則

安全性群組是一種虛擬防火牆,用於控制ECS執行個體入站和出站流量。應該只允許必要的通訊連接埠開放,並儘可能限制源IP位址範圍。

  • 普通安全性群組和企業級安全性群組預設策略有差異

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

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

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

  • 不同網路架構的安全性群組規則的管控對象有差異

    • 在VPC網路架構下,一條安全性群組規則可以同時適用於公網和內網存取控制。即通過配置一條規則,您可以限制或允許來自公網和內網的流量訪問。

    • 在傳統網路架構下,由於傳統網路中公網和內網使用相同的IP地址空間,為了控制公網和內網訪問,需要分別建立不同的安全性群組規則。

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

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

    警告

    授權對象為0.0.0.0/0,表示允許所有IP訪問執行個體,意味著所有的連接埠都對外暴露了存取權限。這是非常不安全的。正確的做法是,先拒絕所有的連接埠對外開放。例如,如果您需要暴露Web服務,預設情況下可以只開放80、8080和443等常用TCP連接埠,其它的連接埠都應關閉。

    請您根據實際業務需求,按照最小範圍開放原則配置安全性群組規則,盡量避免全開(慎用::/0或者0.0.0.0/0)以免引發安全問題。關於安全性群組支援的授權物件類型,請參見安全性群組規則

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

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

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

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

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

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

    如果您想實現在不同安全性群組的資源之間的網路互連,您應使用安全性群組方式授權。例如,如果是分布式應用,您會區分不同的安全性群組,但是不同的安全性群組可能網路不通,此時,您不應該直接授權IP或者CIDR網段,而是直接授權另外一個安全性群組ID的所有資源都可以直接存取。例如,您的應用對Web、Database分別建立了不同的安全性群組:sg-websg-database。在sg-database中,您可以添加如下規則,授權所有的sg-web安全性群組的資源訪問MySQL(3306)連接埠。

    對於內網訪問,您應使用源安全性群組授權,而不是CIDR網段授權。

    對於傳統網路類型的ECS執行個體,阿里雲預設不開啟任何內網的入方向規則。為了安全考慮,不建議開啟任何基於CIDR網段的授權。

  • 典型的應用通常使用預設的連接埠提供服務

    這些應用會通過伺服器的特定連接埠與外部進行通訊,詳情請參見常用連接埠

3、持續最佳化調整

隨著業務的發展變化,原有的安全性群組和安全性群組規則也可能不再適用。因此,需要定期追溯現有的架構設計,並根據最新的安全態勢做出相應調整。建議您修改安全性群組時,複製一個安全性群組在測試環境調試,確保修改後執行個體流量正常,再對線上環境的安全性群組規則進行修改,避免誤修改線上環境使用的安全性群組引發業務中斷。

安全性群組應用案例

管控ECS執行個體的入站流量

即外部資源訪問ECS執行個體的流量,您可以通過設定安全性群組入方向規則,允許指定的使用者訪問部署在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執行個體上,為了能夠遠端連線ECS執行個體,需要配置的安全性群組規則,通常需要開放TCP連接埠22(SSH)或自訂的SSH連接埠,將允許訪問實際遠程連接埠的授權對象限定為特定使用者(如管理員)或特定伺服器的IP,以減少被惡意攻擊的風險。

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

規則方向

授權策略

優先順序

協議類型

連接埠範圍

授權對象

規則方向

授權策略

優先順序

協議類型

連接埠範圍

授權對象

入方向

允許

1

自訂TCP

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

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

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

源:192.168.XX.XX

說明

特定使用者或特定伺服器的IP地址,根據是公網串連還是私網串連輸入公網IP或者私網IP。

您可以訪問IP地址查詢等網站,擷取本網對應的公網IP地址。

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

授權策略

優先順序

協議類型

連接埠範圍

授權對象

授權策略

優先順序

協議類型

連接埠範圍

授權對象

允許

1

自訂TCP

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

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

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

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

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

說明

關於使用Workbench串連傳統網路執行個體的安全性群組規則說明,請參見使用Workbench串連傳統網路執行個體時相關安全性群組設定

案例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:只允許特定協議的業務訪問

根據業務需求,可能需要限制特定的網路通訊協定,例如只允許TCP或UDP的某些連接埠通訊。ICMP協議主要用於在IP主機、路由器之間傳遞控制訊息。在進行一些測試操作之前,需要允許基於ICMP協議的訪問。例如,在用戶端執行ping命令來測試網路連通性時,就需要允許ICMP協議的訪問。安全性群組規則的配置樣本如下表所示:

規則方向

授權策略

優先順序

協議類型

連接埠範圍

授權對象

規則方向

授權策略

優先順序

協議類型

連接埠範圍

授權對象

入方向

允許

1

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

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

目的:-1/-1

用戶端IP地址

說明

根據網路環境不同,輸入IPv4地址或者IPv6地址。

案例5:不同安全性群組的執行個體實現內網互連

在同一個專用網路中,如果需要在執行個體之間進行資料共用等操作,例如安全性群組A的執行個體需要通過FTP訪問安全性群組B的執行個體中的共用檔案,您可以通過授權安全性群組的方式實現內網互連。相比於授權單個IP地址或CIDR地址塊,授權安全性群組能夠更加便捷地實現多個執行個體之間的訪問。您可以輕鬆地允許一組執行個體訪問另一組執行個體,而無需逐個配置每個執行個體的存取權限。

說明

如果執行個體分別屬於不同的專用網路,則不能通過安全性群組實現內網互連。您可以使用雲企業網串連不同專用網路之間的執行個體,更多資訊,請參見雲企業網快速入門

  • 情況一:

    安全性群組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連接埠的HTTP服務和訪問121.199.XX.XX上443連接埠的HTTPS服務,除此之外其他出方向的訪問均不允許。

  • 本頁導讀 (1, M)
  • 安全性群組應用指導
  • 1、明確業務需求,規劃不同的安全性群組
  • 2、配置安全性群組規則
  • 3、持續最佳化調整
  • 安全性群組應用案例
  • 案例1:部署在ECS執行個體的網站業務提供Web服務
  • 案例2:特定使用者需要遠端存取ECS執行個體
  • 案例3:資料庫服務部署在ECS的安全性原則
  • 案例4:只允許特定協議的業務訪問
  • 案例5:不同安全性群組的執行個體實現內網互連
  • 案例6:限制ECS執行個體訪問外部網站
文檔反饋