安全組是一種虛擬防火墻,具備狀態檢測和數據包過濾能力,用于在云端劃分安全域。通過添加安全組規則,您可以控制安全組內ECI Pod(即ECI實例)的入流量和出流量。
安全組介紹
安全組是一個邏輯上的分組,由同一VPC內具有相同安全保護需求并相互信任的實例組成。通過添加安全組規則,安全組可以允許或拒絕安全組內ECI實例對公網或者私網的訪問,以及管理是否放行來自公網或私網的訪問請求。更多信息,請參見安全組概述。
一個安全組可以管理同一個VPC內的多個ECI實例。
一個ECI實例必須屬于一個安全組。
安全組分為普通安全組和企業安全組。如果您對整體規模和運維效率有較高需求,建議您使用企業安全組。相比普通安全組,企業安全組大幅提升了組內支持容納的實例數量,簡化了規則配置方式。更多關于兩種安全組的差異信息,請參見普通安全組與企業級安全組。
指定安全組
自建Kubernetes集群通過對接VNode來使用ECI時,ECI Pod默認采用所屬VNode配置的安全組。如果有特殊需求,您也可以為某些ECI Pod指定其他安全組。
集群配置
新建VNode配置
創建VNode時,您可以指定安全組。具體操作,請參見創建虛擬節點。
已有Vnode配置
對于已有VNode,您可以調用UpdateVirtualNode接口更新VNode信息,在
SecurityGroupId
字段中可以更新安全組ID。更多信息,請參見UpdateVirtualNode。
ECI Pod配置
對于有特殊需求的某些ECI Pod,可以添加k8s.aliyun.com/eci-security-group
的Annotation來指定安全組。配置要求如下:
支持指定一個或多個安全組,最多可以指定5個安全組。
指定的安全組必須屬于同一VPC。
指定的安全組的類型必須相同。
Annotation請添加在Pod的metadata下,例如:創建Deployment時,Annotation需添加在spec>template>metadata下。
僅支持在創建ECI Pod時添加ECI相關Annotation來生效ECI功能,更新ECI Pod時添加或者修改ECI相關Annotation均不會生效。
配置示例如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-security-group: "sg-bp1dktddjsg5nktv****,sg-2ze0b9o8pjjzts4h****" #指定安全組
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
添加安全組規則
對于安全組內的ECI實例,您可以添加安全組規則來控制其出入流量。例如:
當ECI實例需要與所在安全組之外的網絡進行通信時,您可以添加允許訪問的安全組規則,實現網絡互通。
在運行ECI實例的過程中,發現部分請求來源有惡意攻擊行為時,您可以添加拒絕訪問的安全組規則,實現網絡隔離。
關于如何添加安全組規則,請參見添加安全組規則。