Halaman ini menjelaskan cara mengamankan supply chain software dengan mengonfigurasi Otorisasi Biner agar hanya mengizinkan image container yang dibangun oleh Cloud Build untuk di-deploy.
Anda mengonfigurasi kontrol deployment ini dengan mewajibkan attestor built-by-cloud-build
dalam kebijakan Otorisasi Biner. Cloud Build secara otomatis membuat attestor built-by-cloud-build
di project saat Anda menjalankan build yang menghasilkan image. Setelah image berhasil dibuat, Cloud Build akan otomatis menandatangani dan membuat pengesahan untuk image tersebut. Pada waktu deployment, Otorisasi Biner akan memverifikasi pengesahan dengan attestor built-by-cloud-build
. Gambar yang diverifikasi diizinkan untuk di-deploy.
Image yang gagal verifikasi tidak akan dapat 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 provenance bertanda tangan dan Otorisasi Biner.
Sebelum memulai
Untuk menggunakan fitur ini, Anda harus terlebih dahulu melakukan hal berikut:
- Menyiapkan Otorisasi Biner untuk platform Anda.
Siapkan Cloud Build dan build image.
Mengonfigurasi kebijakan
Di bagian ini, Anda akan mengonfigurasi kebijakan Otorisasi Biner untuk mewajibkan attestor built-by-cloud-build
.
Untuk hanya mengizinkan image yang dibangun oleh Cloud Build di-deploy, lakukan langkah-langkah berikut:
Konsol
Buka halaman Otorisasi Biner di konsol Google Cloud:
Di tab Kebijakan, klik Edit Kebijakan.
Pada dialog Edit Policy, pilih Izinkan hanya gambar yang telah disetujui oleh semua attestor berikut.
Klik Add Attestors.
Di 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-build
tersedia. - Klik
built-by-cloud-build
.
Atau, pilih Add by attestor resource ID. Di ID resource Attestor, masukkan
projects/PROJECT_ID/attestors/built-by-cloud-build
Mengganti
PROJECT_ID
dengan project tempat Anda menjalankan Cloud Build.
- Pilih Add by project and attestor name, lalu lakukan langkah-langkah
berikut:
Klik Tambahkan 1 attestor.
Klik Simpan Kebijakan.
gcloud
Ekspor kebijakan yang ada ke file menggunakan perintah berikut:
gcloud container binauthz policy export > /tmp/policy.yaml
Edit file kebijakan Anda.
Edit salah satu aturan berikut:
defaultAdmissionRule
clusterAdmissionRules
istioServiceIdentityAdmissionRules
kubernetesServiceAccountAdmissionRules
Tambahkan blok
requireAttestationsBy
ke aturan jika belum ada.Di blok
requireAttestationsBy
, tambahkanprojects/PROJECT_ID/attestors/built-by-cloud-build
Mengganti
PROJECT_ID
dengan project tempat Anda menjalankan Cloud Build.Simpan file kebijakan.
Mengimpor file kebijakan.
gcloud container binauthz policy import /tmp/policy.yaml
Berikut 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/policy
Ganti
PROJECT_ID
dengan project ID tempat Anda menjalankan Cloud Build.
Langkah selanjutnya
- Daripada melarang image untuk 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.