Mengecualikan namespace dari Pengontrol Kebijakan

Halaman ini menjelaskan cara mengonfigurasi namespace yang dikecualikan di Pengontrol Kebijakan.

Namespace yang dikecualikan menghapus namespace dari penerapan webhook penerimaan dengan Pengontrol Kebijakan, tetapi pelanggaran apa pun masih dilaporkan di audit. Jika Anda tidak mengonfigurasi namespace, 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 Pengontrol Kebijakan penerapan webhook pendaftaran. Jika nanti Anda menghapus namespace yang dapat dikecualikan, Pengontrol Kebijakan tidak menghapus label admission.gatekeeper.sh/ignore dari namespace.

Mengecualikan namespace dari penerapan

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

Konsol

  1. Di Konsol Google Cloud, buka halaman Kebijakan GKE Enterprise di bagian Pengelolaan Postur.

    Buka Kebijakan

  2. Pada tab Setelan, pada tabel cluster, pilih Edit di kolom Edit configuration.
  3. Luaskan menu Edit Policy Controller configuration.
  4. Di kolom Kecualikan namespace, masukkan daftar namespace yang valid. Objek dalam namespace ini diabaikan oleh semua kebijakan. Namespace belum harus ada.
  5. Pilih Simpan perubahan.

Pengontrol Kebijakan gcloud

Untuk menambahkan namespace ke daftar namespace yang mungkin dikecualikan dari diterapkan oleh webhook penerimaan, 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 keanggotaannya dipisahkan dengan koma.
  • NAMESPACE_LIST: daftar namespace yang dipisahkan koma yang Anda inginkan untuk dikecualikan dari penerapan oleh Pengontrol Kebijakan.

Perintah ini mengecualikan resource hanya dari webhook penerimaan. Sumber daya masih diaudit. Untuk mengecualikan namespace dari audit, tetapkan atribut 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 keanggotaannya dipisahkan dengan koma.
  • NAMESPACE_LIST: daftar namespace yang dipisahkan koma yang Anda inginkan untuk dikecualikan dari penerapan oleh Pengontrol Kebijakan.

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 Anda ingin dikecualikan dari penegakan kebijakan.

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

    # 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: menambahkan cluster terdaftar yang ingin Anda menerapkan konfigurasi ini. Jika Anda mendaftarkan cluster di Konsol Google Cloud, nama keanggotaan sama dengan nama .
    • CONFIG_YAML: menambahkan jalur ke file apply-spec.yaml.
    • PROJECT_ID: tambahkan project ID Anda.
  3. Beri label namespace yang dapat dikecualikan agar webhook penerimaan Pengontrol Kebijakan tidak menegakkan kontennya:

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

    Ganti NAMESPACE_NAME dengan nama namespace yang Anda ingin dikecualikan dari penegakan kebijakan.

Namespace yang akan dikecualikan dari penerapan

Berikut adalah beberapa namespace yang dapat dibuat oleh Google Kubernetes Engine (GKE) dan produk terkait. Anda dapat mengecualikannya dari penegakan 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