全部產品
Search
文件中心

Container Service for Kubernetes:在註冊叢集中配置巡檢功能檢查Workload安全隱患

更新時間:Aug 29, 2026

ACK提供巡檢功能,協助您掃描叢集中工作負載配置的安全隱患。執行巡檢任務後,系統會產生巡檢報告,您可以根據報告結果查看並處理風險項,即時瞭解叢集中工作負載的健康狀態。

前提條件

執行巡檢

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表。

  2. 在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇安全管理 > 配置巡檢。

  3. 可選:按照頁面提示安裝並升級巡檢組件。

    巡檢組件security-inspector本身不計費,但會佔用您的Pod資源。組件介紹及變更記錄,請參見security-inspector。

  4. 執行巡檢。

    重要
    • 請在業務低峰期執行巡檢操作。

    • 預設巡檢所有支援的檢查項,您可以在配置巡檢頁面右上方,單擊巡檢配置,然後配置巡檢時執行的檢查項。更多資訊,請參見檢查項。

    • 立即執行:在配置巡檢頁面右上方,單擊立即執行巡檢。

    • 定期執行:在配置巡檢頁面右上方,單擊巡檢配置,然後選中定期巡檢,並配置巡檢周期。

  5. 等待巡檢完成後,在巡檢詳情頁簽,單擊巡檢結果對應操作列中的詳情,查看檢查結果。

巡檢詳情

巡檢詳情頁面通過表格化的方式展示不同工作負載的詳細巡檢結果,主要包括以下功能:

  • 支援按照是否有風險、命名空間、工作負載類別等條件對結果進行過濾展示工作負載的巡檢通過項和風險項數量。

  • 展示巡檢結果的各個檢查項的詳細資料,包括Pod和Container維度檢查狀態(已通過、未通過)、檢查項詳細說明以及加固建議。如有未通過的檢查項無需處理,您可以將其加入白名單。

  • 查看工作負載的YAML檔案。

檢查項

配置巡檢功能會掃描並展示以下檢查項的掃描結果。

檢查項ID

檢查項

檢查的內容及安全風險

修複建議

hostNetworkSet

禁止容器共用主機的網路命名空間

通過檢查Workload的Pod spec中是否配置了hostNetwork: true,檢查是否配置了共用使用主機的網路namespace。如果配置了,存在Pod中容器攻擊主機網路、嗅探主機網路資料的風險。

修改Pod spec,刪除hostNetwork欄位。

樣本:

      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

hostIPCSet

禁止容器共用主機的IPC命名空間

通過檢查Workload的Pod spec中是否配置了hostIPC: true,檢查是否配置了共用使用主機的IPC namespace。如果配置了,存在Pod中容器攻擊主機上進程、嗅探主機上進程資料的風險。

修改Pod spec,刪除hostIPC欄位。

樣本:

      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

hostPIDSet

禁止容器共用主機的PID命名空間

通過檢查Workload的Pod spec中是否配置了hostPID: true,檢查是否配置了共用使用主機的PID namespace。如果配置了,存在Pod中容器攻擊主機上進程、採集主機上進程資料的風險。

修改Pod spec,刪除hostPID欄位。

樣本:

      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

hostPortSet

禁止容器內進程監聽節點主機連接埠

通過檢查Workload的Pod spec中是否配置了hostPort,檢查是否配置了把容器中監聽的連接埠映射到主機指定連接埠上。如果配置了,存在擠佔主機可用連接埠以及被非預期的請求方請求容器連接埠的風險。

修改Pod spec,刪除hostPort欄位。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

runAsRootAllowed

禁止以root使用者啟動容器

通過檢查Workload的Pod spec中是否未配置runAsNonRoot: true,檢查是否未配置使用非root使用者運行容器。如果未配置,存在被容器中的惡意進程入侵使用者應用、入侵主機甚至入侵整個叢集的風險。

修改Pod spec,增加runAsNonRoot: true。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          runAsNonRoot: true

runAsPrivileged

禁止以特權模式啟動容器

通過檢查Workload的Pod spec中是否配置了privileged: true,檢查是否配置了允許以特權模式運行容器。如果配置了,存在被容器中的惡意進程入侵使用者應用、入侵主機甚至入侵叢集的風險。

修改Pod spec,刪除privileged欄位。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext: {}

privilegeEscalationAllowed

禁止容器內子進程擁有提升許可權的能力

通過檢查Workload的Pod spec中是否未配置allowPrivilegeEscalation: false,檢查是否未配置禁止容器中的子進程擁有比父進程更高的許可權。如果未配置,存在被容器中的惡意進程實現越權操作的風險。

修改Pod spec,增加allowPrivilegeEscalation:false欄位。

樣本:

        ports:
        - containerPort: 80
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
          runAsNonRoot: true
        volumeMounts:

capabilitiesAdded

禁用非必需的Linux Capabilities

通過檢查Workload的Pod spec中的capabilities欄位,檢查是否配置了允許容器中的進程擁有SYS_ADMIN、NET_ADMIN、ALL等特權Linux Capabilities。如果配置了,存在被容器中的惡意進程通過這些特權入侵使用者應用、入侵或破壞組件和叢集的風險。

修改Pod spec,根據實際需求只添加必需的Linux Capabilities,刪除不需要的Linux Capabilities。

不依賴額外Linux Capabilities,刪除所有不需要的Linux Capabilities。樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          capabilities:
            drop:
            - ALL

只添加必需的Linux Capabilities,刪除所有不需要的Linux Capabilities。樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          capabilities:
            add:
            - CHOWN
            drop:
            - ALL

notReadOnlyRootFileSystem

開啟容器內的檔案系統唯讀功能

通過檢查Workload的Pod spec中是否未配置readOnlyRootFilesystem: true,檢查是否未配置容器中的檔案系統是不可修改的。如果未配置,則存在被容器中的惡意進程惡意修改系統檔案的風險。

修改Pod spec,增加readOnlyRootFilesystem: true,如果有需要修改某個目錄下檔案的需求,可以通過volumeMounts實現。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          readOnlyRootFilesystem: true

如果需要修改某個目錄下的檔案,通過volumeMounts欄位實現。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          readOnlyRootFilesystem: true
          runAsNonRoot: true
        volumeMounts:
        - mountPath: /path/to/write
          name: writeable
      volumes:
      - emptyDir: {}
        name: writeable

cpuRequestsMissing

配置運行容器所需的最少CPU資源

通過檢查Workload的Pod spec中是否未配置resources.requests.cpu欄位,可以檢查是否未配置運行容器所需的最少CPU資源。如果未配置,則Pod有被調度到資源緊張的節點上的風險,可能會出現容器內進程運行緩慢的情況。

修改Pod spec,增加resources.requests.cpu欄位。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m

cpuLimitsMissing

限制運行容器可使用的最大CPU資源

通過檢查Workload的Pod spec中是否未配置resources.limits.cpu欄位,檢查是否未配置運行容器所需的最大CPU資源。如果未配置,則存在被容器內的異常進程消耗大量節點資源,甚至把整個節點或叢集的資源消耗殆盡的風險。

修改Pod spec,增加resources.limits.cpu欄位。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m
          limits:
            cpu: 100m

memoryRequestsMissing

配置運行容器所需的最少記憶體資源

通過檢查Workload的Pod spec中是否未配置resources.requests.memory欄位,檢查是否未配置運行容器所需的最少記憶體資源。如果未配置,Pod有被調度到資源緊張的節點上的風險,可能會出現容器內進程OOM的風險。

修改Pod spec,增加resources.requests.memory欄位。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m
            memory: 128Mi

memoryLimitsMissing

限制容器可使用的最大記憶體資源

通過檢查Workload的Pod spec中是否未配置resources.limits.memory欄位,檢查是否未配置運行容器所需的最大記憶體資源。如果未配置,則存在被容器內的異常進程消耗大量節點資源,甚至把整個節點或叢集的資源消耗殆盡的風險。

修改Pod spec,增加resources.limits.memory欄位。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 100m
            memory: 128Mi

readinessProbeMissing

配置容器就緒探針

通過檢查Workload的Pod spec中是否未配置readinessProbe欄位,檢查是否未配置檢測容器內應用能否正常處理請求的探針。如果未配置,則存在容器內應用異常無法處理請求時仍舊有請求發送,繼而導致業務異常的風險。

修改Pod spec,增加readinessProbe欄位。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        readinessProbe:
          httpGet:
            path: /health
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 20

livenessProbeMissing

配置容器存活探針

通過檢查Workload的Pod spec中是否未配置livenessProbe,檢查是否未配置檢測容器內應用是否出現異常需要重啟容器的探針。如果未配置,存在容器內應用異常需要重啟容器才能恢複時未及時重啟導致業務異常的風險。

修改Pod spec,增加livenessProbe欄位。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        livenessProbe:
          httpGet:
            path: /health
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 20

tagNotSpecified

容器使用明確的鏡像版本

通過檢查Workload的Pod spec中的image欄位的值是否未包含鏡像Tag或者使用了latest作為鏡像Tag,檢查是否未配置運行容器時使用指定Tag的容器鏡像。如果未配置,存在運行容器時運行了非預期的容器鏡像版本導致業務異常的風險。

修改Pod spec,修改image欄位,使用指定的鏡像Tag,並且不要使用latest作為鏡像Tag。

樣本:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

anonymousUserRBACBinding

禁止匿名使用者存取叢集

通過檢查叢集內的RBAC(Role-based access control)綁定找出配置了匿名使用者存取許可權的配置項。如果配置了允許匿名使用者存取叢集資源的配置項,則存在被惡意匿名使用者竊取叢集敏感資訊、攻擊和入侵叢集的風險。

修改掃描出來的RBAC綁定,根據實際情況刪除允許匿名使用者存取叢集資源的許可權配置項。

樣本:

  - apiGroup: rbac.authorization.k8s.io
    kind: Group
    name: 'foo-group'