Anda harus mengautentikasi ke Artifact Registry saat menggunakan aplikasi pihak ketiga untuk terhubung ke repositori.
Anda tidak perlu mengonfigurasi autentikasi untuk lingkungan runtime Cloud Build atau Google Cloud seperti Google Kubernetes Engine dan Cloud Run, tetapi Anda harus memverifikasi bahwa izin yang diperlukan telah dikonfigurasi.
Sebelum memulai
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- (Opsional) Konfigurasikan default untuk perintah gcloud CLI.
- Jika Anda terhubung ke repositori dari Windows, instal PowerShell.
- Buat akun layanan untuk bertindak atas nama aplikasi Anda.
- Jika Anda baru menggunakan npm, baca ringkasan untuk mempelajari paket dengan cakupan dan file konfigurasi untuk setelan autentikasi Anda.
Ringkasan
Artifact Registry mendukung metode autentikasi berikut.
- Menggunakan helper kredensial
- Opsi ini memberikan fleksibilitas paling besar. Saat Anda menyertakan helper dalam konfigurasi npm, Artifact Registry akan menelusuri kredensial akun layanan di lingkungan.
- Menentukan kunci akun layanan sebagai kredensial
- Gunakan opsi ini jika aplikasi tidak mendukung Kredensial Default Aplikasi, tetapi mendukung autentikasi dengan nama pengguna dan sandi.
Mengautentikasi dengan helper kredensial
google-artifactregistry-auth adalah library klien yang mendapatkan kredensial untuk repositori Artifact Registry.
Artifact Registry menelusuri kredensial dalam urutan berikut:
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.
Untuk membuat akun layanan dan menetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS
:
Buat akun layanan untuk bertindak atas nama aplikasi Anda, atau pilih akun layanan yang ada yang digunakan untuk otomatisasi CI/CD Anda.
Berikan peran Artifact Registry tertentu ke akun layanan untuk memberikan akses repositori.
Tetapkan lokasi file kunci akun layanan ke variabel
GOOGLE_APPLICATION_CREDENTIALS
sehingga helper kredensial Artifact Registry dapat memperoleh kunci Anda saat terhubung dengan repositori.export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
Dengan KEY-FILE adalah jalur ke file kunci akun layanan.
Untuk mengonfigurasi autentikasi:
Jalankan perintah berikut untuk mencetak konfigurasi repositori:
gcloud artifacts print-settings npm [--project=PROJECT] \ [--repository=REPOSITORY] \ [--location=LOCATION] \ --scope=@SCOPE-NAME \
Dari mana
- PROJECT adalah project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.
- REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini dihilangkan dari perintah.
- LOCATION adalah lokasi regional atau multi-regional untuk repositori.
SCOPE-NAME adalah nama cakupan npm yang akan dikaitkan dengan repositori.
Menggunakan cakupan memastikan bahwa Anda selalu memublikasikan dan menginstal paket dari repositori yang benar.
Paket tanpa cakupan dikaitkan dengan registry npm default Anda, biasanya registry publik npm. Jika Anda tidak menentukan cakupan, konfigurasi yang ditampilkan akan menetapkan repositori Artifact Registry sebagai registry default. Hal ini dapat menyebabkan masalah jika project Node.js Anda perlu menginstal paket dari registry npm publik dan repositori Artifact Registry Anda.
Tambahkan setelan konfigurasi yang ditampilkan ke file konfigurasi .npmrc di project Node.js Anda. File ini biasanya berada di direktori yang sama dengan
package.json
.Pastikan Anda menyertakan setelan ini dalam project Node.js untuk paket yang Anda publikasikan serta project yang akan menginstal dependensi dari repositori npm Anda.
Jika Anda memiliki repositori Node.js lain untuk dihubungkan, ulangi langkah-langkah sebelumnya untuk mendapatkan setelan dan menambahkannya ke file
.npmrc
yang sesuai.Jika Anda siap menghubungkan repositori, dapatkan token akses untuk autentikasi.
Setiap repositori paket Node.js Artifact Registry dikaitkan dengan
endpoint registry https://LOCATION-npm.pkg.dev/PROJECT/REPOSITORY
Jika tidak menentukan cakupan dengan perintah print-settings
, Anda dapat menjalankan
perintah berikut untuk mengaitkan cakupan dengan repositori Artifact Registry.
npm config set @SCOPE_NAME:registry https://LOCATION-npm.pkg.dev/PROJECT/REPOSITORY/
Mendapatkan token akses
Token akses berlaku selama 60 menit. Buat token akses sesaat sebelum menjalankan perintah yang berinteraksi dengan repositori.
Untuk mendapatkan token, gunakan salah satu opsi berikut:
Gunakan perintah
npx
untuk memuat ulang token akses.Pastikan kredensial untuk terhubung ke registry npm publik ada dalam file konfigurasi npm pengguna Anda,
~/.npmrc
.Jalankan perintah berikut di direktori project Node.js Anda.
npx google-artifactregistry-auth
Jika repositori Artifact Registry Anda ditetapkan sebagai registry global dan paket Anda tidak dicakup, gunakan perintah berikut agar perintah dapat mendownload helper kredensial dari registry npm publik, bukan repositori Artifact Registry Anda.
npm_config_registry=https://registry.npmjs.org npx google-artifactregistry-auth
Tambahkan skrip ke file
package.json
dalam project Anda."scripts": { "artifactregistry-login": "npx google-artifactregistry-auth" }
Jalankan skrip di direktori project Node.js Anda.
npm run artifactregistry-login
Artifact Registry membaca setelan repositori Artifact Registry dalam file .npmrc
project Anda dan menggunakannya untuk menambahkan kredensial token ke file .npmrc
pengguna Anda. Menyimpan token dalam file .npmrc
pengguna akan mengisolasi
kredensial Anda dari kode sumber dan sistem kontrol sumber Anda.
--repo-config
adalah file.npmrc
dengan setelan repositori Anda. Jika Anda tidak menentukan flag ini, lokasi default-nya adalah direktori saat ini.--credential-config
adalah jalur ke file.npmrc
tempat Anda ingin menulis token akses. Default-nya adalah file.npmrc
pengguna Anda.
Mengonfigurasi autentikasi sandi
Gunakan pendekatan ini jika aplikasi Node.js Anda memerlukan autentikasi dengan nama pengguna dan sandi yang ditentukan.
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 membuat akun layanan dan 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 tertentu ke akun layanan untuk memberikan akses repositori.
Jika Anda ingin mengaktifkan akun layanan dalam sesi gcloud CLI saat ini, jalankan perintah:
gcloud auth activate-service-account ACCOUNT --key-file=KEY-FILE
Dari mana
- ACCOUNT adalah akun pengguna atau akun layanan.
- KEY-FILE adalah jalur ke file kunci JSON akun layanan.
Jalankan perintah berikut untuk mencetak konfigurasi repositori:
gcloud artifacts print-settings npm [--project=PROJECT] \ [--repository=REPOSITORY] [--location=LOCATION] --scope=@SCOPE-NAME --json-key=KEY-FILE
Dari mana
- PROJECT adalah project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.
- REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini dihilangkan dari perintah.
- LOCATION adalah lokasi regional atau multi-regional untuk repositori.
SCOPE-NAME adalah nama cakupan npm yang akan dikaitkan dengan repositori.
Menggunakan cakupan memastikan bahwa Anda selalu memublikasikan dan menginstal paket dari repositori yang benar.
Paket tanpa cakupan dikaitkan dengan registry npm default Anda, biasanya registry publik npm. Jika Anda tidak menentukan cakupan, konfigurasi yang ditampilkan akan menetapkan repositori Artifact Registry sebagai registry default. Hal ini dapat menyebabkan masalah jika project Node.js Anda perlu menginstal paket dari registry npm publik dan repositori Artifact Registry Anda.
KEY-FILE adalah jalur ke file kunci JSON akun layanan.
Tambahkan setelan konfigurasi yang ditampilkan ke file konfigurasi .npmrc di project Node.js Anda. File ini biasanya berada di direktori yang sama dengan
package.json
. Pastikan Anda menyertakan setelan ini dalam project Node.js untuk paket yang Anda publikasikan serta project yang akan menginstal dependensi dari repositori npm Anda.Jika Anda memiliki repositori Node.js lain untuk dihubungkan, ulangi langkah-langkah sebelumnya untuk mendapatkan setelan dan menambahkannya ke file
.npmrc
.