本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
為滿足您在網站提供Web服務、管理遠程連接訪問等常見場景下的網絡流量管理需求,本文介紹如何利用安全組的特性來配置相應的安全組規則,保障云資源網絡流量的安全性和可靠性。
注意事項
在查閱安全組應用案例之前,您需要注意以下幾點信息:
安全組默認拒絕所有入方向訪問。
普通安全組默認允許所有出方向訪問。
不同安全組之間的實例默認內網隔離。
在網絡類型為專有網絡的安全組中,一條安全組規則可以同時適用于公網和內網訪問控制。即通過配置一條規則,您可以限制或允許來自公網和內網的流量訪問。
在網絡類型為經典網絡的安全組中,由于經典網絡中公網和內網使用相同的IP地址空間,為了控制公網和內網訪問,需要分別創建不同的安全組規則。
典型的應用通常使用默認的端口來提供服務。這些應用會通過服務器的特定端口與外部進行通信。更多信息,請參見常用端口。
授權對象為0.0.0.0/0,表示允許所有IP訪問實例。請您根據實際業務需求,按照最小范圍開放原則配置安全組規則,盡量避免全開(慎用::/0或者0.0.0.0/0)以免引發安全問題。關于安全組支持的授權對象類型,請參見安全組規則。
網站提供Web服務
對于開放公網訪問的網站服務器,可以設置安全組規則,只允許來自任何源的TCP端口80(HTTP)和443(HTTPS)的入站流量,確保網站可以被外部訪問,但限制了對服務器上其他服務的直接訪問。
安全組規則的配置示例如下表所示:
規則方向 | 授權策略 | 優先級 | 協議類型 | 端口范圍 | 授權對象 |
入方向 | 允許 | 1 | 自定義TCP | 服務的開放端口:
| 源:0.0.0.0/0 |
如果添加安全組規則后仍無法訪問網站,請檢查服務的開放端口是否正常工作。具體操作,請參見無法訪問ECS實例中的服務的排查方法。
管理遠程連接訪問
為了遠程連接ECS實例,通常需要開放TCP端口22(SSH)或自定義的SSH端口。您可以通過設置安全組規則,將允許訪問實際遠程端口的授權對象限定為特定用戶(如管理員)或特定服務器的IP,以減少被惡意攻擊的風險。
建議您謹慎管理遠程連接端口的授權對象,遵循最小范圍開放原則,盡量避免全開(慎用::/0或者0.0.0.0/0),以免引發安全問題。
安全組規則的配置示例如下表所示:
規則方向 | 授權策略 | 優先級 | 協議類型 | 端口范圍 | 授權對象 |
入方向 | 允許 | 1 | 自定義TCP |
| 源:192.168.XX.XX 說明 特定用戶或特定服務器的IP地址,根據是公網連接還是私網連接輸入公網IP或者私網IP。 |
使用阿里云Workbench遠程連接實例時,只需允許特定的授權對象即可,安全組入方向規則示例如下表所示。
授權策略 | 優先級 | 協議類型 | 端口范圍 | 授權對象 |
允許 | 1 | 自定義TCP |
|
|
關于使用Workbench連接經典網絡實例的安全組規則說明,請參見使用Workbench連接經典網絡實例時相關安全組設置。
實現不同安全組的實例內網互通
在同一個專有網絡中,如果需要在實例之間進行數據共享等操作,例如安全組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。
數據庫服務訪問控制
數據庫服務通常需要更嚴格的安全策略。您可以通過配置安全組,僅允許來自特定IP地址或安全組(例如應用服務器所在的安全組)的對應端口的入站連接,確保數據庫訪問的私密性和安全性。
建議您謹慎管理數據庫服務的授權對象,遵循最小范圍開放原則,盡量避免全開(慎用::/0或者0.0.0.0/0),以免引發安全問題。
以下是一些常見數據庫在默認端口下的安全組規則配置:
數據庫類型 | 規則方向 | 授權策略 | 優先級 | 協議類型 | 端口范圍 | 授權對象 |
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。
特定協議訪問
根據業務需求,可能需要限制特定的網絡協議,例如只允許TCP或UDP的某些端口通信。ICMP協議主要用于在IP主機、路由器之間傳遞控制消息。在進行一些測試操作之前,需要允許基于ICMP協議的訪問。例如,在客戶端執行ping
命令來測試網絡連通性時,就需要允許ICMP協議的訪問。安全組規則的配置示例如下表所示:
規則方向 | 授權策略 | 優先級 | 協議類型 | 端口范圍 | 授權對象 |
入方向 | 允許 | 1 |
| 目的:-1/-1 | 客戶端IP地址 說明 根據網絡環境不同,輸入IPv4地址或者IPv6地址。 |
如果添加安全組規則后,仍然無法從客戶端ping
通實例,請查閱Linux系統的ECS中沒有禁ping卻ping不通的解決方法文檔進行排查。
限制實例訪問外部網站
如果您需要限制實例只能訪問指定網站,可以將安全組作為白名單使用,設置默認拒絕所有出方向訪問,然后僅允許訪問指定網站的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服務,除此之外其他出方向的訪問均不允許。