Halaman ini menjelaskan cara mengamankan supply chain software Anda dengan mengonfigurasi Otorisasi Biner untuk mengizinkan hanya image container yang dibuat oleh Cloud Build yang di-deploy.
Anda mengonfigurasi kontrol deployment ini dengan mewajibkan attestor built-by-cloud-build
dalam kebijakan Otorisasi Biner. Cloud Build secara otomatis membuat pengautentikasi 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 pengesah built-by-cloud-build
. Image terverifikasi diizinkan untuk di-deploy.
Gambar yang gagal dalam verifikasi tidak diizinkan untuk di-deploy, dan kegagalan tersebut akan dicatat ke dalam log Cloud Audit Logs.
Untuk panduan menyeluruh yang menjelaskan cara menggunakan metadata yang direkam Cloud Build dan Otorisasi Biner, lihat Menggunakan asal ditandatangani dan Otorisasi Biner.
Sebelum memulai
Untuk menggunakan fitur ini, Anda harus melakukan hal berikut terlebih dahulu:
- Siapkan Otorisasi Biner untuk platform Anda.
Siapkan Cloud Build dan build image.
Mengonfigurasi kebijakan
Di bagian ini, Anda akan mengonfigurasi kebijakan Otorisasi Biner untuk mewajibkan
pengesah built-by-cloud-build
.
Untuk mengizinkan hanya image yang dibuat oleh Cloud Build yang di-deploy, lakukan langkah-langkah berikut:
Konsol
Buka halaman Binary Authorization di konsol Google Cloud:
Di tab Kebijakan, klik Edit Kebijakan.
Pada dialog Edit Policy, pilih Allow only images that have been approved by all of the following attestors.
Klik Tambahkan Pengesah.
Pada kotak dialog Add attestors, lakukan hal berikut:
- Pilih Tambahkan menurut project dan nama attestor, lalu lakukan langkah-langkah
berikut:
- Di kolom Project name, masukkan project tempat Anda menjalankan Cloud Build.
- Klik kolom Nama pengautentikasi dan perhatikan bahwa
pengautentikasi
built-by-cloud-build
tersedia. - Klik
built-by-cloud-build
.
Atau, pilih Tambahkan menurut ID resource attestor. Di ID resource attestor, masukkan
projects/PROJECT_ID/attestors/built-by-cloud-build
Mengganti
PROJECT_ID
dengan project tempat Anda menjalankan Cloud Build.
- Pilih Tambahkan menurut project dan nama attestor, lalu lakukan langkah-langkah
berikut:
Klik Tambahkan 1 pengautentikasi.
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.
Impor 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 deployment image, Anda dapat menggunakan mode dry run untuk mencatat pelanggaran kebijakan.
- Melihat peristiwa log audit untuk image yang tidak diizinkan di Google Kubernetes Engine (GKE) atau Cloud Run.