Mengautentikasi ke API dan layanan dari workload fleet

Halaman ini menunjukkan cara mengonfigurasi aplikasi untuk melakukan autentikasi ke Google Cloud API seperti Compute Engine API atau AI Platform API menggunakan Workload Identity Federation armada.

Apa yang dimaksud dengan Workload Identity Federation untuk fleet?

Dengan Workload Identity Federation, workload di cluster Anda dapat melakukan autentikasi ke Google Cloud tanpa mengharuskan Anda mendownload, merotasi secara manual, dan mengelola kredensial secara umum. Sebagai gantinya, workload melakukan autentikasi menggunakan token berumur pendek yang dihasilkan oleh Google Cloud.

Workload Identity Federation for GKE menyediakan kumpulan identitas workload seluruh project tempat aplikasi yang berjalan di cluster GKE mendapatkan identitas. Fleet Workload Identity Federation memperluas Workload Identity Federation untuk GKE ke semua cluster anggota fleet, terlepas dari apakah cluster berada dalam project yang berbeda atau berada di luar Google Cloud. Cluster terdaftar dengan Workload Identity Federation yang diaktifkan pada langganan fleet-nya mendapatkan identitas menggunakan kumpulan workload identity seluruh fleet, yang memungkinkan Anda mengonfigurasi autentikasi ke Google Cloud API dan ke layanan lain di seluruh fleet, bahkan di beberapa project.

Federasi Identitas Beban Kerja Flotte juga dapat digunakan oleh Agen Connect pada beberapa jenis cluster untuk melakukan autentikasi ke Google Cloud sebagai bagian dari keanggotaan fleet, dan diperlukan untuk menggunakan beberapa fitur GKE Enterprise yang berfungsi di seluruh project, seperti Cloud Service Mesh.

Workload Identity Federation pools dan kesamaan identitas

Dengan Workload Identity Federation fleet, setiap aplikasi di fleet Anda akan mendapatkan identitas gabungan yang berbeda yang dapat digunakan untuk melakukan autentikasi ke Google Cloud dan layanan lain yang Anda kembangkan. Aplikasi mendapatkan ID utama yang dapat dikenali IAM. ID ini menggunakan sintaksis berikut:

PREFIX://iam.googleapis.com/projects/FLEET_PROJECT_NUMBER/locations/global/workloadIdentityPools/FLEET_PROJECT_ID.svc.id.goog/SELECTOR

Sintaksis ini memiliki kolom berikut:

  • PREFIX: principal atau principalSet IAM bergantung pada resource yang dipilih.
  • FLEET_PROJECT_ID.svc.id.goog: workload identity pool untuk fleet Anda. Setiap fleet memiliki satu workload identity pool tetap yang dibuat untuk Anda.
  • FLEET_PROJECT_NUMBER: nomor project dari project host fleet.
  • SELECTOR: pemilih resource. Untuk daftar pemilih yang didukung, lihat ID utama yang didukung.

Seluruh fleet berbagi workload identity pool fleet, sehingga Anda dapat memberi aplikasi di mana saja dalam fleet, termasuk di project atau cloud lain, akses ke resource yang sama tanpa perlu mengelola akses tersebut untuk setiap cluster. Seperti fitur lain yang diaktifkan fleet, Federasi Workload Identity fleet bergantung pada prinsip kesamaan, yaitu objek Kubernetes yang memiliki nama dan namespace yang sama di cluster yang berbeda diperlakukan sebagai hal yang sama.

Misalnya, jika Anda memiliki aplikasi dengan backend yang di-deploy di beberapa cluster dalam fleet yang sama, dan yang perlu diautentikasi ke Google Cloud API, Anda dapat mengonfigurasi aplikasi sehingga semua workload di namespace backend dapat mengakses API tersebut. Untuk mengetahui informasi selengkapnya tentang cara fleet menggunakan kesamaan, termasuk kesamaan identitas, lihat Cara kerja fleet.

Setelah mengaktifkan Federasi Workload Identity fleet, Anda dapat mereferensikan akun utama di fleet dalam kebijakan izin IAM dengan menentukan ID akun utama yang sesuai. Misalnya, Anda dapat mereferensikan ServiceAccount tertentu di namespace Kubernetes tertentu dalam kebijakan izinkan. Semua aplikasi yang menggunakan ServiceAccount tersebut kemudian dapat mengakses resource Google Cloud yang menerapkan kebijakan izin IAM.

Alur kredensial

Agar aplikasi di namespace tertentu dapat melakukan autentikasi menggunakan Workload Identity Federation armada, Anda harus melakukan hal berikut:

  1. Deploy ConfigMap di namespace tersebut yang memiliki informasi berikut:

    • Workload identity pool dan penyedia identitas untuk cluster Anda.
    • Jalur di setiap Pod tempat Kubernetes memasang token ServiceAccount. Token ini adalah Token Web JSON (JWT) yang ditandatangani.

    ConfigMap ini berfungsi sebagai file kredensial default aplikasi (ADC) untuk workload.

  2. Buat kebijakan izin IAM yang memberikan akses pada resource Google Cloud tertentu ke ID akun utama akun utama di cluster Anda, seperti ServiceAccount di namespace.

  3. Pastikan beban kerja Anda di namespace memiliki konfigurasi berikut dalam spesifikasi Pod:

    • Variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS ditetapkan ke jalur pemasangan ConfigMap di Pod.
    • Volume yang diproyeksikan yang berisi token ServiceAccount dan ConfigMap yang Anda buat, dipasang di jalur yang sama dengan yang Anda tentukan dalam variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS.
    • Pemasangan volume dalam penampung yang mereferensikan volume yang diproyeksikan.

Saat workload melakukan panggilan Google Cloud API, langkah-langkah berikut akan terjadi:

  1. Library autentikasi Google Cloud menggunakan kredensial default aplikasi (ADC) untuk menemukan kredensial. ADC memeriksa jalur yang Anda tentukan dalam variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS untuk mencari token autentikasi.
  2. Library autentikasi ADC menggunakan data dalam ConfigMap untuk menukar JWT ServiceAccount yang Anda pasang di Pod dengan token gabungan berjangka pendek dari Layanan Token Keamanan yang mereferensikan ID utama beban kerja.
  3. ADC menyertakan token gabungan dengan permintaan API.
  4. Kebijakan izin IAM memberikan otorisasi kepada ID akun utama untuk melakukan operasi yang diminta pada resource Google Cloud.

ID akun utama yang didukung untuk Workload Identity Federation armada

Tabel berikut menjelaskan pemilih yang dapat Anda gunakan dalam kebijakan izin IAM untuk mereferensikan akun utama dalam fleet:

Jenis ID utama Sintaks
Semua Pod yang menggunakan Akun Layanan Kubernetes tertentu Pilih ServiceAccount berdasarkan namanya:
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/SERVICEACCOUNT

Ganti kode berikut:

  • PROJECT_NUMBER: nomor project numerik Anda. Untuk mendapatkan nomor project, lihat Mengidentifikasi project.
  • PROJECT_ID: Project ID Google Cloud Anda.
  • NAMESPACE: namespace Kubernetes.
  • SERVICEACCOUNT: nama ServiceAccount Kubernetes.

Pilih ServiceAccount menurut UID:
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/kubernetes.serviceaccount.uid/SERVICEACCOUNT_UID

Ganti kode berikut:

  • PROJECT_NUMBER: nomor project numerik Anda. Untuk mendapatkan nomor project, lihat Mengidentifikasi project.
  • PROJECT_ID: project ID Fleet Anda.
  • SERVICEACCOUNT_UID: UID objek ServiceAccount di server API.

Sebelum memulai

  • Pastikan Anda telah menginstal alat command line berikut:

    • Google Cloud CLI versi terbaru, yang mencakup gcloud, alat command line untuk berinteraksi dengan Google Cloud.
    • kubectl

    Jika Anda menggunakan Cloud Shell sebagai lingkungan shell untuk berinteraksi dengan Google Cloud, alat ini akan diinstal untuk Anda.

  • Pastikan Anda telah melakukan inisialisasi gcloud CLI untuk digunakan dengan project Anda.

Menyiapkan cluster

Sebelum aplikasi di fleet Anda dapat menerima identitas gabungan, cluster tempat aplikasi tersebut berjalan harus terdaftar ke fleet Anda dan dikonfigurasi dengan benar untuk menggunakan Workload Identity Federation fleet. Bagian berikut menjelaskan cara menyiapkan Workload Identity Federation untuk berbagai jenis cluster.

GKE

Untuk cluster GKE, lakukan hal berikut:

  1. Aktifkan Federasi Workload Identity untuk GKE di cluster Google Kubernetes Engine, jika belum diaktifkan.
  2. Daftarkan cluster ke fleet.

Anda juga dapat mengaktifkan Workload Identity Federation untuk GKE selama proses pembuatan cluster dan pendaftaran fleet.

Cluster di luar Google Cloud

Jenis cluster berikut akan otomatis mengaktifkan Workload Identity Federation fleet dan terdaftar ke fleet Anda selama pembuatan cluster:

  • Google Distributed Cloud (khusus software) di VMware
  • Google Distributed Cloud (khusus software) di bare metal
  • GKE on AWS
  • GKE on Azure

Cluster terpasang

Cluster yang terpasang EKS dan AKS yang terdaftar menggunakan GKE Multi-Cloud API terdaftar dengan Workload Identity Federation fleet yang diaktifkan secara default. Cluster lain yang terpasang dapat didaftarkan dengan mengaktifkan Workload Identity Federation fleet jika memenuhi persyaratan yang diperlukan. Ikuti petunjuk untuk jenis cluster Anda di Mendaftarkan cluster.

Menggunakan Workload Identity Federation fleet dalam aplikasi

Langkah-langkah berikut menunjukkan cara mengonfigurasi beban kerja di cluster terdaftar untuk menggunakan Workload Identity Federation fleet:

  1. Temukan nama workload identity pool dan penyedia identitas cluster Anda:

    gcloud container fleet memberships describe MEMBERSHIP_ID \
        --project=FLEET_PROJECT_ID \
        --format="table(authority.identityProvider,authority.workloadIdentityPool,name)"
    

    Ganti kode berikut:

    • MEMBERSHIP_ID: nama keanggotaan cluster. Nama ini sering kali berupa nama cluster Anda.
    • FLEET_PROJECT_ID: project ID dari project host armada.

    Outputnya mirip dengan hal berikut ini:

    IDENTITY_PROVIDER: IDENTITY_PROVIDER
    WORKLOAD_IDENTITY_POOL: WORKLOAD_IDENTITY_POOL
    NAME: projects/FLEET_PROJECT_ID/locations/MEMBERSHIP_LOCATION/memberships/MEMBERSHIP_ID
    

    Output ini berisi informasi berikut:

    • IDENTITY_PROVIDER: penyedia identitas untuk cluster.
    • MEMBERSHIP_LOCATION: lokasi keanggotaan fleet. Lokasi ini biasanya sama dengan lokasi cluster Anda.
    • WORKLOAD_IDENTITY_POOL: nama workload identity pool yang terkait dengan fleet Anda. Nilai ini memiliki sintaksis FLEET_PROJECT_ID.svc.id.goog.
  2. Buat namespace Kubernetes. Anda juga dapat menggunakan namespace yang ada, termasuk namespace default.

    kubectl create namespace NAMESPACE
    

    Ganti NAMESPACE dengan nama namespace.

  3. Buat Akun Layanan Kubernetes baru di namespace. Anda juga dapat menggunakan ServiceAccount yang ada, termasuk ServiceAccount default di namespace.

    kubectl create serviceaccount KSA_NAME \
        --namespace=NAMESPACE
    

    Ganti KSA_NAME dengan nama ServiceAccount.

  4. Simpan manifes berikut sebagai adc-config-map.yaml. ConfigMap ini berisi konfigurasi ADC untuk workload.

    kind: ConfigMap
    apiVersion: v1
    metadata:
      namespace: NAMESPACE
      name: my-cloudsdk-config
    data:
      config: |
        {
          "type": "external_account",
          "audience": "identitynamespace:WORKLOAD_IDENTITY_POOL:IDENTITY_PROVIDER",
          "subject_token_type": "urn:ietf:params:oauth:token-type:jwt",
          "token_url": "https://sts.googleapis.com/v1/token",
          "credential_source": {
            "file": "/var/run/secrets/tokens/gcp-ksa/token"
          }
        }
    
  5. Men-deploy ConfigMap:

    kubectl create -f adc-config-map.yaml
    
  6. Simpan manifes berikut sebagai workload-config.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
      namespace:  NAMESPACE
    spec:
      serviceAccountName: KSA_NAME
      containers:
      - name: sample-container
        image: google/cloud-sdk:slim
        command: ["sleep","infinity"]
        env:
        - name: GOOGLE_APPLICATION_CREDENTIALS
          value: /var/run/secrets/tokens/gcp-ksa/google-application-credentials.json
        volumeMounts:
        - name: gcp-ksa
          mountPath: /var/run/secrets/tokens/gcp-ksa
          readOnly: true
      volumes:
      - name: gcp-ksa
        projected:
          defaultMode: 420
          sources:
          - serviceAccountToken:
              path: token
              audience: WORKLOAD_IDENTITY_POOL
              expirationSeconds: 172800
          - configMap:
              name: my-cloudsdk-config
              optional: false
              items:
              - key: "config"
                path: "google-application-credentials.json"
    

    Saat Anda men-deploy beban kerja ini, volume gcp-ksa di Pod akan berisi data berikut:

    Penampung di Pod memasang volume gcp-ksa ke jalur /var/run/secrets/tokens/gcp-ksa dan mengonfigurasi ADC untuk mencari file JSON konfigurasi kredensial di jalur tersebut.

  7. Men-deploy workload:

    kubectl apply -f workload-config.yaml
    

Alternatif: Meniru identitas akun layanan IAM

Atau, Anda dapat mengonfigurasi ServiceAccount Kubernetes di cluster untuk meniru akun layanan IAM dan melakukan tindakan resmi apa pun yang dapat dilakukan akun layanan IAM. Pendekatan ini dapat meningkatkan overhead pemeliharaan, karena Anda harus mengelola penyambungan akun layanan di IAM dan Kubernetes.

Dalam sebagian besar skenario, sebaiknya Anda langsung mereferensikan akun utama Kubernetes dalam kebijakan izin IAM untuk memberikan akses ke resource Google Cloud dengan mengikuti petunjuk di Menggunakan Federasi Workload Identity fleet dalam aplikasi.

  1. Temukan nama workload identity pool dan penyedia identitas cluster Anda:

    gcloud container fleet memberships describe MEMBERSHIP_ID \
        --project=FLEET_PROJECT_ID \
        --format="table(authority.identityProvider,authority.workloadIdentityPool,name)"
    

    Ganti kode berikut:

    • MEMBERSHIP_ID: nama keanggotaan cluster. Nama ini sering kali berupa nama cluster Anda.
    • FLEET_PROJECT_ID: project ID dari project host armada.

    Outputnya mirip dengan hal berikut ini:

    IDENTITY_PROVIDER: IDENTITY_PROVIDER
    WORKLOAD_IDENTITY_POOL: WORKLOAD_IDENTITY_POOL
    NAME: projects/FLEET_PROJECT_ID/locations/MEMBERSHIP_LOCATION/memberships/MEMBERSHIP_ID
    

    Output ini berisi informasi berikut:

    • IDENTITY_PROVIDER: penyedia identitas untuk cluster.
    • MEMBERSHIP_LOCATION: lokasi keanggotaan. Lokasi ini biasanya sama dengan lokasi cluster Anda.
    • WORKLOAD_IDENTITY_POOL: nama workload identity pool yang terkait dengan fleet Anda. Nilai ini memiliki sintaksis FLEET_PROJECT_ID.svc.id.goog.
  2. Buat akun layanan IAM yang dapat ditiru oleh aplikasi Anda. Anda juga dapat menggunakan akun layanan IAM yang ada.

    gcloud iam service-accounts create IAM_SA_NAME \
        --project=IAM_SA_PROJECT_ID
    

    Ganti kode berikut:

    • IAM_SA_NAME: nama untuk akun layanan IAM Anda.
    • IAM_SA_PROJECT_ID: project ID project yang berisi akun layanan IAM Anda. Hal ini dapat berbeda dengan project host fleet Anda.
  3. Berikan izin apa pun yang diperlukan akun layanan IAM untuk mengakses Google Cloud API dengan menambahkan kebijakan izin IAM yang diperlukan. Anda dapat melakukannya dengan menggunakan gcloud iam service-accounts add-iam-policy-binding atau metode lain. Anda dapat mengetahui izin yang diperlukan untuk menggunakan Google Cloud API di setiap dokumentasi layanan, dan melihat daftar lengkap peran standar dengan izin yang diperlukan di Memahami peran.

  4. Buat Akun Layanan Kubernetes di namespace. Anda juga dapat menggunakan Akun Layanan Kubernetes yang ada dan namespace apa pun, termasuk Akun Layanan default dan namespace default.

    kubectl create serviceaccount KSA_NAME \
        --namespace=NAMESPACE
    

    Ganti kode berikut:

    • KSA_NAME: nama ServiceAccount.
    • NAMESPACE: nama namespace.
  5. Buat kebijakan izin IAM yang memungkinkan Akun Layanan Kubernetes di namespace tertentu di cluster Anda meniru identitas akun layanan IAM:

    gcloud iam service-accounts add-iam-policy-binding IAM_SA_NAME@IAM_SA_PROJECT_ID. \
        --project=IAM_SA_PROJECT_ID \
        --role=roles/iam.workloadIdentityUser \
        --member="serviceAccount:WORKLOAD_IDENTITY_POOL[NAMESPACE/KSA_NAME]"
    

    Ganti WORKLOAD_IDENTITY_POOL dengan nama kumpulan identitas beban kerja.

  6. Simpan manifes berikut sebagai adc-config-map.yaml. ConfigMap ini berisi konfigurasi ADC untuk workload.

    kind: ConfigMap
    apiVersion: v1
    metadata:
      namespace: K8S_NAMESPACE
      name: my-cloudsdk-config
    data:
      config: |
        {
          "type": "external_account",
          "audience": "identitynamespace:WORKLOAD_IDENTITY_POOL:IDENTITY_PROVIDER",
          "service_account_impersonation_url": "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/IAM_SA_NAME@GSA_PROJECT_ID.:generateAccessToken",
          "subject_token_type": "urn:ietf:params:oauth:token-type:jwt",
          "token_url": "https://sts.googleapis.com/v1/token",
          "credential_source": {
            "file": "/var/run/secrets/tokens/gcp-ksa/token"
          }
        }
    

    Ganti kode berikut:

    • IAM_SA_NAME: nama akun layanan IAM yang akan disamarkan.
    • IAM_SA_PROJECT_ID: project ID akun layanan IAM.
  7. Simpan manifes berikut sebagai workload-config.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
      namespace:  K8S_NAMESPACE
    spec:
      serviceAccountName: KSA_NAME
      containers:
      - name: my-container
        image: my-image
        command: ["sleep","infinity"]
        env:
          - name: GOOGLE_APPLICATION_CREDENTIALS
            value: /var/run/secrets/tokens/gcp-ksa/google-application-credentials.json
        volumeMounts:
        - name: gcp-ksa
          mountPath: /var/run/secrets/tokens/gcp-ksa
          readOnly: true
      volumes:
      - name: gcp-ksa
        projected:
          defaultMode: 420
          sources:
          - serviceAccountToken:
              path: token
              audience: WORKLOAD_IDENTITY_POOL
              expirationSeconds: 172800
          - configMap:
              name: my-cloudsdk-config
              optional: false
              items:
                - key: "config"
                  path: "google-application-credentials.json"
    
    

    Saat Anda men-deploy beban kerja ini, volume gcp-ksa di Pod akan berisi data berikut:

    Penampung di Pod memasang volume gcp-ksa ke jalur /var/run/secrets/tokens/gcp-ksa dan mengonfigurasi ADC untuk mencari file JSON konfigurasi kredensial di jalur tersebut.

  8. Men-deploy workload:

    kubectl apply -f workload-config.yaml
    

Memverifikasi penyiapan Workload Identity Federation untuk fleet

Di bagian ini, Anda akan membuat bucket Cloud Storage dan mengaksesnya dari Pod yang menggunakan Workload Identity Federation armada. Sebelum melakukan langkah-langkah ini, pastikan Anda telah mengonfigurasi Workload Identity Federation dengan mengikuti petunjuk di bagian Menggunakan Workload Identity Federation untuk fleet di aplikasi.

Bagian ini tidak menunjukkan cara memverifikasi Workload Identity Federation menggunakan metode peniruan identitas akun layanan IAM.

  1. Temukan nomor project numerik Anda:

    gcloud projects describe FLEET_PROJECT_ID \
        --format="value(projectNumber)"
    

    Outputnya mirip dengan hal berikut ini:

    1234567890
    
  2. Membuat bucket Cloud Storage:

    gcloud storage buckets create gs://FLEET_PROJECT_ID-test-bucket \
        --location=LOCATION
    

    Ganti LOCATION dengan lokasi Google Cloud.

  3. Buat kebijakan izin IAM yang memberikan akses di bucket ke akun layanan yang Anda buat:

    gcloud storage buckets add-iam-policy-binding gs://FLEET_PROJECT_ID-test-bucket \
        --condition=None \
        --role=roles/storage.objectViewer \
        --member=principal://iam.googleapis.com/projects/FLEET_PROJECT_NUMBER/locations/global/workloadIdentityPools/FLEET_PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME
    

    Ganti kode berikut:

    • FLEET_PROJECT_NUMBER: nomor project numerik Anda.
    • FLEET_PROJECT_ID: project ID Anda.
    • NAMESPACE: nama namespace Kubernetes yang menjalankan Pod Anda dari bagian sebelumnya.
    • KSA_NAME: nama Kubernetes ServiceAccount yang digunakan Pod Anda dari bagian sebelumnya.
  4. Buat sesi shell di Pod Anda:

    kubectl exec -it pods/my-pod --namespace=NAMESPACE -- /bin/bash
    
  5. Coba buat daftar objek dalam bucket:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/test-bucket/o"
    

    Outputnya adalah sebagai berikut:

    {
      "kind": "storage#objects"
    }
    

Melakukan autentikasi dari kode Anda

Saat Anda menggunakan Library Klien Cloud, library autentikasi akan otomatis menggunakan ADC untuk mencari kredensial guna melakukan autentikasi ke layanan Google Cloud. Anda harus menggunakan Library Klien Cloud yang mendukung Workload Identity Federation. Berikut ini versi Library Klien Cloud minimum yang diperlukan, serta petunjuk cara memeriksa versi saat ini:

C++

Sebagian besar Library Klien Google Cloud untuk C++ mendukung penggabungan identitas menggunakan objek ChannelCredentials, yang dibuat dengan memanggil grpc::GoogleDefaultCredentials(). Untuk melakukan inisialisasi kredensial ini, Anda harus membangun library klien dengan gRPC versi 1.36.0 atau yang lebih baru.

Library Klien Cloud Storage untuk C++ menggunakan REST API, bukan gRPC, sehingga tidak mendukung penggabungan identitas.

Go

Library klien untuk Go mendukung penggabungan identitas jika menggunakan modul golang.org/x/oauth2 versi v0.0.0-20210218202405-ba52d332ba99 atau versi lebih baru.

Untuk memeriksa versi modul yang digunakan library klien Anda, jalankan perintah berikut:

cd $GOPATH/src/cloud.google.com/go
go list -m golang.org/x/oauth2

Java

Library klien untuk Java mendukung penggabungan identitas jika menggunakan artefak com.google.auth:google-auth-library-oauth2-http versi 0.24.0 atau versi lebih baru.

Untuk memeriksa versi artefak yang digunakan library klien Anda, jalankan perintah Maven berikut di direktori aplikasi Anda:

mvn dependency:list -DincludeArtifactIds=google-auth-library-oauth2-http

Node.js

Library klien untuk Node.js mendukung penggabungan identitas jika menggunakan paket google-auth-library versi 7.0.2 atau versi lebih baru.

Untuk memeriksa versi paket yang digunakan library klien Anda, jalankan perintah berikut di direktori aplikasi Anda:

npm list google-auth-library

Saat membuat objek GoogleAuth, Anda dapat menentukan project ID atau mengizinkan GoogleAuth untuk otomatis menemukan project ID. Untuk otomatis menemukan project ID, akun layanan dalam file konfigurasi harus memiliki peran Browser (roles/browser), atau peran dengan izin yang setara, di project Anda. Untuk mengetahui detailnya, lihat README untuk paket google-auth-library.

Python

Library klien untuk Python mendukung penggabungan identitas jika menggunakan paket google-auth versi 1.27.0 atau versi lebih baru.

Untuk memeriksa versi paket yang digunakan library klien Anda, jalankan perintah berikut di lingkungan tempat paket diinstal:

pip show google-auth

Untuk menentukan project ID bagi klien autentikasi, Anda dapat menetapkan variabel lingkungan GOOGLE_CLOUD_PROJECT atau mengizinkan klien untuk otomatis menemukan project ID. Untuk otomatis menemukan project ID, akun layanan dalam file konfigurasi harus memiliki peran Browser (roles/browser), atau peran dengan izin yang setara, di project Anda. Untuk mengetahui detailnya, lihat panduan pengguna untuk paket google-auth.

Apa langkah selanjutnya?

Pelajari praktik terbaik untuk mengatur fleet saat menggunakan Workload Identity Federation fleet.