Anda harus melakukan autentikasi ke Artifact Registry saat menggunakan aplikasi pihak ketiga untuk terhubung ke repositori.
Anda tidak perlu mengonfigurasi autentikasi untuk Cloud Build atau Google Cloud lingkungan runtime seperti Google Kubernetes Engine dan Cloud Run, tetapi Anda harus memverifikasi bahwa izin yang diperlukan telah dikonfigurasi.
Node.js mendukung dua metode untuk mengautentikasi permintaan ke repositori Artifact Registry Anda:
- Token akses: Gunakan token akses saat autentikasi di aplikasi Anda dikelola oleh pengguna manusia.
- Autentikasi sandi: Gunakan opsi ini saat aplikasi tidak mendukung Kredensial Default Aplikasi, tetapi mendukung autentikasi dengan nama pengguna dan sandi.
Sebelum memulai
-
Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud init - (Opsional) Konfigurasi 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 ringkasannya untuk mempelajari paket cakupan dan file konfigurasi untuk setelan autentikasi Anda.
Membuat token untuk autentikasi
Untuk mengautentikasi paket Anda di Artifact Registry, Anda harus membuat token autentikasi terlebih dahulu. Kemudian, Anda dapat menggunakan token ini saat membuat permintaan dari paket Anda ke Artifact Registry.
Anda dapat membuat token akses oauth2 menggunakan Google Cloud atau token
oauth2l di luar Google Cloud.
Token akses berlaku selama 60 menit. Buat token akses sesaat sebelum menjalankan perintah yang berinteraksi dengan repositori. Jika token akses Anda telah habis masa berlakunya, Anda harus membuat token akses baru.
Membuat token menggunakan gcloud
Untuk membuat token akses oauth2 menggunakan Google Cloud, jalankan perintah berikut:
export ACCESS_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
Sekarang Anda dapat mereferensikan ACCESS_TOKEN saat membuat permintaan dari paket Node.js Anda ke Artifact Registry.
Membuat token tanpa menggunakan gcloud
Untuk membuat token akses hanya menggunakan oauth2l CLI, lakukan hal berikut:
Instal
oauth2lversi terbaru dengan menjalankan perintah berikut:go install github.com/google/oauth2l@latestJalankan perintah berikut:
export ACCESS_TOKEN="oauth2l fetch --scope cloud-platform"Google Cloud membuat token hash SHA256 dan menyimpannya dalam variabel
ACCESS_TOKEN. Sekarang Anda dapat mereferensikanACCESS_TOKENsaat membuat permintaan dari paket Node.js Anda ke Artifact Registry.
Mengonfigurasi autentikasi sandi dengan kunci akun layanan
Gunakan pendekatan ini jika aplikasi Node.js Anda memerlukan autentikasi dengan nama pengguna dan sandi tertentu.
Kunci akun layanan adalah kredensial yang aktif 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 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 akan 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 di sesi gcloud CLI saat ini, jalankan perintah:
gcloud auth activate-service-account ACCOUNT --key-file=KEY-FILEDi mana
Jalankan perintah berikut untuk mencetak konfigurasi repositori:
gcloud artifacts print-settings npm [--project=PROJECT] \ [--repository=REPOSITORY] [--location=LOCATION] --scope=@SCOPE-NAME --json-key=KEY-FILEDi 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 Anda 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 yang akan terhubung, ulangi langkah-langkah sebelumnya untuk mendapatkan setelan dan menambahkannya ke file
.npmrc.