Hanya deploy image yang dibangun oleh Cloud Build

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:

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

  1. Buka halaman Otorisasi Biner di konsol Google Cloud:

    Buka Otorisasi Biner

  2. Di tab Kebijakan, klik Edit Kebijakan.

  3. Pada dialog Edit Policy, pilih Izinkan hanya gambar yang telah disetujui oleh semua attestor berikut.

  4. Klik Add Attestors.

  5. Di kotak dialog Add attestors, lakukan hal berikut:

    1. Pilih Add by project and attestor name, lalu lakukan langkah-langkah berikut:
      1. Di kolom Project name, masukkan project tempat Anda menjalankan Cloud Build.
      2. Klik kolom Attestor name, dan perhatikan bahwa attestor built-by-cloud-build tersedia.
      3. Klik built-by-cloud-build.
    2. 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.

  6. Klik Tambahkan 1 attestor.

  7. Klik Simpan Kebijakan.

gcloud

  1. Ekspor kebijakan yang ada ke file menggunakan perintah berikut:

    gcloud container binauthz policy export > /tmp/policy.yaml
    
  2. Edit file kebijakan Anda.

  3. Edit salah satu aturan berikut:

    • defaultAdmissionRule
    • clusterAdmissionRules
    • istioServiceIdentityAdmissionRules
    • kubernetesServiceAccountAdmissionRules
  4. Tambahkan blok requireAttestationsBy ke aturan jika belum ada.

  5. Di blok requireAttestationsBy, tambahkan

    projects/PROJECT_ID/attestors/built-by-cloud-build
    

    Mengganti PROJECT_ID dengan project tempat Anda menjalankan Cloud Build.

  6. Simpan file kebijakan.

  7. 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