Dokumen ini menjelaskan cara mengonfigurasi autentikasi ke repositori upstream Python Package Index (PyPI) untuk repositori jarak jauh Artifact Registry.
Dokumen ini mengasumsikan bahwa Anda telah membuat repositori jarak jauh Artifact Registry Python, dan akun PyPI.
Untuk informasi selengkapnya tentang repositori jarak jauh, lihat Ringkasan repositori jarak jauh.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna mengonfigurasi autentikasi ke PyPI 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 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 token PyPI API
Menyimpan token API dalam versi rahasia
- Buat secret di Secret Manager.
- Simpan token PyPI API Anda sebagai versi rahasia.
Memberikan akses ke secret Anda untuk akun layanan Artifact Registry
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 project Google Cloud tempat Artifact Registry berjalan.
Untuk memberikan peran Secret Manager Secret Accessor ke 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 Tampilkan Panel Info untuk membuka panel.
-
Di panel info, klik Tambahkan Akun Utama.
-
Di area teks New principals, masukkan alamat email anggota yang akan ditambahkan.
-
Di dropdown Pilih peran, 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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Artifact Registry, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk melakukan autentikasi 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 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 PyPI ke repositori jarak jauh
Untuk memperbarui repositori jarak jauh dengan kredensial PyPI:
Konsol
Buka halaman Repositories di konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repositori.
Di bagian Mode autentikasi repositori jarak jauh, perbarui atau tambahkan nama pengguna PYPI
__token__
, dan versi rahasia yang berisi token PyPI API Anda.
gcloud CLI
Untuk mengupdate repositori jarak jauh dengan kredensial PyPI, jalankan perintah berikut:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=__token__ \
--remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
Ganti kode berikut:
REPOSITORY
dengan nama repositori jarak jauh Artifact Registry Anda.PROJECT_ID
dengan ID project 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 PyPI Anda.SECRET_PROJECT_ID
dengan project ID project tempat Anda membuat secret.SECRET_ID
dengan nama yang Anda berikan ke secret.SECRET_VERSION
dengan versi rahasia tempat Anda menyimpan token API PyPI.
Kredensial Anda akan digunakan saat repositori jarak jauh mengirim permintaan untuk artefak dari sumber upstream.