Artifact Registry memungkinkan Anda mengautentikasi repositori jarak jauh ke Docker Hub. Meskipun mengambil image publik tidak memerlukan autentikasi, autentikasi akan meningkatkan batas kapasitas download Anda. Untuk melakukan autentikasi, konfigurasikan repositori jarak jauh Anda dengan nama pengguna Docker Hub dan token akses pribadi yang disimpan sebagai secret.
Sebelum memulai
Verifikasi persyaratan berikut:
- Anda telah membuat repositori jarak jauh Docker Artifact Registry
- Anda memiliki akun Docker Hub.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna mengonfigurasi autentikasi ke Docker Hub untuk repositori jarak jauh, minta administrator untuk memberi Anda peran IAM berikut pada project:
- Artifact Registry Admin (
roles/artifactregistry.admin) - Secret Manager Admin (
roles/secretmanager.admin)
Untuk mengetahui informasi selengkapnya tentang pemberian 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 token akses pribadi Docker Hub
- Login ke Docker Hub.
- Buat token akses pribadi dengan izin hanya baca.
Salin token akses.
Simpan token akses dalam file teks di Cloud Shell atau lokal Anda.
Menyimpan token akses pribadi Anda dalam versi secret
- Buat secret di Secret Manager.
- Simpan token akses pribadi Docker Hub Anda sebagai versi rahasia.
Memberikan akses akun layanan Artifact Registry ke secret Anda
Agen layanan Artifact Registry bertindak atas nama Artifact Registry saat berinteraksi dengan layanan Google Cloud . Agar agen layanan dapat menggunakan secret yang disimpan di Secret Manager, Anda harus memberikan izin kepada agen layanan untuk melihat versi secret Anda.
ID agen layanan adalah:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
PROJECT-NUMBER adalah nomor project dari project Google Cloud tempat Artifact Registry berjalan.
Untuk memberikan peran Secret Manager Secret Accessor kepada agen layanan Artifact Registry:
Konsol
-
Buka halaman Secret Manager di konsol Google Cloud .
-
Di halaman Secret Manager, klik kotak centang di samping nama secret.
-
Jika belum terbuka, klik Show Info Panel untuk membuka panel.
-
Di panel info, klik Add Principal.
-
Di area teks New principals, masukkan alamat email anggota yang akan ditambahkan.
-
Di dropdown Select a role, pilih Secret Manager, lalu Secret Manager Secret Accessor.
gcloud
$ gcloud secrets add-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
Dengan member adalah anggota IAM, seperti pengguna, grup, atau akun layanan.
C#
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
API
Catatan: Tidak seperti contoh lainnya, tindakan ini akan menggantikan seluruh kebijakan IAM.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:setIamPolicy" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"policy\": {\"bindings\": [{\"members\": [\"member\"], \"role\": \"roles/secretmanager.secretAccessor\"}]}}"
Untuk mengetahui informasi selengkapnya tentang cara memberikan atau mencabut akses ke secret, lihat Mengelola akses ke secret.
Menambahkan kredensial Docker Hub ke repositori jarak jauh Anda
Untuk memperbarui repositori jarak jauh dengan kredensial Docker Hub Anda:
Konsol
Buka halaman Repositori di Google Cloud konsol.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Mode autentikasi repositori jarak jauh, perbarui atau tambahkan nama pengguna Docker Hub dan versi Secret yang berisi token akses Docker Hub Anda.
gcloud CLI
Untuk mengupdate repositori jarak jauh dengan kredensial Docker Hub, jalankan perintah berikut:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=USERNAME \
--remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
Ganti kode berikut:
REPOSITORY: nama repositori jarak jauh Artifact Registry Anda.PROJECT_ID: Project ID Google Cloud Anda.LOCATION: lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus flag ini jika menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintahgcloud artifacts locations list.USERNAME: nama pengguna Docker Hub Anda.SECRET_PROJECT_ID: project ID dari projectGoogle Cloud tempat Anda membuat secret.SECRET_ID: nama yang Anda berikan untuk secret Anda.SECRET_VERSION: versi secret tempat Anda menyimpan token akses Docker Hub.
Kredensial Anda akan digunakan saat repositori jarak jauh mengirim permintaan untuk artefak dari sumber upstream.
Langkah berikutnya
- Pelajari lebih lanjut repositori Artifact Registry.
- Mengambil image dengan Docker.
- Ikuti panduan memulai repositori jarak jauh Docker Hub.