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
- Jika Anda belum memilikinya, buat repositori mode standar.
- (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, sepertiprojects/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
: atributtype
lampiran. Untuk image Docker,type
harus mematuhi spesifikasi OCI untuk propertiartifactType
.ATTACHMENT_NAMESPACE
: variabel khusus untuk lampiran yang mengidentifikasi sumber data lampiran, sepertiexample.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
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:
Instal Oras 1.2 atau yang lebih baru. Untuk memverifikasi versi Anda, jalankan perintah
oras version
.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 propertiartifactType
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
menentukanmediaType
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
- Mengelola metadata artefak.
- Pelajari cara membuat dan menyimpan SBOM untuk image container.