本頁面說明如何自動稽核工作負載設定,找出安全疑慮,並取得實用建議,以提升 Google Kubernetes Engine (GKE) Autopilot 和 Standard 叢集的安全狀態。本文將逐步說明如何啟用工作負載設定稽核、部署測試工作負載、查看及處理設定稽核結果,以及停用工作負載設定稽核。此外,本文也會說明工作負載設定稽核的價格、需求條件和限制。
本頁內容適用於監控 GKE 叢集安全性的安全專家,以及想進一步瞭解如何自動稽核 GKE Autopilot 和 Standard 叢集工作負載設定的使用者。如要進一步瞭解 Google Cloud 內容中提及的常見角色和範例工作,請參閱常見的 GKE Enterprise 使用者角色和工作。
在閱讀本頁內容之前,請先熟悉下列概念,因為工作負載設定稽核是安全狀況資訊主頁的功能:
定價
您可透過 Container Security API,在 GKE 中免費使用安全防護機制資訊主頁。
新增至 Cloud Logging 的項目會採用 Cloud Logging 定價。
事前準備
開始之前,請確認你已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update
,取得最新版本。
啟用 Container Security API。
請確認您有執行 1.21 以上版本的 Autopilot 或 Standard 叢集。如要建立新叢集,請參閱建立 Autopilot 叢集。
需求條件
-
如要取得使用工作負載設定稽核功能所需的權限,請要求管理員授予您專案的安全狀態檢視者 (
roles/containersecurity.viewer
) IAM 角色。 Google Cloud 如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。這個預先定義的角色具備使用工作負載設定稽核功能所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要使用工作負載設定稽核功能,必須具備下列權限:
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
containersecurity.locations.list
-
containersecurity.locations.get
-
containersecurity.clusterSummaries.list
-
containersecurity.findings.list
-
- 工作負載組態稽核功能需要 GKE 1.21 以上版本。
啟用工作負載設定稽核
根據預設,搭載 1.27 以上版本的新 Autopilot 和 Standard 叢集會啟用工作負載組態稽核功能。您也可以使用 gcloud CLI 或 Google Cloud 控制台手動啟用這項功能。
在現有叢集上啟用設定稽核功能
gcloud
更新叢集:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --security-posture=standard
更改下列內容:
CLUSTER_NAME
:叢集名稱。CONTROL_PLANE_LOCATION
: 叢集控制層的位置。為區域性 Standard 和 Autopilot 叢集提供區域,或為可用區 Standard 叢集提供可用區。
控制台
前往 Google Cloud 控制台的「安全防護機制」頁面。
前往「安全防護機制」- 按一下 [設定] 標籤。
- 在「已啟用設定稽核功能的叢集」部分,按一下「選取叢集」。
- 選取要新增的叢集核取方塊。
- 在「選取動作」下拉式選單中,選取「設為基本」。
- 按一下 [套用]。
如果您使用 Google Kubernetes Engine (GKE) Enterprise 版管理叢集車隊,也可以設定車隊層級的設定稽核設定,這些設定會套用至所有成員叢集。如需操作說明,請參閱在機群層級設定 GKE 安全防護機制資訊主頁功能。
部署測試工作負載
部署刻意違反 Pod 安全性標準的範例應用程式。
將下列資訊清單儲存為
misconfig-sample.yaml
:apiVersion: apps/v1 kind: Deployment metadata: name: helloweb labels: app: hello spec: selector: matchLabels: app: hello tier: web template: metadata: labels: app: hello tier: web spec: containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 ports: - containerPort: 8080 securityContext: runAsNonRoot: false resources: requests: cpu: 200m
將應用程式部署至叢集:
kubectl apply -f misconfig-sample.yaml
如要嘗試其他違規行為,請修改 misconfig-sample.yaml
,使用相應的「錯誤」設定。
查看及處理設定稽核結果
初次稽核最多需要 15 分鐘才能傳回結果。GKE 會在安全防護機制資訊主頁上顯示結果,並自動在叢集記錄中新增項目。
查看結果
如要查看專案叢集和工作負載中發現的疑慮總覽,請按照下列步驟操作:
前往 Google Cloud 控制台的「安全防護機制」頁面。
點按「Concerns」(疑慮) 分頁標籤。
在「Filter concerns」(篩選疑慮) 窗格的「Concern type」(疑慮類型) 專區中,選取「Configuration」(設定) 核取方塊。
查看問題詳細資料和建議
如要查看特定設定問題的詳細資訊,請按一下包含該問題的資料列。
「Configuration Concern」(設定問題) 窗格會顯示下列資訊:
- 說明:問題說明。
- 建議動作:查看修正設定問題的行動總覽。這個部分包含下列詳細資料:
- 需要修正的資源
- 可執行將修正項目套用至受影響資源的指令範例
- Google Cloud 控制台操作說明 (如適用),可協助修正問題
查看發現的疑慮記錄
GKE 會在 Cloud Logging 的 _Default
記錄檔儲存空間中,為每個發現的問題新增項目。這些記錄只會保留一段時間,詳情請參閱「記錄保留期限」。
前往 Google Cloud 控制台的「Logs Explorer」頁面:
前往記錄檔探索工具在「Query」(查詢) 欄位中,指定下列查詢:
resource.type="k8s_cluster" jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding" jsonPayload.type="FINDING_TYPE_MISCONFIG"
點選「執行查詢」
如要在 GKE 將新發現項目新增至 Logging 時收到通知,請為這項查詢設定以記錄為準的快訊。詳情請參閱「設定以記錄為準的快訊」。
清除所用資源
刪除您部署的範例工作負載。
kubectl delete deployment helloweb
也可以選擇刪除您使用的叢集。
gcloud container clusters delete CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION
停用工作負載設定稽核
您可以使用 gcloud CLI 或 Google Cloud 控制台停用工作負載設定稽核。
gcloud
執行下列指令:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --security-posture=disabled
更改下列內容:
CLUSTER_NAME
:叢集名稱。CONTROL_PLANE_LOCATION
: 叢集控制層的位置。為區域性 Standard 和 Autopilot 叢集提供區域,或為可用區 Standard 叢集提供可用區。
控制台
前往 Google Cloud 控制台的「安全防護機制」頁面。
前往「安全防護機制」- 按一下 [設定] 標籤。
- 在「已啟用設定稽核功能的叢集」部分,按一下「選取叢集」。
- 在「已啟用稽核」分頁中,選取要移除的叢集核取方塊。
- 按一下「停用稽核」,然後按一下「確認」,即可停用這些叢集的稽核功能。
工作負載設定稽核的限制
- 不支援 Windows Server 節點集區。
- 工作負載設定稽核不會掃描 GKE 管理的工作負載,例如
kube-system
命名空間中的工作負載。 - 工作負載設定稽核功能僅適用於節點數量少於 1,000 個的叢集。
安全防護機制資訊主頁最多支援每個叢集 150,000 個有效工作負載設定稽核結果。如果叢集的調查結果數量超過上限,安全防護機制資訊主頁就不會再顯示該叢集的設定調查結果。
如要解決這個問題,請使用 Logging 中的記錄檔找出設定問題,然後部署更新後的資訊清單。當設定發現項目數量少於 150,000 個時,安全狀況資訊主頁就會開始顯示叢集的發現項目。