Halaman ini menunjukkan cara menjalankan workload dengan hak istimewa dari partner Autopilot Google Kubernetes Engine (GKE). Anda akan mempelajari cara menyiapkan workload sinkronisasi yang menginstal daftar yang diizinkan di cluster dan terus memperbarui daftar yang diizinkan.
Halaman ini ditujukan untuk jenis peran berikut:
- Engineer keamanan yang ingin memastikan bahwa workload pihak ketiga memerlukan daftar yang diizinkan untuk berjalan di cluster Anda dan berasal dari sumber yang disetujui GKE.
- Engineer platform yang ingin mengaktifkan beban kerja pihak ketiga di cluster untuk berhenti memblokir tim aplikasi.
Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam dokumentasi, lihat Peran dan tugas pengguna GKE Enterprise umum.
Sebelum membaca halaman ini, pastikan Anda memahami hal-hal berikut:
Tentang workload partner dengan hak istimewa di Autopilot
GKE memungkinkan sebagian partner yang disetujui untuk menjalankan workload dengan hak istimewa di cluster Autopilot. Workload dengan hak istimewa ini dapat mengabaikan beberapa batasan keamanan yang diterapkan Autopilot. Misalnya, partner mungkin perlu menjalankan beban kerja yang menggunakan kemampuan Linux tertentu atau memerlukan penampung dengan hak istimewa.
Partner membuat dan mengelola daftar yang diizinkan untuk workload dengan hak istimewa mereka. Setiap daftar yang diizinkan adalah file yang cocok dengan workload partner dengan hak istimewa tertentu. Partner mengirimkan file daftar yang diizinkan ini ke GKE untuk mendapatkan persetujuan. Setelah disetujui, GKE akan menghosting file daftar yang diizinkan di repositori yang dikelola Google.
Untuk menjalankan workload partner, Anda harus menginstal file daftar yang diizinkan yang sesuai di
cluster. GKE menyediakan resource kustom Kubernetes bernama
AllowlistSynchronizer
yang menginstal daftar yang diizinkan dan terus memperbaruinya.
Setelah daftar yang diizinkan berhasil diinstal, Anda dapat men-deploy beban kerja partner dengan hak istimewa
yang sesuai.
Bug dan permintaan fitur untuk workload dan daftar yang diizinkan dengan hak istimewa
Partner bertanggung jawab untuk membuat, mengembangkan, dan mengelola workload dan daftar yang diizinkan dengan hak istimewa. Jika Anda menemukan bug atau memiliki permintaan fitur untuk workload dengan hak istimewa atau daftar yang diizinkan, hubungi partner yang sesuai.
Tentang pengontrol AllowlistSynchronizer
AllowlistSynchronizer
adalah pengontrol yang berjalan di bidang kontrol GKE Anda. Anda men-deploy AllowlistSynchronizer
baru sebagai manifes YAML,
serupa dengan cara men-deploy workload Kubernetes lainnya. Dalam manifes, Anda
menentukan jalur ke file daftar yang diizinkan yang ingin diinstal, yang Anda dapatkan
dari partner pihak ketiga. Sinkroniser menemukan file daftar yang diizinkan partner di repositori yang dikelola Google dan menginstal daftar yang diizinkan di cluster Anda.
Setiap 10 menit, sinkronisasi akan memeriksa pembaruan pada file daftar yang diizinkan. Jika ada update, sinkronisasi akan menginstal daftar yang diizinkan yang diperbarui di cluster Anda.
Untuk berhenti mengizinkan workload tertentu, perbarui AllowlistSynchronizers yang ada untuk menghapus jalur file daftar yang diizinkan yang sesuai, lalu hapus objek WorkloadAllowlist
dari . Jika Anda menghapus objek
WorkloadAllowlist
yang diinstal tanpa menghapus jalur dari sinkronisasi
daftar yang diizinkan, sinkronisasi akan menginstal ulang daftar yang diizinkan. Partner tidak dapat menghapus
file yang diizinkan dari repositori yang dikelola Google.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
Persyaratan
- Resource kustom
AllowlistSynchronizer
memerlukan GKE versi 1.32.1-gke.1729000 atau yang lebih baru. - Anda harus mengetahui workload partner yang ingin dijalankan di cluster. Periksa dokumentasi partner Anda untuk mengetahui petunjuk menginstal beban kerja istimewa.
Membuat AllowlistSynchronizer
baru
Untuk menjalankan beban kerja dengan hak istimewa dari partner, Anda menambahkan jalur ke
file daftar yang diizinkan yang sesuai ke resource kustom AllowlistSynchronizer
. Kemudian, Anda
akan men-deploy AllowlistSynchronizer ke cluster.
- Di editor teks, buat file YAML baru.
Tambahkan konten berikut ke file YAML:
apiVersion: auto.gke.io/v1 kind: AllowlistSynchronizer metadata: name: ALLOWLIST_SYNCHRONIZER_NAME spec: allowlistPaths: - ALLOWLIST1_PATH - ALLOWLIST2_PATH
Ganti kode berikut:
ALLOWLIST_SYNCHRONIZER_NAME
: nama sinkronisasi baru. Pilih nama deskriptif yang mengidentifikasi workload atau tim yang didukung daftar yang diizinkan.ALLOWLIST1_PATH, ALLOWLIST2_PATH, ...
: satu atau beberapa jalur ke file daftar yang diizinkan partner untuk diinstal. Periksa dokumentasi untuk beban kerja partner yang Anda pilih untuk jalur ini. Anda dapat menentukan seluruh direktori atau file individual.
Deploy file YAML ke cluster Anda:
kubectl apply -f PATH_TO_YAML_FILE
Ganti
PATH_TO_YAML_FILE
dengan jalur ke file YAML yang Anda buat di langkah sebelumnya.Pengontrol
AllowlistSynchronizer
menginstal file daftar yang diizinkan dari jalur yang ditentukan di cluster Anda.Tunggu hingga sinkronisasi melaporkan status
Ready
:kubectl wait --for-condition=Ready allowlistsynchronizer/ALLOWLIST_SYNCHRONIZER_NAME \ --timeout=60s
Anda juga dapat mengintegrasikan deployment workload partner ke dalam pipeline continuous integration dan continuous deployment (CI/CD). Konfigurasikan alur kerja Anda untuk menunggu hingga daftar yang diizinkan berhasil diinstal sebelum men-deploy beban kerja yang sesuai.
Memperbarui AllowlistSynchronizer yang ada
Anda dapat memperbarui AllowlistSynchronizer yang ada untuk menambahkan atau menghapus file daftar yang diizinkan. Anda dapat memperbarui sinkroniser yang ada dalam situasi seperti berikut:
- Partner menambahkan file daftar yang diizinkan baru yang memiliki nama berbeda.
- Anda ingin menambahkan daftar yang diizinkan beban kerja baru ke sinkroniser yang ada yang mengelompokkan daftar yang diizinkan terkait.
- Anda ingin menghapus daftar yang diizinkan dari sinkroniser karena tidak ingin lagi menggunakan beban kerja yang sesuai.
Untuk memperbarui objek AllowlistSynchronizer
yang ada, lakukan hal berikut:
Cantumkan sinkronisasi yang ada di cluster Anda:
kubectl get allowlistsynchronizer
Buka spesifikasi sinkronisasi yang ingin Anda perbarui di editor teks.
Perbarui kolom
spec.allowlistPaths
untuk menambahkan, mengubah, atau menghapus jalur file daftar yang diizinkan.Simpan dan tutup editor teks.
Terapkan konfigurasi yang telah diperbarui ke cluster:
kubectl apply -f PATH_TO_YAML_FILE
Ganti
PATH_TO_YAML_FILE
dengan jalur ke file YAML yang Anda perbarui di langkah sebelumnya.
Saat Anda men-deploy konfigurasi sinkronisasi yang diperbarui, kolom managedAllowlistStatus.generation
dalam status objek AllowlistSynchronizer
akan bertambah satu. Pengontrol AllowlistSynchronizer
kemudian akan menerapkan perubahan Anda.
Memantau status sinkronisasi daftar yang diizinkan
Setelah menginstal AllowlistSynchronizer
atau mengupdate sinkroniser yang ada,
Anda dapat memantau status sinkronisasi. Status ini membantu Anda melacak
penginstalan, penghapusan, atau perubahan file daftar yang diizinkan serta error
yang mungkin terjadi.
Untuk memantau status umum sinkronisasi, jalankan perintah berikut:
kubectl get allowlistsynchronizer ALLOWLIST_SYNCHRONIZER_NAME -o yaml
Outputnya mirip dengan hal berikut ini:
...
status:
conditions:
- type: Ready
status: "False"
reason: "SyncError"
message: "some allowlists failed to sync: example-allowlist-1.yaml"
lastTransitionTime: "2024-10-12T10:00:00Z"
observedGeneration: 2
managedAllowlistStatus:
- filePath: "gs://path/to/allowlist1.yaml"
generation: 1
phase: Installed
lastSuccessfulSync: "2024-10-10T10:00:00Z"
- filePath: "gs://path/to/allowlist2.yaml"
phase: Failed
lastError: "Initial install failed: invalid contents"
lastSuccessfulSync: "2024-10-08T10:00:00Z"
Untuk deskripsi kolom ini, lihat
status AllowlistSynchronizer
.
Memastikan daftar yang diizinkan ada di cluster Anda
Untuk memverifikasi bahwa daftar yang diizinkan ada di cluster Anda, jalankan perintah berikut:
kubectl get workloadallowlist
Output-nya adalah daftar daftar yang diizinkan yang diinstal di cluster. Pastikan output menyertakan daftar yang diizinkan yang ingin Anda gunakan.
Men-deploy workload dengan hak istimewa
Setelah daftar yang diizinkan berhasil diinstal, Anda dapat men-deploy beban kerja yang sesuai di cluster. Partner yang menyediakan workload juga harus memberikan petunjuk penginstalan untuk workload tersebut kepada Anda. Untuk mengetahui daftar partner Autopilot dan link ke dokumentasi mereka, lihat Partner Autopilot.
Menghapus workload dengan hak istimewa
Untuk berhenti mengizinkan workload dengan hak istimewa berjalan di cluster, hapus jalur ke daftar yang diizinkan yang sesuai dari AllowlistSynchronizer Anda. Sinkronisasi akan meng-uninstal daftar yang diizinkan.
Jika Anda menghapus objek WorkloadAllowlist
dari cluster, bukan
mengupdate sinkronisasi, sinkronisasi akan menginstal ulang daftar yang diizinkan. Pastikan
Anda menghapus jalur dari AllowlistSynchronizer
.
Untuk meng-uninstal daftar yang diizinkan, lakukan langkah berikut:
- Dalam manifes YAML untuk
AllowlistSynchronizer
yang mengelola daftar yang diizinkan, hapus jalur ke daftar yang diizinkan yang ingin Anda uninstal. Untuk mendapatkan petunjuk, lihat Memperbarui bagian AllowlistSynchronizer yang ada. Untuk memverifikasi bahwa daftar yang diizinkan telah di-uninstal, dapatkan daftar objek
WorkloadAllowlist
di cluster Anda:kubectl get workloadallowlist
Dalam output, pastikan daftar yang diizinkan yang ingin Anda hapus tidak muncul.
Hapus workload dari cluster Anda. Untuk mengetahui petunjuknya, lihat dokumentasi penyedia workload.
Mencegah penginstalan daftar yang diizinkan di cluster Anda
Untuk mencegah penginstalan daftar yang diizinkan workload dengan hak istimewa di cluster tertentu, gunakan ValidatingAdmissionPolicy. Memvalidasi kebijakan penerimaan memastikan bahwa resource Kubernetes memenuhi kriteria tertentu sebelum diizinkan untuk berjalan di cluster. Misalnya, Anda dapat memvalidasi bahwa label memiliki nilai tertentu.
Untuk mencegah penginstalan daftar yang diizinkan di cluster, lakukan hal berikut:
Simpan manifes ValidatingAdmissionPolicy berikut sebagai
disallow-allowlists.yaml
:apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicy metadata: name: "disallow-allowlists" spec: failurePolicy: Fail matchConstraints: resourceRules: - apiGroups: ["auto.gke.io"] apiVersions: ["*"] operations: ["*"] resources: ["allowlistsynchronizers"] validations: - expression: "false" message: 'AllowlistSynchronizer creation is not allowed'
Simpan manifes ValidatingAdmissionPolicyBinding berikut sebagai
disallow-allowlists-binding.yaml
:apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicyBinding metadata: name: "disallow-allowlists-binding" spec: policyName: "disallow-allowlists" validationActions: [Deny]
Deploy ValidatingAdmissionPolicy di cluster Anda:
kubectl apply -f disallow-allowlists.yaml kubectl apply -f disallow-allowlists-binding.yaml
Kebijakan ini mencegah pembuatan AllowlistSynchronizers baru di cluster.
Memecahkan masalah
Jika sinkronisasi atau deployment workload gagal, lihat Memecahkan masalah deployment workload Autopilot dengan hak istimewa.
Langkah berikutnya
- Partner Autopilot GKE
- Kemampuan keamanan GKE Autopilot
- Definisi resource kustom AllowlistSynchronizer