Menyiapkan autentikasi untuk Helm

Halaman ini menjelaskan cara mengonfigurasi Helm untuk mengautentikasi dengan repositori Artifact Registry.

Sebelum memulai

  1. Jika repositori untuk diagram Anda tidak ada, buat repositori baru. Pilih Docker sebagai format repositori.
  2. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

    gcloud init
  3. (Opsional) Konfigurasi default untuk perintah gcloud.
  4. Menginstal Helm 3.8.0 atau yang lebih baru. Pada Helm versi sebelumnya, dukungan untuk diagram dalam format OCI adalah fitur eksperimental.

    Jalankan helm version untuk memverifikasi versi Anda.

Memilih metode autentikasi

Dalam sebagian besar situasi, sebaiknya gunakan akun layanan untuk mengautentikasi ke Artifact Registry.

Akun layanan untuk aplikasi yang biasanya terintegrasi dengan Artifact Registry, seperti Cloud Build atau Cloud Run, dikonfigurasi secara default izin untuk repositori dalam project yang sama. Anda tidak perlu mengonfigurasi autentikasi Docker untuk aplikasi ini.

Tersedia metode autentikasi berikut:

Menggunakan kredensial Artifact Registry yang dikonfigurasi untuk Docker
Secara default, Helm dapat mengautentikasi dengan kredensial yang sama dengan yang Anda gunakan untuk Docker.
Token akses
Kredensial Default Aplikasi menyediakan token akses jangka pendek yang digunakan akun layanan untuk mengakses resource Google Cloud Anda.
File kunci JSON

Pasangan kunci yang dikelola pengguna yang dapat Anda gunakan sebagai kredensial untuk akun layanan. Karena kredensial berumur panjang, kredensial ini adalah opsi yang paling tidak aman dari semua metode autentikasi yang tersedia.

Jika memungkinkan, gunakan token akses untuk mengurangi risiko akses tanpa izin ke artefak Anda.

Menggunakan konfigurasi Docker

Secara default, Helm mendukung setelan registry di file konfigurasi Docker config.json. Helm menemukan setelan registry di lokasi default atau lokasi yang ditentukan oleh variabel lingkungan DOCKER_CONFIG.

Jika Anda mengonfigurasi Docker dengan pembantu kredensial untuk melakukan autentikasi dengan Artifact Registry, Helm akan menggunakan konfigurasi yang ada untuk repositori Docker Artifact Registry.

Menggunakan token akses

Token akses adalah token yang memiliki masa aktif singkat yang memberikan akses ke resource Google Cloud Anda. Karena token berumur pendek, Anda harus memintanya kurang dari satu jam sebelum menggunakannya untuk terhubung dengan repositori Artifact Registry.

Google Cloud mendapatkan token akses menggunakan Kredensial Default Aplikasi.

Untuk menggunakan token akses:

  1. 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.

    Buka halaman Service Accounts

  2. Berikan peran Artifact Registry yang sesuai ke akun layanan untuk memberikan akses repositori.

  3. Tetapkan lokasi file kunci akun layanan ke variabel GOOGLE_APPLICATION_CREDENTIALS agar 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.

  4. Dapatkan token akses sebagai kredensial saat Anda melakukan autentikasi ke Artifact Registry dengan Docker.

    Linux / Mac

    Jalankan perintah berikut:

    gcloud auth application-default print-access-token | helm registry login -u oauth2accesstoken \
    --password-stdin https://LOCATION-docker.pkg.dev
    

    Windows

    Jalankan perintah berikut:

    gcloud auth application-default print-access-token
    ya29.8QEQIfY_...
    
    helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \
    https://LOCATION-docker.pkg.dev
    

    Dari mana

    • oauth2accesstoken adalah nama pengguna yang akan digunakan saat mengautentikasi dengan token akses.
    • gcloud auth application-default print-access-token adalah perintah gcloud untuk mendapatkan token akses untuk akun layanan. Token akses Anda adalah sandi untuk autentikasi.
    • LOCATION adalah lokasi regional atau multi-regional dari repositori tempat gambar disimpan.

Helm sekarang diautentikasi dengan Artifact Registry.

Menggunakan file kunci JSON

Siapa pun yang memiliki akses ke kunci pribadi yang valid untuk akun layanan akan dapat mengakses resource melalui akun layanan. Perhatikan bahwa siklus proses akses kunci ke akun layanan (sehingga data yang dapat diakses akun layanan) tidak bergantung pada siklus proses pengguna yang mendownload kunci.

Gunakan panduan berikut untuk membatasi akses ke repositori Anda:

  • Buat akun layanan khusus yang hanya digunakan untuk berinteraksi dengan repositori.
  • Berikan peran Artifact Registry spesifik untuk akses yang diperlukan oleh akun layanan. Misalnya, akun layanan yang hanya mendownload artefak hanya memerlukan peran Artifact Registry Reader.
  • Konfigurasikan izin untuk akun layanan khusus Anda di setiap repositori, bukan di level project. Kemudian, Anda dapat menentukan akses berdasarkan konteks repositori. Misalnya, akun layanan untuk build pengembangan mungkin memiliki peran Artifact Registry Reader untuk repositori produksi dan peran Artifact Registry Writer untuk repositori staging.
  • Ikuti praktik terbaik untuk mengelola kunci akun layanan.

Untuk membuat akun layanan baru dan kunci akun layanan yang hanya dapat digunakan dengan repositori Artifact Registry:

  1. 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.

    Buka halaman Service Accounts

  2. Secara opsional, Anda dapat mengenkode base64 semua konten file kunci.

    Linux

    base64 FILE-NAME > NEW-FILE-NAME
    

    macOS

    base64 -i FILE-NAME -o NEW-FILE-NAME
    

    Windows

    Base64.exe -e FILE-NAME > NEW-FILE-NAME
    

    Dengan FILE-NAME adalah nama file kunci asli dan NEW-FILE-NAME adalah file kunci berenkode base64 Anda.

  3. Berikan peran Artifact Registry yang sesuai ke akun layanan untuk memberikan akses repositori.

  4. Gunakan kunci akun layanan untuk mengautentikasi:

    Linux / Mac

    Jalankan perintah berikut:

    cat KEY-FILE | helm registry login -u KEY-TYPE --password-stdin \
    https://LOCATION-docker.pkg.dev
    

    Windows

    Jalankan perintah berikut:

    helm registry login -u KEY-TYPE --password-stdin https://LOCATION-docker.pkg.dev < KEY-FILE
    

    Dari mana

    • KEY-TYPE adalah salah satu dari yang berikut:
      • _json_key jika Anda menggunakan kunci akun layanan dalam format JSON seperti yang diberikan saat Anda membuat file.
      • _json_key_base64 jika Anda melakukan enkode base64 pada semua konten file.
    • KEY-FILE adalah nama file kunci akun layanan dalam format JSON.
    • LOCATION adalah lokasi regional atau multi-regional dari repositori tempat gambar disimpan.

Helm sekarang diautentikasi dengan Artifact Registry.

Langkah selanjutnya