Halaman ini menunjukkan cara menginstal Pengontrol Kebijakan. Pengontrol Kebijakan memeriksa, mengaudit, dan menegakkan kepatuhan dengan kebijakan yang berkaitan dengan keamanan, peraturan, atau aturan bisnis.
Halaman ini ditujukan untuk admin IT dan Operator yang ingin memastikan bahwa semua resource yang berjalan dalam platform {i>cloud<i} memenuhi persyaratan persyaratan kepatuhan dengan menyediakan dan mempertahankan otomatisasi untuk terapkan. Untuk mempelajari lebih lanjut tentang peran umum dan contoh tugas yang kami rujuk di konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise yang umum.
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:
- Instal dan lakukan inisialisasi Google Cloud CLI, yang menyediakan
Perintah
gcloud
,kubectl
, dannomos
yang digunakan dalam petunjuk ini. Jika sebelumnya Anda menginstal gcloud CLI, versi dengan menjalankangcloud components update
. Jika Anda menggunakan Cloud Shell, Google Cloud CLI sudah diinstal sebelumnya. - Pastikan Open Policy Agent Gatekeeper open source tidak diinstal di . Jika ya, uninstal Gatekeeper sebelum menginstal Pengontrol Kebijakan.
Mengaktifkan Policy Controller API.
Buat atau pastikan Anda memiliki akses ke cluster yang menjalankan Kubernetes versi 1.14.x atau yang lebih baru. Pengontrol Kebijakan mungkin terlihat berjalan di Kubernetes yang lebih lama dari 1.14.x, tetapi produk tersebut tidak berperilaku dengan benar.
Berikan peran IAM yang diperlukan kepada pengguna yang mendaftarkan cluster.
Jika Anda berencana menggunakan Google Cloud CLI untuk mengonfigurasi Pengontrol Kebijakan, daftarkan cluster Anda ke suatu beberapa armada sekarang. Jika Anda berencana untuk menggunakan konsol Google Cloud, daftarkan cluster Anda instal Pengontrol Kebijakan.
Jika Anda menggunakan cluster terpasang GKE, pastikan bahwa AKS Anda tidak memiliki add-on Kebijakan Azure dan menghindari pelabelan namespace dengan kunci
control-plane
Jika Anda menggunakan Google Distributed Cloud di VMware atau bare metal, pastikan Anda menginstal Pengontrol Kebijakan di cluster pengguna. Pengontrol Kebijakan tidak dapat diinstal di ke cluster admin.
Menginstal Pengontrol Kebijakan
Mulai versi 1.16.0, jika Anda menggunakan Google Cloud CLI,
Anda dapat menginstal dan mengelola Pengontrol Kebijakan secara langsung (direkomendasikan).
Mengonfigurasi Pengontrol Kebijakan melalui objek ConfigManagement
tidak lagi
direkomendasikan.
Konsol
Untuk menginstal Pengontrol Kebijakan di Konsol Google Cloud, selesaikan langkah-langkah berikut:
- Di Konsol Google Cloud, buka halaman Kebijakan GKE Enterprise di bagian Pengelolaan Postur.
Pilih add Install Policy Controller.
Pada panel Penginstalan Pengontrol Kebijakan, pilih salah satu opsi berikut opsi penginstalan:
Untuk menginstal Pengontrol Kebijakan di semua cluster dalam suatu fleet:
Biarkan Instal di fleet Anda tetap dipilih.
Jika tidak memiliki fleet di project, Anda bisa membuat fleet di langkah selanjutnya.
Jika belum memiliki fleet, pilih nama untuk armada Anda.
Pilih Aktifkan Pengontrol Kebijakan.
Untuk menginstal Pengontrol Kebijakan di setiap cluster:
Pilih Instal di cluster individual.
Pada tabel Cluster yang tersedia, pilih cluster yang Anda inginkan untuk menginstal Pengontrol Kebijakan.
Pilih Aktifkan Pengontrol Kebijakan.
Anda akan dialihkan ke tab Settings Pengontrol Kebijakan. Kapan Pengontrol Kebijakan sudah diinstal dan dikonfigurasi di cluster Anda, statusnya kolom menunjukkan Terinstal check_circle. Ini memerlukan waktu beberapa menit.
Pengontrol Kebijakan gcloud
Aktifkan Pengontrol Kebijakan dengan menjalankan perintah berikut:
gcloud container fleet policycontroller enable \
--memberships=MEMBERSHIP_NAME
Anda dapat menetapkan kolom tambahan untuk mengonfigurasi Pengontrol Kebijakan. Misalnya,
Anda mungkin perlu memberi tahu Pengontrol Kebijakan
untuk mengecualikan beberapa namespace dari penerapan.
Untuk daftar lengkap kolom yang dapat Anda konfigurasi, lihat
Dokumentasi Google Cloud CLI Pengontrol Kebijakan
atau jalankan gcloud container fleet policycontroller enable --help
.
gcloud ConfigManagement
Siapkan konfigurasi dengan membuat
apply-spec.yaml
baru manifes atau menggunakan manifes yang ada. Menggunakan manifes yang ada memungkinkan Anda mengonfigurasi cluster dengan setelan yang sama dengan yang digunakan oleh cluster lain.Buat manifes baru
Untuk mengonfigurasi Pengontrol Kebijakan dengan setelan baru untuk cluster Anda, buat file bernama
apply-spec.yaml
dan salin file YAML berikut ke dalamnya:# apply-spec.yaml applySpecVersion: 1 spec: policyController: # Set to true to install and enable Policy Controller enabled: true # Uncomment to prevent the template library from being installed # templateLibraryInstalled: false # 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 exempt namespaces # exemptableNamespaces: ["namespace-name"] # Uncomment to change the monitoring backends # monitoring: # backends: # - cloudmonitoring # - prometheus # ...other fields...
Anda harus menambahkan kolom
spec.policyController
dan menetapkan nilaienabled
untuktrue
. Anda dapat memilih untuk mengaktifkan Pengontrol Kebijakan lainnya baru. Namun, dukungan untuk batasan referensial dinonaktifkan oleh secara default. Sebelum mengaktifkannya, pastikan Anda memahami catatan tentang konsistensi tertunda.Gunakan manifes yang ada
Untuk mengonfigurasi cluster Anda dengan setelan yang sama dengan yang digunakan oleh cluster lain, mengambil setelan dari cluster terdaftar:
gcloud alpha container fleet config-management fetch-for-apply \ --membership=MEMBERSHIP_NAME \ --project=PROJECT_ID \ > CONFIG_YAML_PATH
Ganti kode berikut:
MEMBERSHIP_NAME
: nama keanggotaan terdaftar yang memiliki setelan Pengontrol Kebijakan yang ingin Anda gunakanPROJECT_ID
: project ID AndaCONFIG_YAML_PATH
: jalur ke Fileapply-spec.yaml
Terapkan 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
: nama keanggotaan terdaftar yang memiliki setelan Pengontrol Kebijakan yang ingin Anda gunakan.CONFIG_YAML
: menambahkan jalur ke Fileapply-spec.yaml
.PROJECT_ID
: tambahkan project ID Anda.
Pod dibuat dan Pengontrol Kebijakan mulai memeriksa dan memberlakukan batasan.
Memverifikasi penginstalan Pengontrol Kebijakan
Setelah menginstal Pengontrol Kebijakan, Anda dapat memverifikasi bahwa proses ini sudah selesai memulai proyek.
Konsol
Selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Kebijakan GKE Enterprise di bagian Pengelolaan Postur.
- Pada tab Setelan, di tabel cluster, periksa Kolom Status pengontrol kebijakan. Penginstalan yang berhasil memiliki status dari Terinstal check_circle.
Pengontrol Kebijakan gcloud
Jalankan perintah berikut:
gcloud container fleet policycontroller describe --memberships=MEMBERSHIP_NAME
Penginstalan yang berhasil akan menampilkan membershipStates: MEMBERSHIP_NAME: policycontroller: state: ACTIVE
.
gcloud ConfigManagement
Jalankan perintah berikut:
gcloud beta container fleet config-management status \
--project=PROJECT_ID
Ganti PROJECT_ID
dengan ID project Anda.
Anda akan melihat output yang mirip dengan contoh berikut:
Name Status Last_Synced_Token Sync_Branch Last_Synced_Time Policy_Controller
CLUSTER_NAME SYNCED a687c2c 1.0.0 2021-02-17T00:15:55Z INSTALLED
Penginstalan yang berhasil memiliki status INSTALLED
di
Kolom Pengontrol Kebijakan.
Memverifikasi penginstalan library template batasan
Saat Anda menginstal Pengontrol Kebijakan, pustaka template batasan adalah diinstal secara {i>default<i}. Penginstalan ini dapat memerlukan waktu beberapa menit hingga selesai. Anda dapat memverifikasi bahwa library template berhasil diselesaikan.
Konsol
Selesaikan langkah-langkah berikut:
- Di Konsol Google Cloud, buka halaman Kebijakan GKE Enterprise di bagian Pengelolaan Postur.
- Pada tab Setelan, pada tabel cluster, pilih nomor yang tercantum di kolom Bundles installed. Di panel Status konten kebijakan, instalasi yang berhasil dari perpustakaan {i>template<i} memiliki status Menginstal check_circle.
gcloud
Jalankan perintah berikut:
kubectl get constrainttemplates
Anda akan melihat output yang mirip dengan contoh berikut:
NAME AGE k8sallowedrepos 84s k8scontainerlimits 84s k8spspallowprivilegeescalationcontainer 84s ...[OUTPUT TRUNCATED]...
Saat template batasan individual diinstal dengan benar,
Kolom status.created
adalah true
.
Mengonfigurasi default tingkat fleet
Jika Anda telah mengaktifkan Edisi Google Kubernetes Engine (GKE) Enterprise, Anda dapat aktifkan dan konfigurasikan Pengontrol Kebijakan sebagai setelan default tingkat fleet untuk klaster. Artinya, setiap cluster GKE di Google Cloud yang baru terdaftar selama cluster pembuatan konten akan mengaktifkan Pengontrol Kebijakan di cluster dengan setelan yang Anda tentukan. Anda dapat mengetahui konfigurasi default perangkat lebih lanjut di Mengelola tingkat fleet baru.
Guna mengonfigurasi default tingkat fleet untuk Pengontrol Kebijakan, selesaikan langkah-langkah berikut langkah:
Konsol
Di konsol Google Cloud, buka halaman Feature Manager.
Di panel Policy, klik Configure.
Tinjau setelan tingkat fleet Anda. Semua klaster baru yang Anda daftarkan ke fleet mewarisi setelan ini.
Opsional: Untuk mengubah setelan default, klik Sesuaikan fleet setelan. Dalam dialog yang muncul, lakukan hal berikut:
- Di bagian Tambahkan/Edit paket kebijakan, sertakan atau kecualikan kebijakan paket dengan mengklik tombol yang relevan.
- Di bagian Edit Policy Controller configuration, lakukan
berikut ini:
- Untuk mengaktifkan web webhook mutasi, centang kotak Aktifkan webhook mutasi. Fitur ini tidak kompatibel dengan cluster Autopilot.
- Di kotak Interval audit, masukkan periode dalam detik antara dua audit berturut-turut.
- Di kotak Ruang nama yang dapat dikecualikan, masukkan daftar namespace. Pengontrol Kebijakan mengabaikan objek dalam namespace ini.
- Untuk mengaktifkan batasan referensial, pilih kotak Enable Constraint Templates yang merujuk ke objek selain objek yang sedang dievaluasi.
- Dalam daftar Version, pilih versi Pengontrol Kebijakan yang yang ingin Anda gunakan.
- Klik Simpan perubahan.
Klik Konfigurasikan.
Pada dialog konfirmasi, klik Confirm. Jika belum pernah Anda mengaktifkan Pengontrol Kebijakan, mengklik Konfirmasi akan mengaktifkan API
anthospolicycontroller.googleapis.com
.Opsional: Sinkronkan cluster yang ada ke setelan default:
- Di daftar Clusters in the fleet, pilih cluster yang Anda inginkan untuk menyinkronkan.
- Klik Sinkronkan ke setelan fleet, lalu klik Konfirmasi di dialog konfirmasi yang muncul. Operasi ini dapat memerlukan waktu beberapa menit untuk diselesaikan.
gcloud
Membuat file bernama
fleet-default.yaml
yang berisi konfigurasi default untuk Pengontrol Kebijakan. KolominstallSpec
diperlukan untuk mengaktifkan setelan default tingkat fleet. 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 ...
Terapkan konfigurasi default ke perangkat Anda:
gcloud container fleet policycontroller enable \ --fleet-default-member-config=fleet-default.yaml
Untuk memastikan bahwa konfigurasi telah diterapkan, jalankan perintah berikut:
gcloud container fleet policycontroller describe
Untuk menghapus konfigurasi default tingkat fleet, jalankan perintah berikut:
gcloud container fleet policycontroller enable \ --no-fleet-default-member-config
Interaksi Pengontrol Kebijakan dengan Config Sync
Jika Anda menggunakan Pengontrol Kebijakan dengan Config Sync, Anda harus mengetahui interaksi berikut dengan sumber daya 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 template kecuali library template batasan dinonaktifkan.
Jika Anda ingin menyinkronkan resource
Config
yang disimpan digatekeeper-system
namespace, maka Anda hanya boleh menentukan resourceConfig
dalam sumber kebenaran.gatekeeper-system
Namespace
tidak boleh ditentukan dengannya.
Mengelola library template batasan
Untuk mendapatkan informasi tentang cara meng-uninstal atau menginstal template batasan, batasan terkait, atau library template batasan, lihat Buat batasan.
Mengecualikan namespace dari penerapan
Anda dapat mengonfigurasi Pengontrol Kebijakan agar mengabaikan objek dalam namespace. Untuk informasi selengkapnya, lihat Kecualikan namespace dari Pengontrol Kebijakan.
Mengubah resource
Pengontrol Kebijakan juga bertindak sebagai webhook yang bermutasi. Sebagai Untuk mengetahui informasi selengkapnya, lihat Memutasikan resource.
Melihat versi Pengontrol Kebijakan
Untuk menemukan versi Pengontrol Kebijakan Gatekeeper mana 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 ConfigManagement Operator nomor versi 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.
Pengontrol Kebijakan Upgrade
Sebelum mengupgrade Pengontrol Kebijakan, periksa catatan rilis untuk detail tentang berubah antar versi.
Untuk mengupgrade Pengontrol Kebijakan, selesaikan langkah-langkah berikut:
Konsol
- Di Konsol Google Cloud, buka halaman Kebijakan GKE Enterprise di bagian Pengelolaan Postur.
- Pada tab Setelan, di samping cluster yang versinya ingin Anda upgrade, pilih edit Edit configuration.
- Luaskan menu Edit Policy Controller configuration.
- Dari menu drop-down Version, pilih yang ingin Anda upgrade.
- Klik Simpan perubahan.
gcloud
Jalankan perintah berikut:
gcloud container fleet policycontroller update \
--version=VERSION \
--membership=MEMBERSHIP_NAME
Ganti kode berikut:
VERSION
: versi yang ingin Anda upgradeMEMBERSHIP_NAME
: nama keanggotaan yang Anda pilih saat mendaftarkan cluster Anda. Anda dapat menemukan nama keanggotaan dengan menjalankangcloud container fleet memberships list
.
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-tugas berikut:
- Di konsol Google Cloud, buka halaman Kebijakan GKE Enterprise di bagian Pengelolaan Postur.
- Pada tab Setelan, pada tabel cluster, pilih Edit edit di kolom Edit configuration.
- Di panel cluster, scroll ke bawah dan luaskan About Policy Controller Google Spreadsheet.
- Pilih Uninstall Policy Controller.
- Konfirmasi uninstal dengan mengikuti petunjuk di konfirmasi lalu memilih Confirm.
Ketika Pengontrol Kebijakan di-uninstal, status kolom menunjukkan Not installed do_not_disturb_on.
Pengontrol Kebijakan gcloud
Untuk meng-uninstal Pengontrol Kebijakan, jalankan perintah berikut:
gcloud container fleet policycontroller disable \
--memberships=MEMBERSHIP_NAME
Ganti MEMBERSHIP_NAME
dengan nama keanggotaan
cluster terdaftar untuk menonaktifkan Pengontrol Kebijakan. Anda dapat menentukan beberapa
keanggotaannya dipisahkan
dengan koma.
gcloud ConfigManagement
Untuk meng-uninstal Pengontrol Kebijakan:
Edit konfigurasi ConfigManagement Operator di File
apply-spec.yaml
dan tetapkanpolicyController.enabled
kefalse
.Terapkan perubahan di file
apply-spec.yaml
:gcloud beta container fleet config-management apply \ --membership=CLUSTER_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
Ganti kode berikut:
- CLUSTER_NAME: menambahkan cluster terdaftar yang ingin Anda menerapkan konfigurasi ini.
- CONFIG_YAML: menambahkan jalur ke
apply-spec.yaml
. - PROJECT_ID: tambahkan project ID Anda.
Menghapus Operator ConfigManagement
Jika Anda menginstal Pengontrol Kebijakan melalui objek ConfigManagement
,
Anda juga perlu menghapus ConfigManagement Operator dari cluster Anda.
Untuk menghapus ConfigManagement Operator, jalankan perintah berikut:
Hapus objek ConfigManagement dari cluster:
kubectl delete configmanagement --all
Setelah Anda menjalankan perintah ini, hal-hal berikut akan terjadi:
- Setiap ClusterRoles dan ClusterRoleBindings dibuat di cluster dengan ConfigManagement Operator dihapus dari cluster.
- Konfigurasi pengontrol penerimaan yang diinstal oleh ConfigManagement Operator dihapus.
- Konten namespace
config-management-system
akan dihapus, dengan pengecualian Rahasiagit-creds
, dan untuk versi Pengontrol Kebijakan mulai 1.9.0, Deploymentconfig-management-operator
, dan Podconfig-management-operator
. ConfigManagement Operator tidak dapat berfungsi tanpaconfig-management-system
namespace. Setiap CustomResourceDefinitions (CRD) yang dibuat atau diubah oleh Pengontrol ConfigManagement Operator dihapus dari cluster tempat dibuat atau diubah. CRD yang diperlukan untuk menjalankan ConfigManagement Operator masih ada karena dari sudut pandang Kubernetes, ditambahkan oleh pengguna yang ConfigManagement Operator yang terinstal. Lumen cara menghapus komponen ini dibahas di langkah berikutnya.
Jika Anda perlu mempertahankan Rahasia
git-creds
, lakukan sekarang:kubectl -n config-management-system get secret git-creds -o yaml
Hapus namespace
config-management-system
:kubectl delete ns config-management-system
Hapus namespace
config-management-monitoring
:kubectl delete ns config-management-monitoring
Hapus ConfigManagement CustomResourceDefinition:
kubectl delete crd configmanagements.configmanagement.gke.io
RBAC Pengontrol Kebijakan dan izin
Pengontrol Kebijakan mencakup workload dengan hak istimewa tinggi. Izin akses untuk workload ini tercakup dalam Buka Pemilah Komunikasi Agen Kebijakan dokumentasi operasi.
Permintaan resource Pengontrol Kebijakan
Tabel berikut mencantumkan persyaratan resource Kubernetes untuk
setiap versi Pengontrol Kebijakan yang didukung. Sumber daya
permintaan untuk ConfigManagement Operator hanya berlaku jika Anda menginstal
Pengontrol Kebijakan melalui objek ConfigManagement
.
Komponen | CPU | Memori |
---|---|---|
Operator ConfigManagement | 100 m | 100 Mil |
Pengontrol Kebijakan | 100 m | 256 Mil |
Langkah selanjutnya
- Pelajari Pengontrol Kebijakan lebih lanjut.
- Pelajari paket Pengontrol Kebijakan lebih lanjut.
- Pelajari cara membuat batasan.
- Memecahkan Masalah Pengontrol Kebijakan.