本頁面將協助您開始使用資安態勢資訊主頁,並引導您偵測安全漏洞。查看需求、從可用層級中選取,並瞭解如何啟用安全漏洞掃描、部署測試工作負載、查看結果和建議,以及停用掃描。
本頁面適用於負責監控叢集安全問題的資安專家。如要進一步瞭解Google Cloud 內容中提及的常見角色和工作範例,請參閱「常見的 GKE 使用者角色和工作」。
閱讀本頁內容前,請先熟悉工作負載安全漏洞掃描的一般總覽。
定價
如需定價資訊,請參閱「GKE 資安態勢資訊主頁定價」。
事前準備
開始之前,請務必先完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。
啟用 Container Security API。
如要使用進階安全漏洞洞察功能,請啟用 Container Analysis API。
需求條件
-
如要取得使用工作負載安全漏洞掃描功能所需的權限,請要求管理員在 Google Cloud 專案中授予您「資安態勢檢視者 」(
roles/containersecurity.viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。這個預先定義的角色具備使用工作負載安全漏洞掃描所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
必須具備下列權限,才能使用工作負載安全漏洞掃描功能:
-
resourcemanager.projects.get -
resourcemanager.projects.list -
containersecurity.locations.list -
containersecurity.locations.get -
containersecurity.clusterSummaries.list -
containersecurity.findings.list
-
- 進階安全漏洞深入分析功能需要 GKE 1.27 以上版本。
工作負載安全漏洞掃描層級
您可以在層級中啟用安全漏洞掃描功能,每個層級都會新增掃描功能,如下所示。如果您使用 Google Kubernetes Engine (GKE) Enterprise 版管理叢集車隊,也可以設定車隊層級的弱點掃描設定,套用至所有成員叢集。如需操作說明,請參閱「在機群層級設定 GKE 資安態勢資訊主頁功能」。
| 級別 | 已啟用的功能 | GKE 版本需求 |
|---|---|---|
標準版standard |
容器 OS 安全漏洞掃描 |
|
進階安全漏洞分析enterprise |
|
|
如要進一步瞭解各項功能,請參閱「關於工作負載安全漏洞掃描」。
啟用容器 OS 安全漏洞掃描功能
根據預設,搭載 1.27 以上版本的新 Autopilot 叢集會啟用容器 OS 安全漏洞掃描功能。本節說明如何在現有 Standard 叢集和搭載 1.27 之前版本的 Autopilot 叢集中啟用這項功能。
在現有叢集上啟用容器 OS 掃描功能
gcloud
更新叢集:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --workload-vulnerability-scanning=standard
更改下列內容:
CLUSTER_NAME:叢集名稱。CONTROL_PLANE_LOCATION:叢集控制層的位置。請提供區域性 Standard 和 Autopilot 叢集的區域,或可用區 Standard 叢集的可用區。
控制台
前往 Google Cloud 控制台的「Security Posture」(安全防護機制) 頁面。
前往「Security Posture」(安全防護機制)- 按一下 [設定] 標籤。
- 在「已啟用安全漏洞掃描功能的叢集」部分,按一下「選取叢集」。
- 勾選要新增的叢集核取方塊。
- 在「選取動作」下拉式選單中,選取「設為基本」。
- 按一下「套用」。
啟用進階安全漏洞深入分析
進階安全漏洞分析功能可持續掃描執行中的應用程式,找出下列類型的安全漏洞:
- 容器 OS 安全漏洞
- 語言套件安全漏洞
啟用進階安全漏洞深入分析功能後,系統會自動啟用容器 OS 安全漏洞掃描功能,且無法單獨停用。
需求條件
確認您已在專案中啟用 Container Analysis API。
啟用 Container Analysis API
在現有叢集上啟用進階安全漏洞深入分析
gcloud
更新叢集:
gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --workload-vulnerability-scanning=enterprise
更改下列內容:
CLUSTER_NAME:叢集名稱。CONTROL_PLANE_LOCATION:叢集控制層的位置。為區域性 Standard 和 Autopilot 叢集提供區域,或為可用區 Standard 叢集提供可用區。
控制台
前往 Google Cloud 控制台的「Security Posture」(安全防護機制) 頁面。
前往「Security Posture」(安全防護機制)- 按一下 [設定] 標籤。
- 在「已啟用安全漏洞掃描功能的叢集」部分,按一下「選取叢集」。
- 勾選要新增的叢集核取方塊。
- 在「選取動作」下拉式選單中,選取「設為進階」。
- 按一下「套用」。
部署測試工作負載
在下一節中,您將使用 Deployment 資訊清單範例。Deployment 是 Kubernetes API 物件,可讓您執行多個 Pod 副本,這些副本會分散在叢集的節點中。
為示範用途,以下資訊清單含有已知安全漏洞。實務上,如果您知道應用程式有安全漏洞,可能就不該執行。
將下列資訊清單儲存為
os-vuln-sample.yaml:apiVersion: apps/v1 kind: Deployment metadata: name: frontend spec: replicas: 1 selector: matchLabels: app: guestbook tier: frontend template: metadata: labels: app: guestbook tier: frontend spec: containers: - name: php-redis image: us-docker.pkg.dev/google-samples/containers/gke/gb-frontend:v5 env: - name: GET_HOSTS_FROM value: "dns" resources: requests: cpu: 100m memory: 100Mi ports: - containerPort: 80請查看下列資訊清單,其中含有已知的 Maven 安全漏洞:
視需要取得叢集憑證:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION將應用程式部署至叢集:
kubectl apply -f os-vuln-sample.yaml kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/kubernetes-engine-samples/main/security/language-vulns/maven/deployment.yaml
如要測試其他安全漏洞,請嘗試在暫存環境中部署較早版本的映像檔,例如 nginx。
查看結果並採取行動
視掃描的工作負載數量而定,初次掃描至少需要 15 分鐘才能傳回結果。GKE 會在資安態勢資訊主頁上顯示結果,並自動將項目新增至記錄。
查看結果
如要查看專案叢集和工作負載中發現的問題總覽,請按照下列步驟操作:
前往 Google Cloud 控制台的「Security Posture」(安全防護機制) 頁面。
點按「Concerns」(疑慮) 分頁標籤。
在「Filter concerns」(篩選疑慮) 窗格的「Concern type」(疑慮類型) 部分,勾選「Vulnerability」(安全漏洞) 核取方塊。
查看疑慮詳情和建議
如要查看特定安全漏洞的詳細資訊,請點選包含該問題的資料列。
「安全漏洞問題」窗格會顯示下列資訊:
- 說明:問題說明,包括適用的 CVE 編號,以及安全漏洞的詳細說明和潛在影響。
- 應變措施建議:您可以採取哪些行動來解決安全漏洞,例如修正套件版本,以及套用修正程式的位置。
查看偵測到的問題記錄
GKE 會在 Logging 的 _Default 記錄檔 bucket 中,為每個發現的問題新增項目。這些記錄只會保留一段時間。詳情請參閱「記錄檔保留期限」。
前往 Google Cloud 控制台的「Logs Explorer」:
前往「Logs Explorer」在「查詢」欄位中,指定下列查詢:
resource.type="k8s_cluster" jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding" jsonPayload.type="FINDING_TYPE_VULNERABILITY"
點選「執行查詢」。
如要在 GKE 將新發現項目新增至 Logging 時收到通知,請為這項查詢設定記錄檔式快訊。詳情請參閱「設定記錄式警告」。
清除所用資源
刪除您部署的範例工作負載:
kubectl delete deployment frontend視需要刪除您使用的叢集:
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 \ --workload-vulnerability-scanning=disabled
更改下列內容:
CLUSTER_NAME:叢集名稱。CONTROL_PLANE_LOCATION:叢集控制層的位置。為區域性 Standard 和 Autopilot 叢集提供區域,或為可用區 Standard 叢集提供可用區。
控制台
前往 Google Cloud 控制台的「Security Posture」(安全防護機制) 頁面。
前往「Security Posture」(安全防護機制)- 按一下 [設定] 標籤。
- 在「Vulnerability scan enabled clusters」(已啟用安全漏洞掃描功能的叢集) 區段中,按一下「Select clusters」(選取叢集)。
- 找出要移除的叢集,然後勾選對應的核取方塊。
- 在「選取動作」下拉式選單中,選取「設為已停用」。
- 按一下「套用」。