Mengecualikan namespace dari Pengontrol Kebijakan

Halaman ini menjelaskan cara mengonfigurasi namespace yang dikecualikan di Policy Controller.

Mengecualikan namespace akan menghapus namespace dari penerapan webhook penerimaan dengan Pengontrol Kebijakan, tetapi pelanggaran apa pun masih dilaporkan di audit. Jika Anda tidak mengonfigurasi namespace apa pun, hanya namespace gatekeeper-system yang telah dikonfigurasi sebelumnya sebagai dikecualikan dari penerapan webhook penerimaan Pengontrol Kebijakan.

Mengonfigurasi namespace yang dikecualikan

Mengonfigurasi namespace yang dapat dikecualikan memungkinkan Anda menerapkan label admission.gatekeeper.sh/ignore untuk mengecualikan namespace dari penerapan webhook penerimaan Pengontrol Kebijakan. Jika Anda kemudian menghapus namespace yang dapat dikecualikan, Pengontrol Kebijakan tidak akan menghapus label admission.gatekeeper.sh/ignore dari namespace.

Mengecualikan namespace dari penerapan

Anda dapat mengecualikan namespace selama penginstalan Pengontrol Kebijakan, atau setelah penginstalan. Proses berikut menunjukkan cara mengecualikan namespace setelah penginstalan.

Konsol

  1. Di konsol Google Cloud, buka halaman Kebijakan GKE Enterprise di bagian Posture Management.

    Buka Kebijakan

  2. Di tab Settings, di tabel cluster, pilih Edit di kolom Edit configuration.
  3. Luaskan menu Edit Policy Controller configuration.
  4. Di kolom Exempt namespaces, berikan daftar namespace yang valid. Objek di namespace ini diabaikan oleh semua kebijakan. Namespace belum perlu ada.
  5. Pilih Simpan perubahan.

Pengontrol Kebijakan gcloud

Untuk menambahkan namespace ke daftar namespace yang dapat dikecualikan dari penerapan oleh webhook akses, jalankan perintah berikut:

  gcloud container fleet policycontroller update \
    --memberships=MEMBERSHIP_NAME \
    --exemptable-namespaces=[NAMESPACE_LIST]

Ganti kode berikut:

  • MEMBERSHIP_NAME: nama keanggotaan cluster terdaftar untuk mengecualikan namespace. Anda dapat menentukan beberapa keanggotaan yang dipisahkan dengan koma.
  • NAMESPACE_LIST: daftar namespace yang dipisahkan koma yang ingin Anda kecualikan dari penerapan oleh Policy Controller.

Perintah ini hanya mengecualikan resource dari webhook izin. Resource tersebut masih diaudit. Sebagai gantinya, untuk mengecualikan namespace dari audit, tetapkan pengecualian di tingkat paket kebijakan:

  gcloud container fleet policycontroller content bundles set BUNDLE_NAME \
    --memberships=MEMBERSHIP_NAME \
    --exempted-namespaces=[NAMESPACE_LIST]

Ganti kode berikut:

  • BUNDLE_NAME dengan nama paket kebijakan yang ingin Anda perbarui dengan namespace yang dikecualikan.
  • MEMBERSHIP_NAME: nama keanggotaan cluster terdaftar untuk mengecualikan namespace. Anda dapat menentukan beberapa keanggotaan yang dipisahkan dengan koma.
  • NAMESPACE_LIST: daftar namespace yang dipisahkan koma yang ingin Anda kecualikan dari penerapan oleh Policy Controller.

gcloud ConfigManagement

  1. Untuk mengecualikan namespace dari penerapan, tambahkan nama namespace di spec.policyController.exemptableNamespaces:

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        exemptableNamespaces: ["NAMESPACE_NAME"]
    ...
    

    Ganti NAMESPACE_NAME dengan nama namespace yang ingin Anda kecualikan dari penerapan.

    Anda juga dapat mengecualikan beberapa namespace. Misalnya, untuk menambahkan namespace not-applicable dan also-not-applicable, Anda akan menerapkan manifes berikut:

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        exemptableNamespaces: ["not-applicable","also-not-applicable"]
    ...
    
  2. Terapkan perubahan pada file apply-spec.yaml:

     gcloud beta container fleet config-management apply \
         --membership=MEMBERSHIP_NAME \
         --config=CONFIG_YAML \
         --project=PROJECT_ID
    

    Ganti kode berikut:

    • MEMBERSHIP_NAME: tambahkan cluster terdaftar yang ingin Anda terapkan konfigurasi ini. Jika Anda mendaftarkan cluster di konsol Google Cloud, nama keanggotaan akan sama dengan nama cluster Anda.
    • CONFIG_YAML: tambahkan jalur ke file apply-spec.yaml Anda.
    • PROJECT_ID: tambahkan project ID Anda.
  3. Beri label pada namespace yang dapat dikecualikan agar webhook penerimaan Pengontrol Kebijakan tidak menerapkan kontennya:

    kubectl label namespace NAMESPACE_NAME "admission.gatekeeper.sh/ignore=true"
    

    Ganti NAMESPACE_NAME dengan nama namespace yang ingin Anda kecualikan dari penerapan.

Namespace yang dikecualikan dari penerapan

Berikut adalah beberapa namespace yang dapat dibuat oleh Google Kubernetes Engine (GKE) dan produk terkait. Anda dapat mengecualikannya dari penerapan untuk menghindari dampak yang tidak diinginkan:

- anthos-creds
- anthos-identity-service
- apigee
- apigee-system
- asm-system
- capi-kubeadm-bootstrap-system
- capi-system
- cert-manager
- cnrm-system
- config-management-monitoring
- config-management-system
- gke-connect
- gke-gmp-system
- gke-managed-cim
- gke-managed-filestorecsi
- gke-managed-metrics-server
- gke-managed-system
- gke-system
- gmp-public
- gmp-system
- hnc-system
- istio-system
- kube-node-lease
- kube-public
- kube-system
- poco-trial
- resource-group-system
- vm-system