Membuat pengautentikasi menggunakan gcloud CLI

Halaman ini menjelaskan cara membuat attestor di Otorisasi Biner menggunakan Google Cloud CLI. Sebagai alternatif, Anda dapat melakukan langkah-langkah ini menggunakan konsolGoogle Cloud atau REST API. Tugas ini adalah bagian dari penyiapan Otorisasi Biner.

Sebagai pengguna Cloud Build, Anda dapat menggunakan built-by-cloud-build pengesah untuk men-deploy hanya image yang dibangun oleh Cloud Build.

Pengesah adalah Google Cloud resource yang digunakan Otorisasi Biner untuk memverifikasi pengesahan. Untuk mempelajari pengesahan lebih lanjut, lihat Ringkasan Otorisasi Biner.

Untuk membuat pengesah, lakukan hal berikut:

  • Buat catatan di Analisis Artefak untuk menyimpan metadata tepercaya yang digunakan dalam proses pengesahan.
  • Siapkan pasangan kunci Infrastruktur Kunci Publik (X.509) (PKIX) yang dapat digunakan untuk memverifikasi identitas pengesah. (Pasangan kunci asimetris yang dibuat oleh Cloud Key Management Service (Cloud KMS) menggunakan format yang kompatibel dengan PKIX.)
  • Buat pengesah itu sendiri di Otorisasi Biner, dan kaitkan catatan dan kunci publik yang Anda buat.

Dalam penyiapan satu project, Anda membuat attestor di project Google Cloud yang sama tempat Anda mengonfigurasi kebijakan Otorisasi Biner. Untuk tutorial end-to-end satu project yang mencakup langkah-langkah ini, lihat Mulai menggunakan Google Cloud CLI atau Mulai menggunakan konsol Google Cloud .

Dalam penyiapan multi-project, sebaiknya Anda memiliki project terpisah: project deployer, tempat kebijakan Anda dikonfigurasi; project pengesah, tempat pengesah Anda disimpan; dan project pengesahan untuk pengesahan. Untuk tutorial multi-project end-to-end yang mencakup langkah-langkah ini, lihat penyiapan multi-project.

Sebelum memulai

Sebelum Anda membuat pengesah, lakukan hal berikut:

  1. Aktifkan Otorisasi Biner.

  2. Siapkan Otorisasi Biner untuk platform Anda.

Menyiapkan lingkungan project

Di bagian ini, Anda akan menyiapkan variabel lingkungan.

Siapkan variabel lingkungan untuk menyimpan nama dan nomor project Anda. Jika project attestor dan project deployer Anda adalah project yang sama, gunakan project ID yang sama untuk kedua variabel.

DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID=
DEPLOYER_PROJECT_NUMBER="$(
    gcloud projects describe "${DEPLOYER_PROJECT_ID}" \
      --format="value(projectNumber)"
)"

ATTESTOR_PROJECT_ID=ATTESTOR_PROJECT_ID
ATTESTOR_PROJECT_NUMBER="$(
    gcloud projects describe "${ATTESTOR_PROJECT_ID}" \
    --format="value(projectNumber)"
)"

Anda juga harus mendapatkan nama akun layanan untuk project:

DEPLOYER_SERVICE_ACCOUNT="service-${DEPLOYER_PROJECT_NUMBER}@gcp-sa-binaryauthorization.iam.gserviceaccount.com"
ATTESTOR_SERVICE_ACCOUNT="service-${ATTESTOR_PROJECT_NUMBER}@gcp-sa-binaryauthorization.iam.gserviceaccount.com"

Membuat catatan Analisis Artefak

Otorisasi Biner menggunakan Artifact Analysis untuk menyimpan metadata tepercaya yang digunakan dalam proses otorisasi. Untuk setiap attestor yang Anda buat, Anda harus membuat satu catatan Artifact Analysis. Setiap pengesahan disimpan sebagai kemunculan catatan ini.

Untuk membuat catatan, ikuti langkah-langkah berikut:

  1. Siapkan variabel lingkungan untuk menyimpan ID catatan dan deskripsi yang mudah dibaca:

    NOTE_ID=NOTE_ID
    NOTE_URI="projects/${ATTESTOR_PROJECT_ID}/notes/${NOTE_ID}"
    DESCRIPTION=DESCRIPTION
    

    Ganti kode berikut:

    • NOTE_ID: nama internal catatan dalam karakter alfanumerik tanpa spasi—misalnya, test-attestor-note
    • NOTE_URI: jalur yang sepenuhnya memenuhi syarat ke resource catatan
    • DESCRIPTION: nama tampilan yang mudah dibaca untuk catatan—misalnya, Test Attestor Note
  2. Buat file JSON yang mendeskripsikan catatan:

    cat > /tmp/note_payload.json << EOF
    {
      "name": "${NOTE_URI}",
      "attestation": {
        "hint": {
          "human_readable_name": "${DESCRIPTION}"
        }
      }
    }
    EOF
    
  3. Buat catatan dengan mengirimkan permintaan HTTP ke Artifact Analysis REST API:

    curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
        -H "x-goog-user-project: ${ATTESTOR_PROJECT_ID}" \
        --data-binary @/tmp/note_payload.json  \
        "https://containeranalysis.googleapis.com/v1/projects/${ATTESTOR_PROJECT_ID}/notes/?noteId=${NOTE_ID}"
    

    Untuk memverifikasi bahwa catatan berhasil dibuat, jalankan perintah berikut:

    curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
        -H "x-goog-user-project: ${ATTESTOR_PROJECT_ID}" \
        "https://containeranalysis.googleapis.com/v1/projects/${ATTESTOR_PROJECT_ID}/notes/"
    

Menetapkan izin IAM pada catatan

Anda harus memberikan peran