Mengecualikan namespace dari Pengontrol Kebijakan

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

Namespace yang dikecualikan 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 dikecualikan

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

Kecualikan 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 Policy GKE Enterprise di bagian Posture Management.

    Buka Kebijakan

  2. Di tab Settings, pada 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 dalam namespace ini diabaikan oleh semua kebijakan. Namespace ini belum perlu ada.
  5. Pilih Simpan perubahan.

Pengontrol Kebijakan gcloud

Untuk menambahkan namespace ke daftar namespace yang mungkin dikecualikan dari penerapan 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 langganan yang 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. Resource-nya masih diaudit. 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 langganan yang 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 ingin Anda kecualikan dari penerapannya.

    Anda juga dapat mengecualikan beberapa namespace. Misalnya, untuk menambahkan namespace not-applicable dan also-not-applicable, Anda perlu 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: menambahkan cluster terdaftar yang ingin Anda terapkan konfigurasinya. Jika Anda mendaftarkan cluster di Konsol Google Cloud, nama keanggotaannya sama dengan nama cluster Anda.
    • CONFIG_YAML: tambahkan jalur ke file apply-spec.yaml Anda.
    • PROJECT_ID: tambahkan project ID Anda.
  3. Beri label namespace yang dapat dikecualikan agar webhook masuk 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 penerapannya.

Namespace yang akan dikecualikan dari penerapan

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