Menginstal Pengontrol Kebijakan

Halaman ini menunjukkan cara menginstal Policy Controller. Pengontrol Kebijakan memeriksa, mengaudit, dan menerapkan kepatuhan cluster Anda terhadap kebijakan yang terkait dengan keamanan, peraturan, atau aturan bisnis.

Halaman ini ditujukan bagi administrator dan Operator IT yang ingin memastikan bahwa semua resource yang berjalan dalam platform cloud memenuhi persyaratan kepatuhan organisasi dengan menyediakan dan mempertahankan otomatisasi untuk mengaudit atau menerapkan. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten, lihat Peran dan tugas pengguna umum GKE Enterprise. Google Cloud

Pengontrol Kebijakan tersedia jika Anda menggunakan edisi Google Kubernetes Engine (GKE) Enterprise. Untuk mempelajari lebih lanjut, lihat Harga edisi Google Kubernetes Engine (GKE) Enterprise.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  1. Instal dan lakukan inisialisasi Google Cloud CLI, yang menyediakan perintah gcloud, kubectl, dan nomos yang digunakan dalam petunjuk ini. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update. Jika Anda menggunakan Cloud Shell, Google Cloud CLI sudah terinstal.
  2. Pastikan Open Policy Agent Gatekeeper open source tidak diinstal di cluster Anda. Jika ya, uninstal Gatekeeper sebelum menginstal Policy Controller.

  3. Aktifkan API yang diperlukan:

    console

    1. Aktifkan GKE Enterprise API.

      Aktifkan GKE Enterprise API

    2. Aktifkan Policy Controller API.

      Aktifkan Policy Controller API

    gcloud

    Jalankan perintah berikut:

    gcloud services enable anthos.googleapis.com anthospolicycontroller.googleapis.com
    
  4. Buat, atau pastikan Anda memiliki akses ke, cluster yang menjalankan Kubernetes versi 1.14.x atau yang lebih baru. Pengontrol Kebijakan mungkin tampak berjalan di versi Kubernetes yang lebih lama dari 1.14.x, tetapi produk tidak berperilaku dengan benar.

  5. Berikan peran IAM yang diperlukan kepada pengguna yang mendaftarkan cluster.

  6. Jika Anda berencana menggunakan Google Cloud CLI untuk mengonfigurasi Policy Controller, daftarkan cluster Anda ke fleet sekarang. Jika Anda berencana menggunakan konsol Google Cloud , daftarkan cluster saat Anda menginstal Pengontrol Kebijakan.

  7. Jika Anda menggunakan cluster terlampir GKE, pastikan cluster AKS Anda tidak memiliki add-on Azure Policy dan hindari memberi label pada namespace dengan kunci control-plane.

  8. Jika Anda menggunakan Google Distributed Cloud di VMware atau bare metal, pastikan Anda menginstal Policy Controller di cluster pengguna. Pengontrol Kebijakan tidak dapat diinstal di cluster admin.

Menginstal Pengontrol Kebijakan

Konsol

Untuk menginstal Policy Controller di konsol Google Cloud , selesaikan langkah-langkah berikut:

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

    Buka Kebijakan

  2. Klik Configure Policy Controller.

  3. Opsional: Untuk mengubah setelan armada default, klik Sesuaikan setelan armada. Pada dialog yang muncul, lakukan hal berikut:

    1. Di bagian Tambahkan/Edit paket kebijakan, sertakan atau kecualikan paket kebijakan dengan mengklik tombol yang relevan.
    2. Di bagian Edit Policy Controller configuration, lakukan hal berikut:

      1. Untuk mengaktifkan webhook mutasi, centang kotak Aktifkan webhook mutasi. Fitur ini tidak kompatibel dengan cluster Autopilot.
      2. Di kotak Interval audit, masukkan periode dalam detik antara dua audit berturut-turut.
      3. Di kotak Namespace yang dapat dikecualikan, masukkan daftar namespace. Pengontrol Kebijakan mengabaikan objek di namespace ini. Fitur ini tidak kompatibel dengan cluster Autopilot.

        Praktik terbaik:

        Kecualikan namespace sistem untuk menghindari error di lingkungan Anda. Anda dapat menemukan petunjuk untuk mengecualikan namespace dan daftar namespace umum yang dibuat oleh layanan Google Cloud di halaman Kecualikan namespace.

      4. Untuk mengaktifkan batasan referensial, pilih kotak centang Aktifkan Template Batasan yang merujuk ke objek selain objek yang sedang dievaluasi.

      5. Dalam daftar Version, pilih versi Policy Controller yang ingin Anda gunakan.

    3. Klik Simpan perubahan.

  4. Klik Configure.

  5. Pada dialog konfirmasi, klik Confirm. Jika Anda belum pernah mengaktifkan Pengontrol Kebijakan, mengklik Konfirmasi akan mengaktifkan anthospolicycontroller.googleapis.com API dan menginstal Pengontrol Kebijakan di cluster Anda.

  6. Opsional: Sinkronkan cluster yang ada ke setelan default:

    1. Di tab Setelan, klik Sinkronkan ke setelan armada.
    2. Dalam daftar Clusters in the fleet, pilih cluster yang ingin Anda sinkronkan, lalu klik Sync to fleet settings. Operasi ini dapat memerlukan waktu beberapa menit hingga selesai.

Anda akan dialihkan ke tab Setelan Policy Controller. Jika Pengontrol Kebijakan diinstal dan dikonfigurasi di cluster Anda, kolom status akan menampilkan Diinstal . Proses ini dapat memerlukan waktu beberapa menit.

gcloud

Aktifkan Pengontrol Kebijakan dengan menjalankan perintah berikut:

gcloud container fleet policycontroller enable \
    --memberships=MEMBERSHIP_NAME

Anda dapat menetapkan kolom tambahan untuk mengonfigurasi Policy Controller. Misalnya, Anda mungkin ingin memberi tahu Pengontrol Kebijakan untuk mengecualikan beberapa namespace dari penerapan. Untuk mengetahui daftar lengkap kolom yang dapat Anda konfigurasi, lihat dokumentasi Google Cloud CLI Policy Controller atau jalankan gcloud container fleet policycontroller enable --help.

Tetapkan setelan tingkat armada untuk Policy Controller dengan menyelesaikan langkah-langkah berikut:

  1. Buat file bernama fleet-default.yaml yang berisi konfigurasi default untuk Policy Controller. Kolom installSpec wajib diisi untuk mengaktifkan default tingkat armada. Contoh ini menunjukkan opsi yang dapat Anda konfigurasi:

    # cat fleet-default.yaml
    
     policyControllerHubConfig:
      installSpec: INSTALL_SPEC_ENABLED 
      # Uncomment to set default deployment-level configurations.
      # deploymentConfigs:
      #   admission:
      #     containerResources:
      #       limits:
      #        cpu: 1000m
      #         memory: 8Gi
      #       requests:
      #         cpu: 500m
      #         memory: 4Gi
      # Uncomment to set policy bundles that you want to install by default.
      # policyContent:
      #   bundles:
      #     cis-k8s-v1.5.1:
      #       exemptedNamespaces:
      #       - "namespace-name"
      # Uncomment to exempt namespaces from admission.
      # exemptableNamespaces:
      # - "namespace-name"
      # Uncomment to enable support for referential constraints
      # referentialRulesEnabled: true
      # Uncomment to disable audit, adjust value to set audit interval
      # auditIntervalSeconds: 0
      # Uncomment to log all denies and dryrun failures
      # logDeniesEnabled: true
      # Uncomment to enable mutation
      # mutationEnabled: true
      # Uncomment to adjust the value to set the constraint violation limit
      # constraintViolationLimit: 20
      # ... other fields ...
    
    Praktik terbaik:

    Kecualikan namespace sistem untuk menghindari error di lingkungan Anda. Anda dapat menemukan petunjuk untuk mengecualikan namespace dan daftar namespace umum yang dibuat oleh layanan Google Cloud di halaman Kecualikan namespace.

  2. Terapkan konfigurasi default ke armada Anda:

    gcloud container fleet policycontroller enable \
      --fleet-default-member-config=fleet-default.yaml
    
  3. Untuk memverifikasi bahwa konfigurasi telah diterapkan, jalankan perintah berikut:

    gcloud container fleet policycontroller describe
    
  4. Untuk menghapus konfigurasi default tingkat armada, jalankan perintah berikut:

    gcloud container fleet policycontroller enable \
      --no-fleet-default-member-config
    

Terraform

Untuk mengaktifkan Pengontrol Kebijakan di seluruh armada Anda dengan template library default yang diinstal, lihat contoh berikut:

resource "google_gke_hub_feature" "policycontroller" {
  name     = "policycontroller"
  location = "global"
  project  = data.google_project.default.project_id

  fleet_default_member_config {
    policycontroller {
      policy_controller_hub_config {
        install_spec = "INSTALL_SPEC_ENABLED"
        policy_content {
          bundles {
            bundle = "pss-baseline-v2022"
          }
          template_library {
            installation = "ALL"
          }
        }
      }
    }
  }
}

Anda dapat meneruskan beberapa blok bundle untuk menginstal paket yang tercantum dalam Ringkasan paket Pengontrol Kebijakan.

Untuk mempelajari lebih lanjut cara menggunakan Terraform, lihat Dukungan Terraform untuk Pengontrol Kebijakan.

Memverifikasi penginstalan Pengontrol Kebijakan

Setelah menginstal Policy Controller, Anda dapat memverifikasi bahwa penginstalan telah selesai dengan berhasil.

Konsol

Selesaikan langkah-langkah berikut:

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

    Buka Kebijakan

  2. Di tab Settings, pada tabel cluster, periksa kolom Policy controller status. Penginstalan yang berhasil memiliki status Diinstal .

gcloud

Jalankan perintah berikut:

gcloud container fleet policycontroller describe --memberships=MEMBERSHIP_NAME

Penginstalan yang berhasil akan menampilkan membershipStates: MEMBERSHIP_NAME: policycontroller: state: ACTIVE.

Memverifikasi penginstalan library template batasan

Saat Anda menginstal Pengontrol Kebijakan, library template batasan akan diinstal secara default. Penginstalan ini dapat memerlukan waktu beberapa menit hingga selesai. Anda dapat memverifikasi bahwa library template berhasil diselesaikan.

Konsol

Selesaikan langkah-langkah berikut:

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

    Buka Kebijakan

  2. Di tab Settings, dalam tabel cluster, pilih angka yang tercantum di kolom Bundles installed. Di panel Status konten kebijakan, penginstalan library template yang berhasil memiliki status Terinstal .

gcloud

Jalankan perintah berikut:

kubectl get constrainttemplates

Anda akan melihat output yang mirip dengan contoh berikut ini:

NAME                                      AGE
k8sallowedrepos                           84s
k8scontainerlimits                        84s
k8spspallowprivilegeescalationcontainer   84s
...[OUTPUT TRUNCATED]...

Jika template batasan individual diinstal dengan benar, kolom status.created-nya adalah true.

Interaksi Pengontrol Kebijakan dengan Config Sync

Jika Anda menggunakan Policy Controller dengan Config Sync, Anda harus mengetahui interaksi berikut dengan resource yang disimpan di sumber tepercaya Anda, seperti repositori Git, yang disinkronkan oleh Config Sync:

  • Anda tidak dapat menyinkronkan template batasan yang juga merupakan bagian dari library template kecuali jika library template batasan dinonaktifkan.

  • Jika Anda ingin menyinkronkan resource Config yang disimpan di namespace gatekeeper-system, Anda hanya boleh menentukan resource Config di sumber tepercaya. gatekeeper-system Namespace tidak boleh ditentukan dengannya.

Mengonfigurasi metrik

Secara default, Policy Controller mencoba mengekspor metrik ke Prometheus dan Cloud Monitoring. Anda mungkin perlu menyelesaikan langkah-langkah konfigurasi tambahan, seperti memberikan izin, agar Policy Controller dapat mengekspor metrik. Untuk mengetahui informasi selengkapnya, lihat Menggunakan metrik Pengontrol Kebijakan.

Mengelola library template batasan

Untuk mengetahui informasi tentang cara meng-uninstal atau menginstal template batasan, batasan terkait, atau library template batasan, lihat Membuat batasan.

Mengecualikan namespace dari penegakan

Anda dapat mengonfigurasi Pengontrol Kebijakan untuk mengabaikan objek dalam namespace. Untuk mengetahui informasi selengkapnya, lihat Mengecualikan namespace dari Pengontrol Kebijakan.

Mengubah resource

Policy Controller juga bertindak sebagai webhook mutating. Untuk mengetahui informasi selengkapnya, lihat Mengubah resource.

Melihat versi Pengontrol Kebijakan

Untuk mengetahui versi Gatekeeper Policy Controller yang digunakan, lihat tag image dengan menjalankan perintah berikut:

kubectl get deployments -n gatekeeper-system gatekeeper-controller-manager \
  -o="jsonpath={.spec.template.spec.containers[0].image}"

Tag Git (atau hash) yang digunakan untuk membangun Gatekeeper dan nomor versi ConfigManagement Operator disertakan dalam tag image sebagai berikut:

.../gatekeeper:VERSION_NUMBER-GIT_TAG.gBUILD_NUMBER

Misalnya, untuk gambar berikut:

gcr.io/config-management-release/gatekeeper:anthos1.3.2-480baac.g0
  • anthos1.3.2 adalah nomor versi.
  • 480baac adalah tag Git.
  • 0 adalah nomor build.

Mengupgrade Pengontrol Kebijakan

Sebelum mengupgrade Policy Controller, periksa catatan rilis untuk mengetahui detail tentang perubahan antar-versi.

Untuk mengupgrade Policy Controller, selesaikan langkah-langkah berikut:

Konsol

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

    Buka Kebijakan

  2. Di tab Setelan, di samping cluster yang versinya ingin Anda upgrade, pilih Edit konfigurasi.
  3. Luaskan menu Edit Policy Controller configuration.
  4. Dari menu drop-down Versi, pilih versi yang ingin Anda upgrade.
  5. Klik Simpan perubahan.

gcloud

Jalankan perintah berikut:

gcloud container fleet policycontroller update \
  --version=VERSION \
  --memberships=MEMBERSHIP_NAME

Ganti kode berikut:

  • VERSION: versi yang ingin Anda upgrade
  • MEMBERSHIP_NAME: nama keanggotaan yang Anda pilih saat Anda mendaftarkan cluster. Anda dapat menemukan nama keanggotaan dengan menjalankan gcloud container fleet memberships list.

Meng-uninstal Pengontrol Kebijakan

Ikuti langkah-langkah berikut untuk meng-uninstal Pengontrol Kebijakan dari cluster Anda.

Konsol

Untuk menonaktifkan Pengontrol Kebijakan di cluster Anda, selesaikan tugas berikut:

  1. Di Google Cloud konsol, 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. Di panel cluster, luaskan menu Tentang Pengontrol Kebijakan.
  4. Pilih Uninstal Policy Controller.
  5. Konfirmasi penghapusan dengan mengikuti petunjuk dalam dialog konfirmasi dan memilih Konfirmasi.

Jika Policy Controller di-uninstal, kolom status akan menampilkan Not installed .

gcloud

Untuk meng-uninstal Policy Controller, jalankan perintah berikut:

gcloud container fleet policycontroller disable \
  --memberships=MEMBERSHIP_NAME

Ganti MEMBERSHIP_NAME dengan nama keanggotaan cluster terdaftar yang akan dinonaktifkan Policy Controller-nya. Anda dapat menentukan beberapa keanggotaan yang dipisahkan dengan koma.

RBAC dan izin Policy Controller

Policy Controller mencakup beban kerja dengan hak istimewa tinggi. Izin untuk beban kerja ini tercakup dalam dokumentasi operasi Open Policy Agent Gatekeeper.

Langkah berikutnya