Halaman ini menjelaskan cara mengamankan rantai pasokan software Anda dengan mengonfigurasi Otorisasi Biner untuk hanya mengizinkan image container yang dibuat oleh Cloud Build untuk di-deploy.
Anda mengonfigurasi kontrol deployment ini dengan mewajibkan attestor built-by-cloud-build dalam kebijakan Otorisasi Biner Anda. Cloud Build secara otomatis membuat attestor built-by-cloud-build di project Anda saat Anda menjalankan build yang menghasilkan image. Setelah image berhasil di-build, Cloud Build akan otomatis menandatangani dan membuat pengesahan untuk image tersebut. Pada waktu deployment, Otorisasi Biner memverifikasi pengesahan dengan attestor built-by-cloud-build. Image yang diverifikasi diizinkan untuk di-deploy.
Image yang gagal diverifikasi tidak diizinkan untuk di-deploy, dan kegagalan tersebut dicatat ke Cloud Audit Logs.
Untuk panduan menyeluruh yang menjelaskan cara menggunakan metadata yang direkam Cloud Build dan Otorisasi Biner, lihat Menggunakan asal-usul yang ditandatangani dan Otorisasi Biner.
Sebelum memulai
Untuk menggunakan fitur ini, Anda harus melakukan hal berikut terlebih dahulu:
- Menyiapkan Otorisasi Biner untuk platform Anda.
Menyiapkan Cloud Build dan membuat image.
Mengonfigurasi kebijakan
Di bagian ini, Anda akan mengonfigurasi kebijakan Otorisasi Biner untuk mewajibkan attestor built-by-cloud-build.
Untuk hanya mengizinkan image yang dibuat oleh Cloud Build untuk di-deploy, lakukan langkah-langkah berikut:
Konsol
Buka halaman Binary Authorization di Google Cloud konsol:
Di tab Policy, klik Edit Policy.
Dalam dialog Edit Policy, pilih Allow only images that have been approved by all of the following attestors.
Klik Add Attestors.
Dalam kotak dialog Add attestors, lakukan hal berikut:
- Pilih Add by project and attestor name , lalu lakukan langkah-langkah berikut:
- Di kolom Project name, masukkan project tempat Anda menjalankan Cloud Build.
- Klik kolom Attestor name dan perhatikan bahwa attestor
built-by-cloud-buildtersedia. - Klik
built-by-cloud-build.
Atau, pilih Add by attestor resource ID. Di Attestor resource ID, masukkan
projects/PROJECT_ID/attestors/built-by-cloud-buildGanti
PROJECT_IDdengan project tempat Anda menjalankan Cloud Build.
- Pilih Add by project and attestor name , lalu lakukan langkah-langkah berikut:
Klik Add 1 attestor.
Klik Save Policy.
gcloud
Ekspor kebijakan yang ada ke file menggunakan perintah berikut:
gcloud container binauthz policy export > /tmp/policy.yamlEdit file kebijakan Anda.
Edit salah satu aturan berikut:
defaultAdmissionRuleclusterAdmissionRulesistioServiceIdentityAdmissionRuleskubernetesServiceAccountAdmissionRules
Tambahkan blok
requireAttestationsByke aturan jika belum ada.Di blok
requireAttestationsBy, tambahkanprojects/PROJECT_ID/attestors/built-by-cloud-buildGanti
PROJECT_IDdengan project tempat Anda menjalankan Cloud Build.Simpan file kebijakan.
Impor file kebijakan.
gcloud container binauthz policy import /tmp/policy.yamlBerikut adalah contoh file kebijakan yang berisi referensi ke
built-by-cloud-build-attestor:defaultAdmissionRule: evaluationMode: REQUIRE_ATTESTATION enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG requireAttestationsBy: - projects/PROJECT_ID/attestors/built-by-cloud-build name: projects/PROJECT_ID/policyGanti
PROJECT_IDdengan project ID tempat Anda menjalankan Cloud Build.
Langkah berikutnya
- Daripada tidak mengizinkan image di-deploy, Anda dapat menggunakan mode uji coba untuk mencatat pelanggaran kebijakan.
- Lihat peristiwa log audit untuk image yang tidak diizinkan di Google Kubernetes Engine (GKE) atau Cloud Run.