Menggunakan sidik jari untuk memverifikasi identitas versi paket

Anda dapat menggunakan sidik jari artefak untuk mengidentifikasi paket secara unik di repositori Artifact Registry.

Saat Anda mengirim paket ke repositori, Artifact Registry menghitung sidik jari untuk versi paket tersebut. Sidik jari adalah referensi kriptografis yang tidak dapat diubah yang dapat Anda gunakan untuk memvalidasi bahwa paket tidak dimodifikasi saat berpindah antar-sistem Google Cloud, seperti Compute Engine dan Cloud Build. Setelah mengambil sidik jari paket, Anda dapat menggunakannya untuk memastikan paket Anda valid selama permintaan Artifact Registry API tertentu. Anda juga dapat memvalidasi instance lokal dan repositori dari paket yang sama dengan menghitung sidik jari lokal secara manual dan membandingkannya dengan sidik jari di repositori.

Sebelum memulai

  1. Aktifkan Artifact Registry, termasuk mengaktifkan Artifact Registry API dan menginstal Google Cloud CLI.
  2. (Opsional) Konfigurasi default untuk perintah gcloud.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna melihat sidik jari versi paket di repositori Artifact Registry, minta administrator untuk memberi Anda peran IAM Artifact Registry Reader (roles/artifactregistry.reader) di Google Cloud project. 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.

Mengambil sidik jari versi paket di repositori Anda

Sidik jari memiliki struktur berikut:

VERSION@DIRSUM_SHA256:HASH_VALUE

Untuk mengambil sidik jari versi paket di repositori Artifact Registry, masukkan perintah berikut di Google Cloud CLI:

gcloud artifacts versions describe VERSION --repository=REPOSITORY --location=LOCATION --package=PACKAGE_NAME

Dengan:

  • VERSION adalah versi paket Anda, seperti 1.0543.
  • REPOSITORY adalah repositori yang berisi paket yang Anda evaluasi
  • LOCATION adalah lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus tanda ini jika Anda menetapkan lokasi default.
  • PACKAGE_NAME adalah nama paket.

Responsnya akan terlihat seperti ini:

fingerprints:
- type: DIRSUM_SHA256
  value: 7c07b910c6dd6df6984a5591d00ad0074fe24cd81145d2c681cdfda3b3d65a04
name: projects/test-project/locations/us-west1/repositories/test-repo/packages/test-pkg/versions/v1
updateTime: '2025-08-15T00:03:41.809228Z'

Alamat lengkap sidik jari adalah versi paket yang diikuti dengan jenis sidik jari, lalu nilai hash. Dalam contoh ini, alamat sidik jari adalah VERSION@DIRSUM_SHA256:7c07b910c6dd6df6984a5591d00ad0074fe24cd81145d2c681cdfda3b3d65a04.

Memvalidasi sidik jari sebagai referensi tetap di Artifact Registry API

Permintaan Artifact Registry API tertentu akan memvalidasi paket dari repositori Anda jika sidik jari paket tersebut diformat sebagai berikut:

VERSION@DIRSUM_SHA256:HASH_VALUE

Misalnya, Anda ingin membuat lampiran pada paket di repositori. Dalam perintah berikut, paket yang ditentukan untuk target diformat sehingga Artifact Registry juga memvalidasi sidik jari paket:

  gcloud artifacts attachments create my-attachment --target='projects/test-project/locations/us-west1/repositories/test-repo/packages/test-pkg/versions/v1@dirsum_sha256:30330c6b65a26ebf1a13e1b9ded4068b4c36d72ed3b62226e3243b5bee18fd31' --attachment-type="application/vnd.in-toto+json" --attachment-namespace="mynamespace.com" --files=att.txt

Jika sidik jari yang diberikan tidak cocok dengan sidik jari versi saat ini, Artifact Registry akan menolak permintaan API dan menampilkan error failed_precondition.

Permintaan berikut akan memvalidasi sidik jari yang diberikan saat diteruskan menggunakan library API, Google Cloud CLI, dan curl:

Permintaan berikut akan memvalidasi sidik jari saat diteruskan menggunakan library API dan curl:

Memvalidasi bahwa instance paket lokal dan repositori sama

Untuk memvalidasi bahwa paket belum dimodifikasi saat berpindah antar-sistem Google Cloud , hitung sidik jari instance paket tersebut secara manual di luar repositori Anda.

Untuk menghitung sidik jari secara manual, lakukan hal berikut:

  1. Temukan sidik jari untuk paket Anda di Artifact Registry seperti yang dijelaskan dalam Melihat sidik jari paket di repositori Anda.

  2. Menghitung sidik jari paket eksternal Anda secara manual:

    1. Dapatkan nama file singkat dan hash SHA256 individual dari setiap file dalam paket Anda:

      1. Buka halaman Repositories di Google Cloud konsol:

        Buka halaman Repositori

      2. Pilih repositori Anda, lalu pilih image yang berisi versi paket yang ingin Anda validasi.

      3. Klik tab File.

      4. Identifikasi nama file pendek dan hash SHA256 dari setiap file yang ditampilkan di halaman. Nama file pendek adalah string akhir yang mengikuti lokasi file. Misalnya, screenshot berikut menunjukkan enam file untuk Version 5.0 paket di repositori Maven. Setiap nama file dimulai dengan my-app-5.0. Nilai hash untuk setiap file ditampilkan di kolom Hashes:

        Contoh tab **Files** untuk Paket Maven Versi 5.0.

    2. Urutkan file menurut abjad berdasarkan nama file pendek.

    3. Untuk setiap entri file yang diurutkan, gabungkan informasi file ke dalam string yang dipersingkat berikut, tambahkan dua spasi di antara nilai hash dan nama file, dan akhiri dengan byte null:

      HASH_VALUE FILE_NAME/0

    4. Ambil setiap string yang dipendekkan dan gabungkan menjadi satu urutan lengkap, tanpa spasi atau karakter di antara setiap string.

    5. Hitung nilai hash SHA256 dari seluruh urutan. Nilai hash SHA256 akhir adalah dirsum_sha256 paket eksternal Anda.

  3. Bandingkan sidik jari yang dihitung secara manual dan sidik jari paket di repositori Anda. Jika kedua sidik jari sama, maka instance paket di repositori Anda belum dimodifikasi.