Validasi berkelanjutan (CV) dengan kebijakan platform berbasis pemeriksaan adalah fitur Otorisasi Biner yang memungkinkan Anda memantau Pod yang berjalan di Google Kubernetes Engine (GKE) untuk memastikan bahwa image container terkaitnya terus mematuhi kebijakan platform berbasis pemeriksaan Otorisasi Biner yang Anda tentukan.
Saat CV menentukan bahwa Pod melanggar kebijakan platform, CV akan mencatat pelanggaran tersebut ke Cloud Logging.
CV dengan kebijakan platform menggantikan validasi berkelanjutan lama (tidak digunakan lagi).
Mengapa menggunakan CV?
Meskipun penerapan Otorisasi Biner memberikan validasi image satu kali saat Anda men-deploy image container, CV terus memantau bahwa image yang terkait dengan Pod yang sedang berjalan terus mematuhi kebijakan Anda.
Oleh karena itu, saat mengaktifkan penegakan Otorisasi Biner dan CV dengan kebijakan berbasis pemeriksaan, Anda dapat memastikan bahwa kepatuhan terhadap kebijakan divalidasi di seluruh siklus proses orkestrasi.
CV berguna dalam skenario berikut:
Perubahan kebijakan: Saat Anda memperbarui kebijakan penerapan project-singleton Otorisasi Biner, Otorisasi Biner hanya memvalidasi image yang di-deploy setelah pembaruan. Pod yang sudah berjalan tidak akan terpengaruh. Image tersebut akan terus berjalan meskipun Otorisasi Biner, menggunakan kebijakan yang diperbarui, kini akan memblokir deployment image yang sama.
Oleh karena itu, saat Anda mengupdate kebijakan project-singleton Otorisasi Biner, sebaiknya Anda juga membuat atau mengupdate kebijakan platform CV agar sesuai dengan kebijakan project-singleton. Dengan begitu, CV akan memberi tahu Anda tentang Pod yang sedang berjalan dan melanggar kebijakan yang telah diperbarui.
Memantau metadata gambar: CV menyediakan pemeriksaan khusus untuk perubahan metadata gambar, termasuk yang berikut ini:
- Pengesahan: Mencatat log CV saat pengesahan pada image Pod tidak lagi valid.
- Kualitas: CV mencatat log saat mendeteksi bahwa gambar Pod tidak lagi berkualitas.
- Provenans: CV dapat memeriksa apakah image Pod dibuat dengan builder tepercaya, menggunakan konfigurasi build yang ada di repositori sumber tepercaya.
- Tanda tangan Sigstore: Mencatat log CV saat pada image Pod tidak memiliki tanda tangan Sigstore yang valid.
- Direktori tepercaya: CV mencatat log saat image Pod berada di direktori repositori yang tidak tercantum dalam kebijakan platform Anda.
- Kerentanan: CV mencatat saat kerentanan diidentifikasi dalam image Pod.
Pemantauan uji coba: Saat Anda mengaktifkan uji coba, Otorisasi Biner mengizinkan semua image di-deploy. Dengan mengaktifkan CV menggunakan kebijakan platform yang cocok dengan kebijakan singleton project Anda, CV akan mencatat image yang melanggar kebijakan platform secara rutin.
Pemantauan breakglass: Saat Anda men-deploy Pod menggunakan breakglass, Binary Authorization akan melewati penerapan kebijakan singleton project dan mencatat satu peristiwa ke Cloud Audit Logs. Namun, dengan menggunakan kebijakan platform yang cocok, CV terus mencatat Pod yang melanggar kebijakan secara rutin, termasuk Pod yang di-deploy menggunakan breakglass.
Cara kerja CV
Untuk menggunakan CV, Anda harus mengaktifkannya di cluster GKE Anda.
Setelah Anda men-deploy image di cluster, CV memantau Pod terkait untuk memastikan kesesuaiannya dengan kebijakan platform berbasis pemeriksaan Anda.
CV tidak mendukung tag gambar, selain yang ditentukan dalam gambar yang dikecualikan.
CV secara rutin meninjau Pod yang sedang berjalan
Untuk memantau Pod yang sedang berjalan, CV meninjau gambar yang terkait dengan setiap Pod setidaknya setiap 24 jam. CV juga memantau container init dan container sementara.
Selama setiap peninjauan, CV mengambil daftar gambar yang terkait dengan setiap Pod. Kemudian, CV memverifikasi bahwa informasi gambar memenuhi kebijakan platform.
CV mencatat pelanggaran kebijakan platform
Saat CV menentukan bahwa gambar melanggar kebijakan platform, CV akan mencatat pelanggaran dan temuan lainnya ke Cloud Logging. Entri log terpisah ditulis untuk setiap kebijakan platform yang dilanggar, untuk setiap Pod.
Saat CV mengevaluasi gambar Pod menggunakan kebijakan platform, gambar tersebut mungkin memenuhi beberapa pemeriksaan dan melanggar pemeriksaan lainnya. CV menghasilkan entri log setiap kali ada gambar Pod yang melanggar pemeriksaan. Entri log hanya berisi image Pod yang melanggar kebijakan platform. Jika semua gambar memenuhi semua pemeriksaan, tidak ada entri log yang dihasilkan.
CV terus mencatat pelanggaran kebijakan hingga Pod dengan gambar yang tidak sesuai kebijakan dihentikan. Jika Pod yang tidak sesuai kebijakan dihentikan selama interval antara validasi, entri log yang dihasilkan CV terakhir dapat muncul setelah penghentian, selama evaluasi CV berikutnya.
Pod yang tidak sesuai kebijakan harus dicatat setidaknya sekali, bahkan untuk Pod yang berumur pendek.
CV tidak menghentikan Pod yang sedang berjalan.
CV menggunakan resource feed
Untuk mengambil informasi tentang Pod yang berjalan di cluster GKE Anda,
CV membuat resource feed yang disebut binauthz-cv-cai-feed.
Kebijakan platform CV
Untuk menggunakan CV, Anda harus mengonfigurasi kebijakan platform terlebih dahulu.
Kebijakan platform berbeda dengan kebijakan Otorisasi Biner lama, yang juga disebut kebijakan singleton project. Meskipun project deployment hanya dapat memiliki satu kebijakan project singleton lama, Anda dapat mengonfigurasi beberapa kebijakan platform. Setiap kebijakan platform dapat berada di satu atau beberapa project.
Kebijakan platform hanya berfungsi dengan CV dan tidak mendukung penerapan Otorisasi Biner. Oleh karena itu, sebaiknya jika Anda ingin menggunakan penegakan Otorisasi Biner dan pemantauan CV, buat kebijakan singleton project untuk penegakan dan kebijakan platform untuk pemantauan.
Misalnya, Anda ingin mengonfigurasi Otorisasi Biner untuk mewajibkan image Anda memiliki pengesahan sebelum diizinkan untuk di-deploy, dan Anda juga ingin memastikan bahwa Pod yang berjalan sesuai dengan persyaratan yang sama. Untuk melakukannya, Anda mengonfigurasi kebijakan penerapan singleton project dengan pengesah. Kemudian, Anda membuat kebijakan platform dengan pemeriksaan pengesahan penandatanganan sederhana. yang memiliki pengautentikasi berdasarkan catatan dan kunci publik yang sama dengan pengesah.
Kebijakan platform bersifat spesifik per platform. GKE adalah satu-satunya platform yang didukung.
Anda dapat mengonfigurasi pemeriksaan di kebijakan platform. Pemeriksaan dikelompokkan ke dalam satu atau beberapa set pemeriksaan. Setiap set pemeriksaan dapat menentukan satu atau beberapa pemeriksaan.
Kebijakan platform dapat mengecualikan gambar dari evaluasi oleh CV.
Izin yang diperlukan
Untuk mencantumkan atau mendeskripsikan kebijakan platform, Anda memerlukan peran
binaryauthorization.policyViewer. Untuk membuat, mengubah, dan menghapus kebijakan platform, Anda memerlukan peran binaryauthorization.policyEditor.
Untuk mengetahui informasi selengkapnya, lihat Mengelola kebijakan platform.
Pembaruan kebijakan
Memperbarui kebijakan platform akan menggantikan kebijakan yang ada dengan deskriptor kebijakan yang Anda berikan dalam file YAML. Untuk menambahkan pemeriksaan baru ke kebijakan platform yang ada, sebaiknya Anda mendeskripsikan kebijakan yang ada, menyimpannya ke file YAML, menambahkan pemeriksaan baru, lalu memperbarui kebijakan menggunakan file yang telah diperbarui.
Kebijakan multiplatform
Anda dapat membuat kebijakan platform di project yang sama dengan cluster (kebijakan platform lokal) atau di project lain.
Karena Anda dapat mengonfigurasi sejumlah kebijakan platform, Anda harus memberi nama setiap kebijakan dengan nama resource yang unik. Saat menjalankan perintah gcloud CLI, Anda merujuk ke
kebijakan platform lokal menggunakan ID-nya. Saat merujuk ke kebijakan platform di
project lain, Anda menggunakan nama resource, dalam format berikut:
projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID
Anda dapat memilih kebijakan platform mana yang akan dikaitkan dengan setiap cluster GKE, baik kebijakan platform lokal maupun kebijakan di project yang berbeda.
Beberapa pemeriksaan per kebijakan platform
Anda dapat mengonfigurasi beberapa pemeriksaan dalam setiap kebijakan platform dengan menambahkannya ke blok
checks kebijakan. Untuk mempelajari lebih lanjut pemeriksaan tertentu yang dapat Anda konfigurasi, lihat pemeriksaan.
Jika kebijakan platform CV Anda menentukan lebih dari satu pemeriksaan, gambar yang dievaluasi oleh satu pemeriksaan akan terus dievaluasi oleh pemeriksaan lainnya.
Otorisasi Biner mengevaluasi semua pemeriksaan yang dikonfigurasi dalam kebijakan platform untuk setiap image, kecuali jika image cocok dengan pola daftar yang diizinkan untuk image yang dikecualikan. Untuk mengetahui informasi selengkapnya, lihat Mengecualikan gambar.
Penyiapan project tunggal
Anda dapat menyiapkan CV dalam satu project.
Dalam penyiapan satu project, Otorisasi Biner otomatis menyiapkan peran yang diperlukan di agen layanan Otorisasi Biner.
Jika cluster GKE, kebijakan platform yang terikat ke cluster, dan metadata yang diperlukan oleh pemeriksaan semuanya berada dalam project yang sama, tidak ada peran Identity and Access Management (IAM) tambahan yang diperlukan.
Untuk mempelajari lebih lanjut cara mengonfigurasi penyiapan multi-project untuk keamanan tambahan, lihat Pemisahan tugas.
Penyiapan multi-project
Saat Anda mengonfigurasi penyiapan CV multi-project dengan kebijakan platform, kebijakan platform, image, cluster GKE, dan jenis resource lain yang bergantung pada CV dapat berada di project yang berbeda.
Dalam penyiapan multi-project, penting untuk mengetahui tujuan setiap project dan resource yang perlu diakses CV serta menyiapkan peran dan izin IAM yang diperlukan dengan tepat.
Cara menggunakan CV
Untuk menggunakan CV, Anda biasanya melakukan hal berikut:
- Tentukan pemeriksaan yang ingin Anda gunakan.
- Menyusun satu atau beberapa kebijakan platform menggunakan file YAML kebijakan. File menentukan pemeriksaan yang ingin Anda gunakan.
- Buat kebijakan platform. Kebijakan dapat disimpan di project pilihan Anda.
- Pilih apakah akan mengaktifkan CV di cluster individual atau di fleet.
- Periksa log CV di Logging untuk peristiwa.
- Tinjau log dan perbarui build serta proses lainnya untuk menghasilkan gambar yang memenuhi pemeriksaan.
Cek
Bagian ini menjelaskan pemeriksaan spesifik yang disediakan CV.
Kebijakan berbasis pemeriksaan memiliki format kanonis berikut:
gkePolicy:
checkSets:
- checks:
- CHECK_TYPE1:
CHECK_TYPE1_PARAMETERS
displayName: CHECK_TYPE1_DISPLAY_NAME
- CHECK_TYPE2:
CHECK_TYPE2_PARAMETERS
displayName: CHECK_TYPE2_DISPLAY_NAME
displayName: CHECK_SET_DISPLAY_NAME
Kolom displayName di checks dan checkSets bersifat opsional. CV hanya digunakan saat mencatat pelanggaran kebijakan. Hal ini tidak disertakan dalam beberapa contoh di bagian selanjutnya dalam panduan ini.
Pemeriksaan selalu ditolak
Pemeriksaan selalu ditolak menjamin bahwa semua gambar yang tunduk pada pemeriksaan ini gagal dievaluasi. Setiap kali CV meninjau Pod yang sedang berjalan dengan pemeriksaan ini, CV akan menghasilkan entri log untuk setiap Pod.
Anda dapat menggabungkan pemeriksaan selalu ditolak dengan daftar yang diizinkan atau beberapa set pemeriksaan untuk memastikan bahwa Otorisasi Biner selalu menghasilkan log untuk Pod dalam kasus tertentu.
Untuk menggunakan pemeriksaan selalu ditolak, tambahkan alwaysDeny: true di blok checks, seperti
berikut:
gkePolicy:
checkSets:
- displayName: "My check set"
checks:
- alwaysDeny: true
Nilai alwaysDeny tidak dapat ditetapkan ke false. Sebagai gantinya, hapus centang.
Untuk contoh cara penggunaan pemeriksaan selalu ditolak, lihat Menggunakan beberapa set pemeriksaan.
Pemeriksaan keaktualan gambar
Pemeriksaan keaktualan gambar menghitung durasi gambar telah berjalan
dan mencatat saat durasi telah melampaui nilai minimum, maxUploadAgeDays.
Dalam contoh YAML kebijakan platform berikut, CV mencatat Pod dengan image yang diupload ke repositori tempat image tersebut di-deploy lebih dari 30 hari yang lalu.
gkePolicy:
checkSets:
checks:
-