Menyimpan metadata artefak dalam lampiran

Halaman ini menjelaskan cara menyimpan metadata yang terkait dengan artefak yang disimpan di Artifact Registry sebagai lampiran.

Metadata yang disimpan dalam lampiran dapat mencakup informasi tentang kerentanan artefak, asal build, konten paket, sertifikasi, penilaian kerentanan, Software Bill of Materials (SBOM), dan lainnya. Informasi yang disimpan dalam lampiran Artifact Registry dapat digunakan oleh sistem kebijakan dan diperiksa oleh pengguna untuk memastikan kepatuhan.

Untuk mengetahui informasi selengkapnya tentang cara menangani lampiran, lihat Mengelola metadata dengan lampiran.

Sebelum memulai

  1. Jika Anda belum memilikinya, buat repositori mode standar.
  2. (Opsional) Konfigurasi setelan default untuk perintah Google Cloud CLI.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna membuat lampiran, minta administrator Anda untuk memberi Anda peran IAM Artifact Registry Writer (roles/artifactregistry.writer) di repositori. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Membuat lampiran

Untuk repositori Docker, lampiran harus berupa artefak OCI. Untuk semua format selain Docker, lampiran dapat berupa jenis file apa pun.

Anda dapat menggunakan gcloud CLI atau Oras untuk membuat lampiran di repositori format Docker.

Untuk membuat lampiran, selesaikan langkah-langkah berikut:

gcloud (semua format)

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • ATTACHMENT: nama yang sepenuhnya memenuhi syarat lampiran, seperti projects/my-project/locations/us-west1/repositories/my-repo/attachments/my-attachment. Atau, berikan hanya ID lampiran dan gunakan flag --location dan --repository.
  • TARGET: nama versi yang sepenuhnya memenuhi syarat. Khusus untuk image Docker, Anda juga dapat menggunakan URI Artifact Registry dari artefak yang dirujuk oleh lampiran. Di URI, Anda dapat menggunakan ringkasan atau, untuk image Docker, tag—misalnya, us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1.
  • TYPE: atribut type lampiran. Untuk image Docker, type harus mematuhi spesifikasi OCI untuk properti artifactType.
  • ATTACHMENT_NAMESPACE: variabel khusus untuk lampiran yang mengidentifikasi sumber data lampiran, seperti example.com.
  • FILES: daftar file lokal yang dipisahkan koma untuk disertakan dalam lampiran.
    • Jalankan perintah berikut:

      Linux, macOS, atau Cloud Shell

      gcloud artifacts attachments create ATTACHMENT \
          --target=TARGET \
          --attachment-type=TYPE \
          --attachment-namespace=ATTACHMENT_NAMESPACE \
          --files=FILES

      Windows (PowerShell)

      gcloud artifacts attachments create ATTACHMENT `
          --target=TARGET `
          --attachment-type=TYPE `
          --attachment-namespace=ATTACHMENT_NAMESPACE `
          --files=FILES

      Windows (cmd.exe)

      gcloud artifacts attachments create ATTACHMENT ^
          --target=TARGET ^
          --attachment-type=TYPE ^
          --attachment-namespace=ATTACHMENT_NAMESPACE ^
          --files=FILES
      Untuk mengetahui informasi selengkapnya, lihat perintah gcloud artifacts attachments create.

Oras (khusus Docker)

Saat membuat lampiran dengan Oras, Artifact Registry akan membuat UUID acak untuk digunakan sebagai nama lampiran.

Sebelum menggunakan Oras, selesaikan langkah-langkah berikut:

  1. Instal Oras 1.2 atau yang lebih baru. Untuk memverifikasi versi Anda, jalankan perintah oras version.

  2. Konfigurasi Oras untuk mengautentikasi dengan Artifact Registry.

Sebelum menjalankan perintah, lakukan penggantian berikut:

  • ARTIFACT_TYPE: artifactType lampiran.

  • IMAGE_URI: URI untuk image container yang dirujuk lampiran.

  • FILE: file lokal untuk disertakan sebagai metadata dalam lampiran.

  • MEDIA_TYPE: mediaType lapisan.

  oras attach --artifact-type ARTIFACT_TYPE IMAGE_URI FILE:MEDIA_TYPE

Contoh berikut membuat lampiran yang terdiri dari file, hello-world.txt, yang merujuk ke image container, my-image, yang diidentifikasi oleh URI dan tag-nya:

  oras attach --artifact-type doc/example \
  us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1 \
  hello-world.txt:application/vnd.me.hi

Dengan:

  • doc/example menentukan properti artifactType lampiran.

  • us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1 adalah URI yang mencakup tag versi image container yang akan dirujuk oleh lampiran.

  • hello-world.txt adalah file lokal yang akan menyimpan lampiran sebagai datanya.

  • application/vnd.me.hi menentukan mediaType lapisan.

Untuk panduan lengkap dan contoh lainnya, lihat dokumentasi oras attach.

Mengelola lampiran dengan kebijakan pembersihan

Lampiran repositori Docker, termasuk asal build, dihapus saat artefak yang dilampirkan dihapus. Jika Anda menggunakan kebijakan pembersihan untuk menghapus gambar dari repositori, maka secara default, lampiran pada gambar tersebut juga akan dihapus.

Untuk memastikan bahwa lampiran yang ingin Anda simpan tidak terhapus secara tidak sengaja oleh kebijakan pembersihan, Anda dapat menetapkan tag ke gambar yang memiliki lampiran yang ingin Anda simpan. Kemudian, Anda dapat mengonfigurasi kebijakan pembersihan untuk menyimpan gambar dengan tag tersebut. Misalnya, Anda dapat menetapkan tag production-signed ke gambar dengan provenans build terlampir.

Langkah selanjutnya