Halaman ini berisi informasi tentang konsep yang terkait dengan Otorisasi Biner.
Kebijakan
Kebijakan Otorisasi Biner, yang juga dikenal sebagai kebijakan singleton project, adalah sekumpulan aturan yang mengatur deployment image container.
Validasi berkelanjutan (CV), menggunakan jenis kebijakan yang berbeda, yang disebut kebijakan platform.
Kebijakan memiliki bagian berikut:
Anda dapat mengonfigurasi kebijakan menggunakan salah satu opsi berikut:
- Google Cloud console
- Perintah
gcloud
Saat menggunakan perintah gcloud
, Anda mengekspor dan mengubah definisi kebijakan dalam format YAML sebelum mengimpornya kembali ke project Anda. Format YAML
mencerminkan struktur internal kebijakan dalam penyimpanan Otorisasi Biner.
Untuk mengetahui informasi selengkapnya tentang format ini, lihat
Referensi YAML Kebijakan.
Setiap project Google Cloud dapat memiliki tepat satu kebijakan. Anda harus mengonfigurasi kebijakan di project tempat Anda menjalankan platform deployment. Dalam konfigurasi satu project, kebijakan dan semua resource subordinat—pengesah dan pengesahan—berada di project yang sama. Untuk menerapkan pemisahan tugas, Anda dapat menggunakan konfigurasi multi-project. Dalam konfigurasi ini, platform deployment dapat berjalan dalam satu project, pengesah dapat berada dalam project lain, dan pengesahan dapat berada dalam project lain lagi.
Untuk menyiapkan dan menggunakan Binary Authorization di platform yang didukung, lihat Menyiapkan menurut platform.
Lihat contoh penyiapan multi-project untuk GKE.
Aturan
Saat mengonfigurasi kebijakan, Anda menentukan aturannya. Aturan menentukan batasan yang harus dipenuhi gambar sebelum dapat di-deploy. Kebijakan memiliki satu aturan default dan dapat memiliki aturan spesifik, bergantung pada platform. Untuk mengetahui informasi selengkapnya, lihat Jenis aturan yang didukung menurut platform.
Setiap aturan dapat dikonfigurasi dengan mode evaluasi dan mode penerapan, misalnya, aturan dapat mewajibkan image memiliki pengesahan yang ditandatangani sebelum dapat di-deploy.
Aturan default
Setiap kebijakan memiliki aturan default. Aturan ini berlaku untuk setiap permintaan deployment yang tidak cocok dengan aturan tertentu. Dalam file YAML kebijakan, aturan default ditentukan di node defaultAdmissionRule
.
Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi aturan default, lihat Mengonfigurasi kebijakan.
Aturan spesifik
Satu atau beberapa aturan spesifik dapat ditambahkan ke kebijakan. Jenis aturan ini berlaku untuk image yang akan di-deploy ke cluster, akun layanan, atau identitas tertentu. Dukungan untuk aturan tertentu bervariasi menurut platform. Untuk mengetahui informasi selengkapnya, lihat Jenis aturan yang didukung menurut platform.
Dalam file YAML kebijakan, setiap aturan khusus cluster ditentukan dalam
node clusterAdmissionRule
.
Jenis aturan yang didukung menurut platform
Tabel berikut menunjukkan jenis aturan yang didukung untuk setiap platform deployment.
Platform | Aturan default | Aturan spesifik |
---|---|---|
GKE | Didukung | Cluster Namespace Kubernetes Akun Layanan Kubernetes |
Cloud Run | Didukung | Tidak didukung |
Cluster terpasang GKE | Didukung | Cluster Namespace Kubernetes Akun Layanan Kubernetes |
GKE di AWS | Didukung | Cluster Namespace Kubernetes Akun Layanan Kubernetes |
Google Distributed Cloud | Didukung | Cluster Namespace Kubernetes Akun Layanan Kubernetes |
Google Distributed Cloud | Didukung | Cluster Namespace Kubernetes Akun Layanan Kubernetes |
Mesh Layanan Cloud | Didukung | Identitas Layanan Cloud Service Mesh |
Mode evaluasi
Setiap aturan memiliki mode evaluasi yang menentukan jenis batasan yang diterapkan Otorisasi Biner untuk aturan tersebut. Mode evaluasi untuk aturan
ditentukan menggunakan properti
evaluationMode
dalam file YAML kebijakan.
Ada tiga mode evaluasi:
- Izinkan semua gambar: mengizinkan semua gambar di-deploy.
- Jangan izinkan semua gambar: tidak mengizinkan semua gambar di-deploy.
- Mewajibkan pengesahan: mewajibkan penanda tangan menandatangani secara digital ringkasan image dan membuat pengesahan sebelum deployment. Pada waktu deployment, penegak Binary Authorization menggunakan pengesah untuk memverifikasi tanda tangan dalam pengesahan sebelum men-deploy image terkait.
Mode penerapan
Setiap aturan juga memiliki mode penerapan, yang menentukan tindakan yang dilakukan oleh GKE saat image tidak sesuai dengan aturan. Aturan dapat memiliki mode penerapan berikut:
Blokir dan Audit Log: Memblokir deployment gambar yang tidak sesuai dengan aturan dan menulis pesan ke log audit untuk menunjukkan alasan gambar tidak di-deploy.
Uji Coba: Hanya Log Audit: Mode uji coba adalah mode penerapan dalam kebijakan yang memungkinkan image yang tidak sesuai di-deploy, tetapi menulis detail tentang deployment ke Cloud Audit Logs. Mode uji coba memungkinkan Anda menguji kebijakan, misalnya di lingkungan produksi, sebelum penegakan benar-benar berlaku.
Sebagian besar aturan produksi menggunakan mode penerapan Blokir dan Log Audit. Uji Coba: Hanya Log Audit terutama digunakan untuk menguji kebijakan di lingkungan Anda sebelum diterapkan.
Mode penerapan untuk aturan ditentukan menggunakan
properti enforcementMode
dalam
file YAML kebijakan.
Lihat Melihat log audit (GKE, Google Distributed Cloud, Cloud Service Mesh) atau Melihat log audit (Cloud Run) untuk mengetahui informasi selengkapnya tentang pesan yang ditulis ke Cloud Audit Logs.
Validasi Berkelanjutan
Validasi Berkelanjutan (CV) adalah fitur Otorisasi Biner yang secara berkala memeriksa image yang terkait dengan Pod yang sedang berjalan untuk memastikan kesesuaian kebijakan yang berkelanjutan.
Mengecualikan gambar
Gambar yang dikecualikan adalah gambar yang dikecualikan dari aturan kebijakan.
Otorisasi Biner selalu mengizinkan image yang dikecualikan untuk di-deploy. Setiap project memiliki daftar yang diizinkan untuk image yang dikecualikan yang ditentukan oleh jalur registri. Gambar di jalur
gcr.io/google_containers/*
, k8s.gcr.io/**
, dan jalur tambahan dikecualikan secara
default, karena berisi resource yang diperlukan agar GKE
dapat memulai cluster dengan berhasil saat kebijakan default aktif.
Untuk menambahkan gambar yang dikecualikan ke daftar yang diizinkan, tambahkan berikut ke file kebijakan:
admissionWhitelistPatterns: - namePattern: EXEMPT_IMAGE_PATH
Ganti EXEMPT_IMAGE_PATH
dengan jalur ke gambar yang akan dikecualikan. Untuk mengecualikan gambar tambahan, tambahkan entri - namePattern
tambahan. Pelajari admissionWhitelistPatterns
lebih lanjut.
Pola daftar yang diizinkan
Untuk memasukkan semua image yang lokasi registrinya cocok dengan jalur yang ditentukan ke dalam daftar yang diizinkan:
gcr.io/example-project/*
Untuk memasukkan semua gambar yang lokasi registrinya adalah subdirektori dari jalur yang ditentukan (mis. gcr.io/example-project/my-directory/helloworld
) ke dalam daftar yang diizinkan:
gcr.io/example-project/**
Untuk memasukkan gambar tertentu ke dalam daftar yang diizinkan:
gcr.io/example-project/helloworld
Untuk memasukkan versi image tertentu ke daftar yang diizinkan menurut tag:
gcr.io/example-project/helloworld:latest gcr.io/example-project/helloworld:my-tag
Untuk memasukkan semua versi dan tag gambar ke daftar yang diizinkan:
gcr.io/example-project/helloworld@*
Untuk memasukkan versi tertentu dari image ke daftar yang diizinkan berdasarkan ringkasannya:
gcr.io/example-project/helloworld@sha256:77b0b75136b9bd0fd36fb50f4c92ae0dbdbbe164ab67885e736fa4374e0cbb8c
Pelajari lebih lanjut cara menggunakan ringkasan image container.
Pelajari cara mengelola gambar yang dikecualikan di konsolGoogle Cloud , menggunakan alat command line, atau menggunakan REST API.
Image sistem yang dikelola Google
Percayai semua image sistem yang dikelola Google menyebabkan Otorisasi Biner mengecualikan daftar image sistem yang dikelola Google dari evaluasi kebijakan lebih lanjut. Jika Anda mengaktifkan setelan ini, gambar yang diperlukan oleh GKE tidak akan diblokir oleh penerapan kebijakan. Kebijakan sistem dievaluasi sebelum dan selain evaluasi kebijakan pengguna.
Anda dapat mengaktifkan atau menonaktifkan setelan ini menggunakan
properti globalPolicyEvaluationMode
dalam file YAML kebijakan. Anda dapat melihat isi kebijakan sistem menggunakan perintah berikut:
gcloud alpha container binauthz policy export-system-policy
Pengesahan
Pengesahan adalah dokumen digital yang mengesahkan gambar. Selama deployment, Otorisasi Biner memverifikasi pengesahan sebelum mengizinkan image di-deploy.
Proses pembuatan pengesahan terkadang disebut menandatangani image. Pengesahan dibuat setelah image dibangun. Setiap gambar tersebut memiliki ringkasan yang unik secara global. Penanda tangan menandatangani ringkasan gambar menggunakan kunci pribadi dari pasangan kunci dan menggunakan tanda tangan untuk membuat pengesahan. Pada waktu deployment, penguat Otorisasi Biner menggunakan kunci publik attestor untuk memverifikasi tanda tangan dalam pengesahan. Biasanya, satu pengesah sesuai dengan tepat satu penanda tangan.
Pengesahan menandakan bahwa gambar terkait dibuat dengan berhasil menjalankan proses tertentu yang diperlukan. Misalnya, jika penandatangan adalah perwakilan dari fungsi penjaminan kualitas (QA) Anda, pengesahan dapat menunjukkan bahwa image telah lulus semua pengujian fungsional end-to-end yang diperlukan di lingkungan staging.
Untuk mengaktifkan pengesahan di Otorisasi Biner, evaluationMode
kebijakan Anda
harus ditetapkan ke REQUIRE_ATTESTATION
.
Pelajari cara membuat dan menggunakan pengesah dan pengesahan.
Penanda Tangan
Penanda tangan adalah orang atau proses otomatis yang membuat pengesahan dengan menandatangani deskriptor gambar unik menggunakan kunci pribadi. Pengesahan diverifikasi pada waktu deployment oleh kunci publik yang sesuai yang disimpan di pengesah sebelum image terkait di-deploy.
Pelajari cara membuat dan menggunakan pengesah dan pengesahan.
Attestor
Pengesah adalah Google Cloud resource yang digunakan Otorisasi Biner untuk memverifikasi pengesahan pada waktu deployment image. Pengesah berisi kunci publik yang sesuai dengan kunci pribadi yang digunakan oleh penanda tangan untuk menandatangani ringkasan image dan membuat pengesahan. Enforcer Binary Authorization menggunakan pengesah pada waktu deployment untuk membatasi gambar yang diizinkan di-deploy hanya pada gambar yang memiliki pengesahan yang menyertainya dan dapat diverifikasi yang dibuat sebelum deployment.
Pengesah sering kali dikelola oleh personel operasi keamanan yang juga mengelola pasangan kunci publik dan pribadi, sedangkan penanda tangan biasanya adalah engineer software atau personel QA atau kepatuhan DevOps yang bertanggung jawab untuk membuat image yang dapat di-deploy, menandatanganinya dengan kunci pribadi, dan membuat pengesahan sebelum mencoba men-deploy-nya.
Attestor memiliki:
- Catatan Artifact Analysis yang sesuai
- Satu atau beberapa kunci publik kriptografi yang sesuai dengan kunci pribadi yang digunakan penanda tangan untuk membuat pengesahan.
Saat Anda menyiapkan kebijakan yang berisi aturan Wajibkan Pengesahan, Anda
harus menambahkan pengesah untuk setiap orang atau proses yang diwajibkan untuk memverifikasi
bahwa gambar siap di-deploy. Anda dapat menambahkan pengesah menggunakan
konsol Google Cloud , antarmuka gcloud
, atau Binary Authorization REST
API.
Pelajari cara membuat dan menggunakan pengesah dan pengesahan.
Kunci kriptografi
Otorisasi Biner menggunakan tanda tangan digital untuk memverifikasi image pada waktu deployment saat kebijakan berisi aturan Wajibkan Pengesahan.
Pasangan kunci akan dibuat. Kunci pribadi digunakan oleh penanda tangan untuk menandatangani deskriptor gambar. Tindakan ini akan membuat pengesahan.
Kemudian, pengesah dibuat dan disimpan dalam kebijakan. Kunci publik yang sesuai dengan kunci pribadi yang digunakan untuk penandatanganan diupload dan dilampirkan ke pengesah.
Saat upaya dilakukan untuk men-deploy image, Otorisasi Biner menggunakan pengesah dalam kebijakan untuk memverifikasi pengesahan image. Jika pengesahan dapat diverifikasi, image akan di-deploy.
Otorisasi Biner mendukung dua jenis kunci:
- Infrastruktur Kunci Publik (X.509) (PKIX)
- PGP
Kunci PKIX dapat disimpan secara lokal, eksternal, atau di Cloud Key Management Service.
Buat kunci kriptografis dan pengesah.
Catatan Artifact Analysis
Otorisasi Biner menggunakan Artifact Analysis untuk menyimpan metadata tepercaya yang digunakan dalam proses otorisasi. Untuk setiap pengesah yang Anda buat, Anda harus membuat satu catatan Analisis Artefak. Setiap pengesahan disimpan sebagai kemunculan catatan ini.
Saat mengevaluasi aturan yang mewajibkan pengesah telah memverifikasi image, Otorisasi Biner akan memeriksa penyimpanan Artifact Analysis untuk melihat apakah pengesahan yang diperlukan ada.