安全組規則是您自定義的訪問控制規則,用于控制安全組內ECS實例的出入站流量,可以實現對云資源的訪問控制和網絡安全防護。
使用安全組規則時,您應了解以下信息:
在VPC網絡下,安全組規則分為入方向和出方向,規則同時控制公網和內網流量。在經典網絡下,安全組規則分為公網入方向、公網出方向、(內網)入方向、(內網)出方向,公網入方向和公網出方向規則控制公網流量,入方向和出方向規則控制內網流量。
安全組是有狀態的應用。一個有狀態的會話連接中,會話的最長保持時長是910秒。允許訪問并建立會話后,安全組會默認放行同一會話中的通信。例如,在會話期內,如果連接的數據包在入方向是允許的,則在出方向也是允許的。
修改安全組規則,或通過修改網卡關聯的安全組,從而改變作用于網卡的安全組規則時,如果修改前和修改后的安全組規則行為未改變,不會影響已經建立的會話。若您依賴普通安全組的組內互通進行流量放行,在修改網卡關聯的安全組時,如果不希望影響已經建立的會話,您需要先將ECS實例或網卡加入新的安全組,延遲10s左右,再離開舊的安全組。
TCP 25端口是默認的郵箱服務端口。基于安全考慮,ECS實例的TCP 25端口默認受限,建議您使用465端口發送郵件。具體操作,請參見使用SSL加密465端口發送郵件。
在不添加任何安全組規則時,安全組對流量有默認訪問控制規則,這些默認訪問控制規則不可見。默認訪問控制規則,與您自定義的規則共同作用,控制ECS實例的流量。普通安全組和企業級安全組的默認訪問控制規則不同:普通安全組入方向默認僅放行同安全組內其他實例到來的內網流量,出方向放行所有流量;企業級安全組默認出入方向流量均不放行。更多信息,請參見普通安全組與企業級安全組。
普通安全組的組內連通策略,會影響該普通安全組對流量的默認訪問控制規則。組內連通策略默認是組內互通,即入方向放行同安全組內其他實例到來的內網流量,出方向放行通往同安全組內其他實例的內網流量。在不需要普通安全組內實例內網互相訪問的情況下,建議您遵循最小授權原則,將普通安全組的組內連通策略設置為組內隔離。更多信息,請參見修改普通安全組的組內連通策略。
在決定ECS實例的流量能否通過時,會將ECS實例多個安全組的規則匯總在一起,按照固定的策略排序,并與安全組對流量的默認訪問控制規則一起,作用于ECS實例,決定允許或拒絕流量通過。更多信息,請參見安全組規則排序策略。
安全組規則的數量有上限,默認200條,可以調整安全組規則數與ECS實例可關聯的安全組數量的檔位,請參見安全組使用限制。您應盡量保持單個安全組內規則的簡潔,以降低管理復雜度。使用安全組規則的健康檢查,可以檢測單個安全組中的冗余規則,請參見查看安全組是否存在冗余規則。
安全組規則的構成
單條自定義的安全組規則,由以下信息構成:
協議類型:匹配流量的協議類型。支持TCP、UDP、ICMP(IPv4)、ICMP(IPv6)和GRE。
端口范圍:匹配流量的目的端口。對于TCP和UDP協議,可以指定一個斜線(/)分隔的端口范圍,比如8000/9000,或22/22。對其他協議,該字段取值-1/-1。更多信息,請參見常用端口。
授權對象:入方向規則中匹配流量的源地址,出方向規則中匹配流量的目的地址。支持CIDR地址塊(或IP地址)、安全組、前綴列表三種類型。具體如下:
IPv4地址:例如192.168.0.100。
IPv4 CIDR地址塊:例如192.168.0.0/24。
IPv6地址:例如2408:4321:180:1701:94c7:bc38:3bfa:9。接口將會對IPv6地址進行標準化處理,比如,2408:180:0000::1將會被處理為2408:180::1。
IPv6 CIDR地址塊:例如2408:4321:180:1701::/64。接口將會對IPv6 CIDR地址塊進行標準化處理,比如,2408:4321:180:0000::/64將會被處理為2408:4321:180::/64。
安全組ID:支持授權當前賬號下或其他賬號下的目標安全組,使用目標安全組中ECS實例的內網IP來進行流量匹配,實現內網訪問的控制。例如,安全組A中有ECS實例b,當您授權安全組A訪問時,您實際授權的是安全組A中ECS實例b的內網IP的訪問權限。
前綴列表ID:前綴列表是一些網絡前綴(即CIDR地址塊)的集合。授權對象為前綴列表時,該條規則占用的安全組規則配額數量,為前綴列表最大條目數,與前綴列表中已有條目數量無關。更多信息,請參見前綴列表概述。
授權策略:允許或拒絕。在基于流量的協議、端口和授權對象匹配到某條安全組規則后,會對流量執行授權策略指定的動作,來允許或拒絕流量放行。
優先級:取值范圍為1~100,數值越小,代表優先級越高。安全組規則的排序,首先考慮優先級,其次考慮授權策略,更多信息,請參見安全組規則排序策略。
規則方向:分為入方向和出方向,入方向規則控制入站流量,出方向規則控制出站流量。
作用的網卡類型:僅在經典網絡下進行區分,可以指定規則作用于經典網絡ECS實例的公網或內網網卡,作用于公網網卡的安全組規則控制公網訪問,作用于內網網卡的安全組規則控制內網訪問。在專有網絡VPC下的安全組規則,同時控制公網和內網訪問。
規則ID:在您添加安全組規則時,系統會為每條安全組規則生成唯一的ID。若您需要修改或刪除已有安全組規則,您可以通過安全組規則ID,來指定要進行操作的安全組規則。
安全組規則基于協議類型、端口范圍、授權對象來匹配流量,并基于授權策略來允許或拒絕放通流量。對于一般的入方向規則,授權對象匹配流量的來源地址,端口范圍匹配流量的目的端口。對于一般的出方向規則,授權對象匹配流量的目的地址,端口范圍匹配流量的目的端口。當然,如果您有更精確的訪問控制需求,可以使用五元組規則。更多信息,請參見安全組五元組規則。
安全組規則排序策略
ECS實例可以關聯一個或多個安全組,在決定ECS實例的流量(以入方向流量為例)能否通過時,處理如下:
將多個安全組的入方向規則匯總,并按照以下優先級進行排序。
首先,考慮規則的優先級,優先級數值越小的規則優先級越高,高優先級的規則總是排在低優先級的規則之前。
其次,考慮授權策略,遵循拒絕(Drop)規則優先原則,授權策略為拒絕(Drop)的規則總是排在授權策略為允許(Accept)的規則之前。
流量按照協議、端口、授權對象,從前到后依次匹配每條規則,如果成功匹配某條規則,將會對流量執行規則授權策略指定的動作,允許或拒絕流量通行。
除了自定義的安全組規則,安全組還有一些不可見的默認訪問控制規則,會影響流量的允許或拒絕,請參見普通安全組與企業級安全組。
安全組特殊規則
為確保ECS實例穩定運行,以及用戶對部分云上功能的正常使用,安全組會默認放行某些特殊情況下的特定網絡流量,并且您無法通過配置安全組規則來阻止這類默認的允許行為。包括以下特殊場景:
特定條件下的網絡連通性檢測:
當底層組件發生變更時,阿里云可能會對ECS實例進行按需Ping探測以驗證網絡連通性。這類探測是非常規性的,為了確保探測的準確性,安全組會識別這種探測流量并默認放行。
ICMP(PMTUD差錯報文):
如果用戶的ECS實例發送的數據包超出了路徑MTU(最大傳輸單元)且設置了DF(禁止分片)標志,ECS實例將會收到一個攜帶正確路徑MTU的ICMP差錯報文。該報文會指示ECS減小數據包大小,安全組會識別這種特殊的網絡流量并默認放行。更多信息,請參見巨型幀(Jumbo Frames)。
SLB流量:
網絡流量通過服務器負載均衡(SLB),如ALB、NLB或CLB轉發到后端ECS時,安全組會識別這種流量并默認放行。在這種情況下,將由SLB上的安全組或訪問控制列表(ACL)來控制ECS實例的出入站流量。
MetaServer訪問:
MetaServer提供了ECS實例必需的元數據服務,是確保實例正常運行的基礎服務。安全組默認允許出站流量訪問MetaServer(IP地址為100.100.100.200),您無需配置額外規則。
安全組應用案例
針對網站提供Web服務、遠程連接實例等常見場景,為您提供了一些安全組規則配置示例。更多信息,請參見安全組應用案例。
安全組規則管理
有關如何管理安全組規則的操作指引,請參見安全組規則管理。
安全組五元組規則
默認在控制臺配置安全組規則的情況下,存在如下方面的限制:
安全組入規則只支持:源IP地址、目的端口、協議類型。
安全組出規則只支持:目的IP地址、目的端口、協議類型。
當您需要更精確地控制ECS實例的出流量和入流量時,可以使用安全組五元組規則。五元組規則包含:源IP地址、源端口、目的IP地址、目的端口以及協議類型,并且與原有的安全組規則完全兼容。
五元組出規則示例如下:
源IP地址:172.16.1.0/32
源端口:22
目的IP地址:10.0.0.1/32
目的端口:不限制
協議類型:TCP
示例中的出規則表示172.16.1.0/32
通過22端口對10.0.0.1/32
發起TCP訪問。
您可以調用以下API接口配置五元組規則。
如果您需要在控制臺配置五元組規則,請先提交工單申請。