Melakukan autentikasi untuk gcloud CLI

Dokumen ini hanya membahas autentikasi untuk Google Cloud CLI dalam mengakses resourceGoogle Cloud . Jika Anda perlu mengautentikasi beban kerja menggunakan Library Klien Cloud atau Library Klien Google API, lihat Cara kerja Kredensial Default Aplikasi.

Sebelum memulai

Jika Anda baru menggunakan Google Cloud dan hanya ingin mulai menggunakan perintah gcloud CLI di lingkungan pengembangan lokal, Anda dapat melakukan inisialisasi gcloud CLI dengan perintah berikut:

gcloud init

Inisialisasi akan memandu Anda melalui alur autentikasi, menyiapkan konfigurasi gcloud CLI, dan memberi otorisasi gcloud CLI untuk bertindak atas nama Anda. Tidak perlu melakukan langkah autentikasi terpisah.

Bagian lain dari dokumen ini membahas skenario yang lebih kompleks seperti penggunaan gcloud CLI dengan berbagai jenis prinsipal, metode autentikasi yang sesuai untuk lingkungan yang berbeda, penggantian prinsipal, dan pengelolaan kredensial yang disimpan.

Metode autentikasi

Semua perintah gcloud CLI perlu diautentikasi ke Google Cloud API. Anda dapat melakukan autentikasi dengan cara berikut:

  • Memberi otorisasi dan menyimpan kredensial: Cocok untuk digunakan manusia di lingkungan pengembangan lokal. Anda dapat mengizinkan gcloud CLI untuk bertindak atas nama prinsipal menggunakan perintah gcloud auth login. Setelah autentikasi awal, perintah ini menyimpan kredensial di direktori konfigurasi gcloud CLI. gcloud CLI menggunakan kredensial yang disimpan ini untuk melakukan autentikasi secara otomatis untuk perintah berikutnya hingga sesi Anda berakhir, atau Anda mencabut otorisasi.

  • Mengautentikasi dengan file kredensial: Cocok untuk workload yang berjalan di luar Google Cloud. Anda dapat menggunakan variabel lingkungan atau properti konfigurasi gcloud CLI untuk menentukan file kredensial guna melakukan autentikasi otomatis. File ini dapat berupa salah satu dari berikut:

    • File konfigurasi kredensial Workload Identity Federation.

    • Kunci akun layanan.

  • Menyediakan token akses: Cocok untuk alur kerja otomatis yang sangat terisolasi atau sesi stateless di mesin bersama. Anda dapat melewati penyimpanan kredensial dengan memberikan token akses langsung ke gcloud CLI. Anda dapat melakukannya dengan menetapkan variabel lingkungan tertentu ke string token akses mentah, atau dengan mengarahkan gcloud CLI ke file yang berisi token akses.

Setelah melakukan autentikasi, Anda dapat secara opsional mengizinkan gcloud CLI meniru identitas akun layanan dengan memberikan alamat email akun layanan.

Anda dapat menggunakan beberapa metode autentikasi dalam satu lingkungan. Namun, hanya satu prinsipal yang digunakan untuk perintah gcloud tertentu. Untuk menentukan prinsipal mana yang akan digunakan, gcloud CLI mengikuti urutan prioritas.

Saat Anda tidak perlu melakukan autentikasi

Anda tidak perlu melakukan autentikasi untuk gcloud CLI dalam situasi berikut:

  • Segera setelah Anda melakukan inisialisasi gcloud CLI. Autentikasi dan otorisasi gcloud CLI untuk bertindak atas nama Anda disertakan dalam proses inisialisasi. Anda mungkin masih perlu melakukan autentikasi lagi jika Anda perlu mengakses resource yang berbeda menggunakan prinsipal yang berbeda, atau jika Anda perlu melakukan autentikasi ulang prinsipal Anda.
  • Saat menggunakan gcloud CLI dari resource yang mengekspos server metadata Compute Engine. Hal ini mencakup resource seperti instance VM Compute Engine, layanan Cloud Run, dan build Cloud Build. Gcloud CLI melakukan autentikasi menggunakan akun layanan yang terpasang ke VM, dan dapat mengakses resource yang sama dengan akun layanan tersebut dalam batas cakupan akses yang telah diterapkan.
  • Saat menggunakan Cloud Shell. gcloud CLI otomatis melakukan autentikasi menggunakan prinsipal yang Anda gunakan untuk login ke konsol Google Cloud . Saat Anda menjalankan perintah gcloud CLI untuk pertama kalinya dalam sesi Cloud Shell baru, Anda akan diminta untuk memberi otorisasi Cloud Shell menggunakan prinsipal tersebut.

Pilih principal yang tepat untuk tugas tersebut

Ada berbagai jenis akun utama untuk penggunaan manusia dan workload otomatis. Jenis akun utama yang perlu Anda gunakan memengaruhi cara Anda melakukan autentikasi.

  • Akun pengguna: Akun ini adalah Akun Google yang ditujukan bagi manusia untuk melakukan pekerjaan interaktif, seperti tugas administratif insidental, konfigurasi layanan non-terprogram, pengujian, eksperimen, dan kemampuan observasi. Google Cloud

    Anda mengautentikasi sebagai akun pengguna dengan kredensial pengguna, seperti sandi dan kode sekali pakai.

  • Akun layanan: Ini adalah akun khusus untuk Google Cloud beban kerja yang dapat digunakan untuk mengakses layanan atau resource. Biasanya, Anda tidak melakukan autentikasi sebagai akun layanan secara langsung. Sebagai gantinya, Anda melampirkan akun layanan ke resource seperti VM Compute Engine, atau menggunakan peniruan identitas akun layanan.

  • Akun utama gabungan: Ini adalah identitas yang mereferensikan akun pengguna atau layanan di penyedia identitas eksternal. Ada dua jenis akun utama gabungan yang didukung oleh Google Cloud, yang memiliki nama serupa:

Menggunakan gcloud CLI sebagai pengguna

Untuk tugas interaktif, Anda biasanya melakukan autentikasi dengan salah satu cara berikut:

  • Akun pengguna

  • Identitas pengguna gabungan, menggunakan Workforce Identity Federation

Akun pengguna

Cara Anda melakukan autentikasi dengan akun pengguna untuk gcloud CLI bergantung pada apakah browser web diinstal di perangkat Anda.

Perangkat saya memiliki browser web

Untuk mengautentikasi dengan akun pengguna di perangkat dengan browser web, selesaikan langkah-langkah berikut:

  1. Jalankan perintah berikut untuk memulai proses:

    gcloud auth login
    
  2. Ikuti alur berbasis browser untuk mengautentikasi dan memberi otorisasi gcloud CLI agar dapat mengakses resource atas nama Anda untuk perintah di masa mendatang.

Perintah gcloud auth login menyimpan kredensial akses di direktori beranda Anda. Principal yang diautentikasi menjadi principal aktif dalam konfigurasi gcloud CLI aktif Anda. Kecuali diganti, gcloud CLI menggunakan kredensial tersimpan ini untuk mengakses Google Cloud.

Perangkat saya tidak memiliki browser web

Jika perangkat yang Anda gunakan untuk menjalankan gcloud CLI tidak memiliki browser web, Anda dapat melakukan autentikasi dengan akun pengguna Anda di perangkat tepercaya lainnya. Proses ini berubah, bergantung pada software yang diinstal di perangkat tepercaya lainnya.

Mengautentikasi menggunakan perangkat tepercaya lain

Pilih software yang tersedia di perangkat tepercaya lainnya.

gcloud CLI dan browser web

Gunakan flag --no-browser untuk menyelesaikan proses autentikasi di perangkat lain dengan browser web dan gcloud CLI yang diinstal:

  1. Jalankan perintah berikut di perangkat asli yang ingin Anda gunakan untuk menjalankan gcloud CLI:

    Linux and macOS

    gcloud auth login \
        --no-browser
    

    Windows (PowerShell)

    gcloud auth login `
        --no-browser
    
  2. Salin perintah gcloud yang dimulai dengan gcloud auth login --remote-bootstrap=" untuk digunakan di perangkat lain.

  3. Buka perangkat tepercaya lain yang memiliki browser web dan gcloud CLI versi 372.0.0 atau yang lebih baru.

  4. Di terminal, jalankan perintah yang Anda salin sebelumnya yang dimulai dengan gcloud auth login --remote-bootstrap=", dan selesaikan alur berbasis browser.

  5. Di terminal, salin URL yang dimulai dengan https://localhost untuk digunakan di perangkat asli.

  6. Kembali ke perangkat asli.

  7. Di terminal, pada perintah, tempelkan URL https://localhost yang Anda salin sebelumnya. Tekan Enter atau Return di keyboard Anda untuk menyelesaikan proses.

Perintah gcloud auth login menyimpan kredensial akses di direktori beranda Anda. Principal yang diautentikasi menjadi principal aktif dalam konfigurasi gcloud CLI aktif Anda. Kecuali diganti, gcloud CLI menggunakan kredensial tersimpan ini untuk mengakses Google Cloud.

Khusus browser web

Gunakan tanda --no-launch-browser untuk menyelesaikan proses autentikasi menggunakan browser web perangkat lain:

  1. Jalankan perintah berikut di perangkat asli yang ingin Anda gunakan untuk menjalankan gcloud CLI:

    Linux and macOS

    gcloud auth login \
        --no-launch-browser
    

    Windows (PowerShell)

    gcloud auth login `
        --no-launch-browser
    
  2. Salin URL yang diawali dengan https://accounts.google.com/o/oauth2/auth untuk digunakan di perangkat lain.

  3. Buka perangkat tepercaya lain yang telah menginstal browser web.

  4. Buka browser web, buka URL yang Anda salin sebelumnya, dan selesaikan alur berbasis browser.

  5. Salin kode verifikasi untuk digunakan di perangkat asli.

  6. Kembali ke perangkat asli.

  7. Di terminal, pada perintah, tempelkan kode verifikasi yang Anda salin sebelumnya. Tekan Enter atau Return di keyboard Anda untuk menyelesaikan proses.

Perintah gcloud auth login menyimpan kredensial akses di direktori beranda Anda. Principal yang diautentikasi menjadi principal aktif dalam konfigurasi gcloud CLI aktif Anda. Kecuali diganti, gcloud CLI menggunakan kredensial tersimpan ini untuk mengakses Google Cloud.

Identitas pengguna gabungan

Anda dapat menggunakan gcloud CLI dengan identitas pengguna gabungan yang dikelola di penyedia identitas (IdP) eksternal. Anda dapat melakukannya dengan Workforce Identity Federation.

Petunjuk berikut mengasumsikan bahwa Anda telah menyiapkan pool dan penyedia Workforce Identity Federation agar berfungsi dengan IdP Anda.

Untuk menggunakan gcloud CLI dengan identitas pengguna gabungan, Anda membuat file konfigurasi login, lalu login menggunakan alur berbasis browser:

  1. Jalankan perintah berikut untuk membuat file konfigurasi login:

    Linux and macOS

    gcloud iam workforce-pools create-login-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --output-file=LOGIN_CONFIG_PATH

    Windows (PowerShell)

    gcloud iam workforce-pools create-login-config `
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID `
        --output-file=LOGIN_CONFIG_PATH

    Ganti kode berikut:

    • WORKFORCE_POOL_ID: ID pool Federasi Identitas Tenaga Kerja.
    • WORKFORCE_PROVIDER_ID: ID penyedia Workforce Identity Federation.
    • LOGIN_CONFIG_PATH: Jalur untuk menulis file konfigurasi login ke. Contoh, login-config.json.

    File konfigurasi login berisi endpoint yang digunakan oleh gcloud CLI untuk mengaktifkan alur autentikasi berbasis browser dan menetapkan audience ke IdP yang dikonfigurasi di penyedia workforce identity pool. File tidak berisi informasi rahasia.