Dokumen ini menjelaskan cara mengonfigurasi autentikasi ke repositori upstream Docker Hub untuk repositori jarak jauh Artifact Registry.
Untuk mencegah penggunaan kuota Docker Hub yang tidak diautentikasi, sebaiknya lakukan autentikasi ke Docker Hub saat menggunakan repositori jarak jauh. Dengan repositori jarak jauh, Anda dapat menambahkan nama pengguna Docker Hub dan token akses pribadi yang disimpan sebagai rahasia untuk mengautentikasi ke Docker Hub.
Dokumen ini mengasumsikan bahwa Anda telah membuat repositori jarak jauh Docker Artifact Registry dan akun Docker Hub.
Untuk informasi selengkapnya tentang repositori jarak jauh, lihat Ringkasan repositori jarak jauh.
Sebelum memulai
-
Login ke Akun Google Anda.
Jika Anda belum memilikinya, Daftar untuk membuat akun baru.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Enable the Artifact Registry, Secret Manager APIs.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Enable the Artifact Registry, Secret Manager APIs.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna mengonfigurasi autentikasi ke Docker Hub untuk repositori jarak jauh, minta administrator untuk memberi Anda peran IAM berikut pada project:
-
Admin Artifact Registry (
roles/artifactregistry.admin
) -
Admin Secret Manager (
roles/secretmanager.admin
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Kelola akses.
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 dalam versi rahasia
- Buat secret di Secret Manager.
- Simpan token akses pribadi Docker Hub Anda sebagai versi rahasia.
Memberi akun layanan Artifact Registry akses ke secret Anda
Agen layanan Artifact Registry adalah akun layanan yang dikelola Google yang bertindak atas nama Artifact Registry saat berinteraksi dengan layanan Google Cloud. Untuk mengizinkan agen layanan menggunakan secret yang disimpan di Secret Manager, Anda harus memberinya izin untuk melihat versi secret Anda.
ID agen layanan adalah:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
PROJECT-NUMBER adalah nomor project project Google Cloud tempat Artifact Registry dijalankan.
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 rahasia.
-
Jika belum terbuka, klik Tampilkan Panel Info untuk membuka panel.
-
Di panel info, klik Tambahkan Kepala Sekolah.
-
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 akun pengguna, grup, atau layanan.
C#
Untuk mengautentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mengautentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengautentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mengautentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mengautentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
API
Catatan: Tidak seperti contoh lainnya, kebijakan ini 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 lebih lanjut tentang cara memberikan atau mencabut akses ke secret, baca artikel Mengelola akses ke secret.
Menambahkan kredensial Docker Hub ke repositori jarak jauh
Untuk memperbarui repositori jarak jauh dengan kredensial Docker Hub Anda:
Konsol
Buka halaman Repositories di Konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Mode autentikasi repositori jarak jauh, perbarui atau tambahkan nama pengguna dan rahasia Docker Hub Anda yang berisi token akses Docker Hub.
gcloud CLI
Untuk memperbarui repositori jarak jauh dengan kredensial Docker Hub Anda, jalankan perintah berikut:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=USERNAME \
--remote-password-secret-version=projects/PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
Ganti kode berikut:
REPOSITORY
dengan nama repositori jarak jauh Artifact Registry Anda.PROJECT_ID
dengan project ID Google Cloud Anda.LOCATION
dengan 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
dengan nama pengguna Docker Hub Anda.SECRET_ID
dengan nama yang Anda berikan untuk rahasia.SECRET_VERSION
dengan versi secret tempat Anda menyimpan token akses Docker Hub.
Langkah selanjutnya
- Pelajari repositori Artifact Registry lebih lanjut.
- Tarik image dengan Docker.
- Gunakan quickstart repositori jarak jauh Docker Hub.