Autentikasi ke Artifact Registry berbeda untuk upload dan
download modul Go yang dipaketkan. Saat memaketkan dan mengupload modul Go ke Artifact Registry, alat gcloud CLI akan mencari kredensial di lingkungan Anda untuk menyiapkan autentikasi dalam urutan berikut, kecuali jika tanda --json_key
diteruskan untuk menggunakan kunci akun layanan.
Kredensial Default Aplikasi (ADC), strategi yang mencari kredensial dengan urutan sebagai berikut:
Kredensial yang ditentukan dalam variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
.Kredensial yang disediakan akun layanan default untuk Compute Engine, Google Kubernetes Engine, Cloud Run, App Engine, atau fungsi Cloud Run.
Kredensial yang diberikan oleh Google Cloud CLI, termasuk kredensial pengguna dari perintah
gcloud auth application-default login
.
Variabel GOOGLE_APPLICATION_CREDENTIALS
membuat akun untuk
autentikasi menjadi eksplisit, sehingga mempermudah pemecahan masalah. Jika
Anda tidak menggunakan variabel, pastikan akun yang mungkin digunakan ADC memiliki
izin yang diperlukan. Misalnya,
akun layanan default untuk VM Compute Engine, node Google Kubernetes Engine,
dan revisi Cloud Run memiliki akses hanya baca ke repositori. Jika Anda
ingin mengupload dari lingkungan ini menggunakan akun layanan default,
Anda harus mengubah izin.
Saat mendownload modul Go yang dipaketkan untuk digunakan sebagai dependensi dari Artifact Registry, biner Go menggunakan kredensial dalam file netrc Anda untuk melakukan autentikasi ke Artifact Registry. Untuk menyederhanakan proses autentikasi, Anda dapat menggunakan helper kredensial Go untuk memuat ulang token dalam file netrc untuk autentikasi ke Artifact Registry.
Lokasi file netrc dapat ditetapkan dengan variabel lingkungan netrc.
Jika variabel NETRC
tidak ditetapkan, perintah go
akan membaca
$HOME/.netrc
di platform mirip UNIX atau %USERPROFILE%\_netrc
di Windows.
Artifact Registry mendukung metode autentikasi berikut saat menggunakan kredensial dalam file netrc Anda:
- Kredensial jangka pendek (direkomendasikan)
- Gunakan alat helper kredensial Go Artifact Registry untuk memperbarui token autentikasi dalam file netrc menggunakan kredensial di lingkungan Anda, atau tambahkan kredensial Artifact Registry secara manual ke file netrc.
- Menggunakan kunci akun layanan
- Gunakan opsi ini jika Anda tidak dapat menggunakan kredensial di lingkungan untuk autentikasi. Anda dapat menggunakan alat helper kredensial Go Artifact Registry untuk menambahkan kunci akun layanan yang tidak dienkripsi ke file netrc atau menambahkannya secara manual ke file.
Sebelum memulai
- Instal Go 1.15 atau yang lebih baru.
Instal add-on gcloud CLI package-go-module:
gcloud components install package-go-module
Menyiapkan lingkungan Go
Minta Go untuk mendownload modul dari Artifact Registry, proxy modul Go publik, lalu sumber dalam urutan tersebut:
export GOPROXY=https://LOCATION-go.pkg.dev/PROJECT/REPOSITORY,https://proxy.golang.org,direct
Ganti kode berikut:
- LOCATION adalah lokasi regional atau multi-regional repositori.
- PROJECT adalah project ID Google Cloud Anda.
- REPOSITORY adalah nama repositori tempat paket disimpan.
Kecualikan modul Anda agar tidak diperiksa menggunakan database checksum publik:
export GONOSUMDB=MODULE_PATH_REGEX
Ganti MODULE_PATH_REGEX dengan jalur modul atau ekspresi reguler jika Anda ingin mengecualikan beberapa modul.
Misalnya, Untuk mengecualikan modul
example.com/foo
agar tidak diperiksa menggunakan database checksum publik, jalankan perintah berikut:export GONOSUMDB=example.com/foo
Perintah berikut mengecualikan semua modul dengan jalur modul yang dimulai di
example.com
agar tidak diperiksa menggunakan database checksum publik:export GONOSUMDB=example.com/*
Menambahkan kredensial Artifact Registry ke file netrc
Jalankan perintah berikut untuk menambahkan kredensial Artifact Registry ke file netrc dengan helper kredensial Go:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 \ add-locations --locations=LOCATION \ --json_key=PATH_TO_JSON_KEY
Dengan keterangan:
- LOCATION adalah lokasi regional atau multi-regional repositori Anda. Untuk menambahkan beberapa lokasi, masukkan lokasi tersebut sebagai daftar yang dipisahkan koma.
PATH_TO_JSON_KEY Opsional. Jalur ke kunci akun layanan Anda.
Helper kredensial Go menambahkan setelan ke file netrc Anda untuk mengautentikasi ke Artifact Registry. Jika Anda meneruskan tanda
--json_key
, kunci akan ditambahkan ke file netrc untuk autentikasi sandi.
Jika menggunakan kredensial berumur pendek untuk mengautentikasi ke Artifact Registry, Anda harus memuat ulang token OAuth dengan menjalankan perintah berikut sebelum menggunakan modul sebagai dependensi:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 refresh
Melakukan autentikasi dengan kunci akun layanan
Gunakan pendekatan ini jika Anda memerlukan autentikasi dengan nama pengguna dan sandi.
Kunci akun layanan adalah kredensial yang dapat digunakan untuk jangka waktu lama. Gunakan panduan berikut untuk membatasi akses ke repositori Anda:
- Pertimbangkan untuk menggunakan akun layanan khusus untuk berinteraksi dengan repositori.
- Berikan peran Artifact Registry minimum yang diperlukan oleh akun layanan. Misalnya, tetapkan Pembaca Artifact Registry ke akun layanan yang hanya mendownload artefak.
- Jika grup di organisasi Anda memerlukan tingkat akses yang berbeda ke repositori tertentu, berikan akses di tingkat repositori, bukan tingkat project.
- Ikuti praktik terbaik untuk mengelola kredensial.
Untuk mengonfigurasi autentikasi:
Buat akun layanan untuk bertindak atas nama aplikasi Anda, atau pilih akun layanan yang ada yang Anda gunakan untuk otomatisasi.
Anda memerlukan lokasi file kunci akun layanan untuk menyiapkan autentikasi dengan Artifact Registry. Untuk akun yang ada, Anda dapat melihat kunci dan membuat kunci baru di halaman Akun Layanan.
Berikan peran Artifact Registry yang sesuai ke akun layanan untuk memberikan akses repositori.
Jalankan perintah berikut untuk menambahkan kredensial akun layanan ke file netrc dengan helper kredensial Go:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 \ add-locations --locations=LOCATION \ --json_key=PATH_TO_JSON_KEY
Dengan keterangan:
- LOCATION adalah lokasi regional atau multi-regional repositori Anda. Untuk menambahkan beberapa lokasi, masukkan lokasi tersebut sebagai daftar yang dipisahkan koma.
PATH_TO_JSON_KEY adalah jalur ke file kunci JSON akun layanan.
Helper kredensial Go menambahkan kunci akun layanan ke file netrc Anda untuk autentikasi sandi.
Anda juga dapat menambahkan kunci akun layanan secara manual ke file netrc dalam format berikut:
machine LOCATION.pkg.dev
login _json_key_base64
password KEY
Ganti kode berikut:
- LOCATION dengan lokasi regional atau multi-regional repositori Anda.
- KEY dengan kunci yang dienkode base64 dalam file kunci akun layanan Anda.
Menambahkan helper kredensial Go ke GONOPROXY
Sebelum menggunakan helper kredensial Go, Anda harus menambahkannya ke daftar GONOPROXY
untuk memaksa Go mendownloadnya langsung dari GitHub. Jika memiliki modul lain yang
ingin didownload langsung dari sumber, Anda dapat menambahkannya dalam daftar yang dipisahkan
koma seperti yang ditunjukkan dalam contoh berikut:
export GONOPROXY=MODULE_PATH1, MODULE_PATH2
Dengan MODULE_PATH1 dan MODULE_PATH2 adalah jalur modul dari modul yang akan didownload dari sumber.
Untuk menambahkan helper kredensial Go ke daftar GONOPROXY
dan menjalankannya untuk menyiapkan
kredensial Anda:
Menambahkan helper kredensial Go ke
GONOPROXY
Andaexport GONOPROXY=github.com/GoogleCloudPlatform/artifact-registry-go-tools
Jalankan perintah berikut untuk menambahkan kredensial Artifact Registry ke file netrc dengan alat paket modul Go:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 \ add-locations --locations=LOCATION \ [--json_key=path/to/service/account/key.json]
Dengan LOCATION adalah lokasi regional atau multi-regional repositori Anda. Untuk menambahkan beberapa lokasi, masukkan lokasi tersebut sebagai daftar yang dipisahkan koma.
Helper kredensial Go menambahkan setelan ke file netrc Anda untuk mengautentikasi ke Artifact Registry. Jika Anda meneruskan tanda
--json_key
, kunci akan ditambahkan ke file netrc untuk autentikasi sandi.