全部產品
Search
文件中心

Container Service for Kubernetes:配置安全性群組

更新時間:Jul 10, 2024

安全性群組是一種虛擬防火牆,具備狀態檢測和資料包過濾能力,用於在雲端劃分安全域。通過添加安全性群組規則,您可以控制安全性群組內ECI執行個體的入流量和出流量。

安全性群組概述

安全性群組定義

安全性群組是一個邏輯上的分組,由同一地區內具有相同安全保護需求並相互信任的執行個體組成。通過添加安全性群組規則,安全性群組可以允許或拒絕安全性群組內ECI執行個體對公網或者私網的訪問,以及管理是否允許存取來自公網或私網的訪問請求。

說明

  • 一個安全性群組可以管理同一個地區內的多台ECI執行個體。

  • 一台ECI執行個體必須且僅支援屬於一個安全性群組。

安全性群組類型

安全性群組分為普通安全性群組和企業安全性群組,建立時預設添加的安全性群組規則如下:

  • 入方向:允許存取80、443、22、3389及ICMP協議,可修改。

  • 出方向:允許所有訪問請求。

兩種安全性群組主要的功能差異如下表所示。

功能

普通安全性群組

企業安全性群組

未添加任何規則時的存取原則

  • 入方向:拒絕所有訪問請求

  • 出方向:允許所有訪問請求

  • 入方向:拒絕所有訪問請求

  • 出方向:拒絕所有訪問請求

能容納的私網IP地址數量

2000

65536

同一個安全性群組內執行個體之間的網路連通策略

預設內網互連

預設內網隔離,需要您手動添加安全性群組規則

授權給其它安全性群組

支援組組授權

不支援組組授權

重要

如果您對整體規模和營運效率有較高需求,建議您使用企業安全性群組。相比普通安全性群組,企業安全性群組大幅提升了組內支援容納的執行個體數量,簡化了規則配置方式。

安全性群組規則

安全性群組通過配置規則來控制出入流量。一條安全性群組規則由規則方向、授權策略、協議類型、連接埠範圍、授權對象等屬性確定。關於安全性群組規則,請注意以下事項:

  • 每個安全性群組的入方向規則與出方向規則的總數不能超過200條。

  • 添加規則時遵守最小授權原則。例如:

    • 選擇開放具體的連接埠,如80/80,避免開放連接埠範圍,如1/80。

    • 謹慎授權全網段訪問源,即0.0.0.0/0。

更多資訊,請參見安全性群組概述

指定安全性群組

建立ECI執行個體時,必須要指定安全性群組,將ECI執行個體加入到安全性群組中。

重要

ECI執行個體不支援修改安全性群組。如果想要變更安全性群組,需要重新建立ECI執行個體。

Kubernetes方式

在Kubernetes情境中通過Virtual Node使用ECI時,叢集中所有ECI執行個體將預設加入到Virtual Node設定的安全性群組中。如果有特殊需求,您也可以為某個ECI執行個體指定其它安全性群組。

  • 叢集

    您可以通過kubectl edit命令修改eci-profile設定檔,在data中修改ECI執行個體預設使用的安全性群組ID。

    說明

    Virtual Node版本為v2.0.0.90-15deb126e-aliyun及以上時,支援修改eci-profile實現配置熱更新。如果您的Virtual Node版本低於該版本,建議您升級Virtual Node。

    kubectl edit configmap eci-profile -n kube-system

    修改data中的securityGroupId欄位,樣本如下:

    data:
      enableClusterIp: "true"
      enableHybridMode: "false"
      enablePrivateZone: "false"
      resourceGroupId: ""
      securityGroupId: sg-2ze0b9o8pjjzts4h**** #指定安全性群組ID
      selectors: ""
      vSwitchIds: vsw-2zeet2ksvw7f14ryz****,vsw-2ze94pjtfuj9vaymf****  
      vpcId: vpc-2zeghwzptn5zii0w7****
  • ECI執行個體

    對於單個ECI執行個體,您可以在Pod metadata中添加Annotation來指定安全性群組。配置樣本如下:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: demo
      labels:
        app: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
            annotations: 
    
                k8s.aliyun.com/eci-security-group: "sg-bp1dktddjsg5nktv****"      #設定安全性群組
    
            labels:
                app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:latest
    

OpenAPI方式

調用CreateContainerGroup介面建立ECI執行個體時,您可以通過SecurityGroupId參數來指定安全性群組。SecurityGroupId的參數說明如下表所示。更多資訊,請參見CreateContainerGroup

名稱

類型

樣本值

描述

SecurityGroupId

String

sg-uf66jeqopgqa9hdn****

指定安全性群組ID。

控制台方式

通過Elastic Container Instance售賣頁建立ECI執行個體時,您可以指定一個安全性群組。

安全性群組

添加安全性群組規則

對於安全性群組內的ECI執行個體,您可以添加安全性群組規則來控制其出入流量。例如:

  • 當您的ECI執行個體需要與所在安全性群組之外的網路進行通訊時,您可以添加允許訪問的安全性群組規則,實現網路互連。

  • 當您在運行ECI執行個體的過程中,發現部分請求來源有惡意攻擊行為時,您可以添加拒絕訪問的安全性群組規則,實現網路隔離。

關於如何添加安全性群組規則,請參見添加安全性群組規則