Autentikasi ke Artifact Registry berbeda untuk mengupload dan
mendownload modul Go yang dipaketkan. Saat mengemas dan mengupload modul Go ke Artifact Registry, alat gcloud CLI akan mencari kredensial di lingkungan Anda untuk menyiapkan autentikasi dengan urutan berikut kecuali jika flag --json_key
diteruskan untuk menggunakan kunci akun layanan.
Kredensial Default Aplikasi (ADC), strategi yang mencari kredensial dengan urutan berikut:
Kredensial yang ditentukan dalam variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
.Kredensial yang disediakan oleh akun layanan default untuk Compute Engine, Google Kubernetes Engine, Cloud Run, App Engine, atau Cloud Functions.
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 eksplisit, sehingga mempermudah pemecahan masalah. Jika
Anda tidak menggunakan variabel tersebut, pastikan setiap 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 ingin mengupload dari lingkungan ini menggunakan akun layanan default, Anda harus mengubah izinnya.
Saat mendownload modul Go yang dipaketkan untuk digunakan sebagai dependensi dari
Artifact Registry, biner Go akan menggunakan kredensial di file .netrc
Anda untuk melakukan autentikasi ke Artifact Registry.
Artifact Registry mendukung metode autentikasi berikut saat menggunakan kredensial di file .netrc
Anda:
- Kredensial berumur pendek (direkomendasikan)
- Gunakan Go credential helper Artifact Registry untuk mengupdate token autentikasi di file
.netrc
menggunakan kredensial di lingkungan Anda, atau tambahkan kredensial Artifact Registry secara manual ke file.netrc
. - Gunakan kunci akun layanan
- Gunakan opsi ini jika Anda tidak dapat menggunakan kredensial di lingkungan Anda untuk autentikasi. Anda dapat menggunakan
Go credential helper Artifact Registry untuk menambahkan
kunci akun layanan tidak terenkripsi 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
Perintahkan 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 dari repositori.
- PROJECT adalah project ID Google Cloud Anda.
- REPOSITORY adalah nama repositori tempat paket disimpan.
Mengecualikan modul agar tidak diperiksa menggunakan database checksum publik:
export GONOSUMDB=MODULE_PATH_REGEX
Ganti MODULE_PATH_REGEX dengan jalur modul atau ekspresi reguler jika 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/*
Tambahkan kredensial Artifact Registry ke file .netrc
Anda
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 dari repositori Anda. Untuk menambahkan beberapa lokasi, masukkan lokasi 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 melakukan autentikasi ke Artifact Registry. Jika Anda meneruskan flag--json_key
, kunci tersebut akan ditambahkan ke file.netrc
untuk autentikasi sandi.
Jika menggunakan kredensial berumur pendek untuk mengautentikasi ke Artifact Registry, Anda harus me-refresh token OAuth dengan menjalankan perintah berikut sebelum menggunakan modul Anda sebagai dependensi:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 refresh
Mengautentikasi dengan kunci akun layanan
Gunakan pendekatan ini saat Anda memerlukan autentikasi dengan nama pengguna dan sandi.
Kunci akun layanan adalah kredensial yang berlaku dalam 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 level 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 dari repositori Anda. Untuk menambahkan beberapa lokasi, masukkan lokasi 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.
Tambahkan 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 modul yang akan didownload dari sumber.
Untuk menambahkan helper kredensial Go ke daftar GONOPROXY
dan menjalankannya untuk menyiapkan
kredensial:
Tambahkan 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 sebagai daftar yang dipisahkan koma.
Helper kredensial Go menambahkan setelan ke file
.netrc
Anda untuk melakukan autentikasi ke Artifact Registry. Jika Anda meneruskan flag--json_key
, kunci akan ditambahkan ke file.netrc
untuk autentikasi sandi.