安全性群組是一種虛擬防火牆,能夠控制ECS執行個體的出入站流量。您可以將具有相同安全需求並相互信任的ECS執行個體放入相同的安全性群組,以劃分安全域,保障雲上資源的安全。本文介紹安全性群組的功能、分類、最佳實務和操作指引等。
功能介紹
建立ECS執行個體時,您需要指定一個或多個安全性群組。ECS 執行個體關聯的多個安全性群組的規則將按固定的策略排序,共同決定是否允許存取執行個體出入站的流量。
您可以為安全性群組新增規則,修改或刪除已有規則,這些規則變動會自動作用於安全性群組中的所有ECS執行個體。安全性群組規則由授權對象、目的連接埠、協議類型、授權策略(允許或拒絕)和優先順序組成。安全性群組的入方向規則控制ECS執行個體入站的流量,出方向規則控制ECS執行個體出站的流量,詳情請參見安全性群組規則。
ECS執行個體關聯的安全性群組,其規則作用於主網卡。專用網路ECS執行個體的其他彈性網卡,可以指定與主網卡不同的安全性群組。
配置安全性群組時,您還需要瞭解如下資訊:
在Virtual Private Cloud下,安全性群組僅能在所屬的VPC下使用,在建立Virtual Private Cloud的ECS執行個體時,您指定的虛擬交換器和安全性群組,必須屬於同一個VPC。
ECS執行個體或者彈性網卡可以關聯一個或者多個安全性群組,但必須至少關聯一個安全性群組。ECS執行個體和彈性網卡關聯安全性群組的數量限制,請參見安全性群組使用限制。
在建立ECS執行個體時,如果您未指定安全性群組,系統會將該ECS執行個體的主網卡關聯到預設安全性群組,詳情請參見預設安全性群組。
例如下圖所示,Virtual Private Cloud包含ECS 1
和 ECS 2
,兩個ECS的主網卡都關聯安全性群組1
。假設安全性群組1
是普通安全性群組,組內連通策略預設為組內互連,那麼ECS 1
和 ECS 2
的內網是互連的,這種互連策略不受您配置的自訂規則的影響。ECS 1
和 ECS 2
的其他出入方向流量受到安全性群組1
的自訂規則控制。根據安全性群組1
的入方向規則,使用任意IP都可以ping通安全性群組1
內ECS 1
和 ECS 2
,安全性群組1
未配置出方向規則,預設允許所有出方向的流量。
安全性群組分類
普通安全性群組和企業級安全性群組
根據特性不同,安全性群組分為普通安全性群組和企業級安全性群組,兩者均免費,適用於不同的使用情境。
普通安全性群組:支援組內互連功能,支援添加授權安全性群組訪問的規則,但可容納的私網IP數量小於企業級安全性群組。
企業級安全性群組:可以容納更多的私網IP地址數量,但不支援組內互連功能,也不支援添加授權安全性群組訪問的規則。
在ECS執行個體關聯到多個安全性群組時,同一塊彈性網卡只能使用一種類型的安全性群組。建議您根據自己的使用需求來選擇安全性群組類型,詳情請參見普通安全性群組與企業級安全性群組。
自訂安全性群組和託管安全性群組
根據操作許可權歸屬不同,安全性群組分為自訂安全性群組和託管安全性群組。自訂安全性群組和託管安全性群組都可以是普通安全性群組或者企業級安全性群組。
自訂安全性群組:由阿里雲帳號直接在ECS控制台上建立的安全性群組為自訂安全性群組,您擁有自訂安全性群組的操作許可權。預設安全性群組也屬於自訂安全性群組,詳情請參見建立安全性群組。
託管安全性群組:雲產品可以為您建立託管安全性群組,操作許可權屬於雲產品,您僅能查看不能操作,詳情請參見託管安全性群組。
在您使用DescribeSecurityGroups介面查詢到安全性群組的ServiceManaged
屬性為True
,或使用控制台看到安全性群組有類似雲產品託管的安全性群組不支援修改操作的提示時,表示該安全性群組為託管安全性群組。
安全性群組使用的最佳實務
關於安全性群組的使用,為您提供以下最佳實務建議:
規劃
您可以為安全性群組設定名稱、描述,也可以設定安全性群組的標籤、資源群組,便於進行分類營運。建議您合理設定這些資訊,方便快速識別安全性群組的用途,在管理較多安全性群組時更加清晰。
以白名單的方式使用安全性群組
即預設拒絕所有訪問,添加允許規則來放通指定的連接埠範圍和授權對象。
添加安全性群組規則時遵循最小授權原則
例如,開放Linux執行個體的22連接埠用於遠程登入時,建議僅允許特定的IP訪問,而非所有IP(
0.0.0.0/0
)。遵循最小許可權原則
在不需要普通安全性群組內ECS執行個體互相內網互連時,將普通安全性群組的組內連通原則設定為組內隔離。
盡量保持單個安全性群組內規則的簡潔
按照用途將規則維護在多個安全性群組中,並將執行個體關聯到這些安全性群組。單個安全性群組的規則數量過多,會增加管理複雜度。安全性群組規則的健全狀態檢查,提供了檢測單個安全性群組冗餘規則的能力,詳情請參見檢查安全性群組是否存在冗餘規則。
不同類型應用的執行個體加入不同的安全性群組,分別維護安全性群組規則
例如,將允許公網訪問的執行個體關聯到同一個安全性群組,僅放通對外提供服務的連接埠,例如80、443等,預設拒絕其他所有訪問。避免在允許公網訪問的執行個體上提供其他服務,例如MySQL、Redis等,建議將內部服務部署在不允許公網訪問的執行個體上,並關聯其他的安全性群組。
避免直接修改線上環境使用的安全性群組
可以先複製一個安全性群組在測試環境調試,確保修改後執行個體流量正常,再對線上環境的安全性群組規則進行修改。
安全性群組操作指引
如果您第一次使用安全性群組,建議您按照如下步驟操作:
建立ECS執行個體時,如果未使用預設安全性群組或者預設安全性群組不滿足業務需要,您需要單獨建立安全性群組,詳情請參見建立安全性群組。
不同型別安全組存在一些不可見的預設存取控制規則。如果不滿足業務需要,您需要手動給安全性群組添加出入方向規則,詳情請參見添加安全性群組規則。
如果您需要將ECS執行個體(主網卡)或者輔助彈性網卡關聯到不同安全性群組中,可手動進行關聯,詳情請參見為執行個體(主網卡)關聯安全性群組、安全性群組與彈性網卡關聯管理。
安全性群組的常見操作如下:
使用控制台
使用API
建立安全性群組:CreateSecurityGroup
查詢安全性群組:DescribeSecurityGroups
添加安全性群組規則:
使用AuthorizeSecurityGroup添加入方向安全性群組規則
使用AuthorizeSecurityGroupEgress添加出方向安全性群組規則
查詢安全性群組規則:DescribeSecurityGroupAttribute
修改安全性群組規則:
使用ModifySecurityGroupRule修改入方向安全性群組規則
使用ModifySecurityGroupEgressRule修改出方向安全性群組規則
刪除安全性群組規則:
使用RevokeSecurityGroup刪除入方向規則
使用RevokeSecurityGroupEgress刪除出方向規則
修改普通安全性群組的組內連通策略:ModifySecurityGroupPolicy
刪除安全性群組:DeleteSecurityGroup
安全性群組與ECS執行個體、彈性網卡關聯的管理:
使用全量替換方式
使用ModifyInstanceAttribute替換專用網路ECS執行個體的安全性群組
使用ModifyNetworkInterfaceAttribute替換彈性網卡的安全性群組
使用增量添加/移除方式
使用JoinSecurityGroup將一台ECS執行個體或彈性網卡關聯到指定的安全性群組
使用LeaveSecurityGroup將一台ECS執行個體或彈性網卡與指定的安全性群組解除關聯
修改安全性群組名稱或描述:ModifySecurityGroupAttribute
相關文檔
安全性群組配額相關資訊,詳情請參見安全性群組使用限制。
想要給ECS執行個體綁定多張彈性網卡,詳情請參見彈性網卡概述。
合理使用安全性群組可以有效提高執行個體的安全性,但提高執行個體安全性是一項系統的工作,您還可以結合更多其他做法,詳情請參見Elastic Compute Service安全性。