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