Hanya men-deploy image yang dibuat oleh Cloud Build

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:

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

  1. Buka halaman Binary Authorization di konsol Google Cloud:

    Buka Otorisasi Biner

  2. Di tab Kebijakan, klik Edit Kebijakan.

  3. Pada dialog Edit Policy, pilih Allow only images that have been approved by all of the following attestors.

  4. Klik Tambahkan Pengesah.

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

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

  6. Klik Tambahkan 1 pengautentikasi.

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