Mengonfigurasi Workload Identity Federation dengan Kubernetes

Panduan ini menjelaskan cara menggunakan Workload Identity Federation agar workload yang berjalan di Azure Kubernetes Service (AKS), Amazon Elastic Kubernetes Service, atau pada cluster Kubernetes yang dihosting sendiri dapat diautentikasi ke Google Cloud.

Dengan Kubernetes, Anda dapat mengonfigurasi cluster sehingga workload dapat memperoleh token Kubernetes ServiceAccount dari volume yang diproyeksikan. Dengan menyiapkan Workload Identity Federation, Anda dapat mengizinkan workload menggunakan token ServiceAccount Kubernetes ini untuk melakukan autentikasi ke Google Cloud.

Jika Anda menggunakan GKE, gunakan Workload Identity Federation for GKE, bukan mengonfigurasi Workload Identity Federation.

Sebelum memulai

Sebelum mengonfigurasi Workload Identity Federation, pastikan cluster Kubernetes Anda memenuhi kriteria berikut:

GKE

Untuk pengguna Google Kubernetes Engine (GKE), lihat Mengautentikasi ke Google Cloud API dari workload GKE.

AKS

Pastikan cluster Anda memenuhi kriteria berikut:

  • Anda telah mengaktifkan fitur Penerbit OIDC.

    Anda harus mengaktifkan fitur ini agar Workload Identity Federation dapat mengakses metadata OpenID Connect dan JSON Web Key Set (JWKS) untuk cluster.

EKS

Anda tidak perlu melakukan perubahan apa pun dalam konfigurasi EKS.

Kubernetes

Pastikan cluster Anda memenuhi kriteria berikut:

  • Anda menjalankan Kubernetes 1.20 atau yang lebih baru.

    Kubernetes versi sebelumnya menggunakan format token ServiceAccount yang berbeda dan tidak kompatibel dengan petunjuk dalam dokumen ini.

  • Anda telah mengonfigurasi kube-apiserver agar mendukung proyeksi volume token ServiceAccount.

Cluster tidak perlu dapat diakses melalui internet.

Mengonfigurasi Workload Identity Federation

Anda hanya perlu melakukan langkah-langkah ini satu kali untuk setiap cluster Kubernetes. Anda kemudian dapat menggunakan workload identity pool dan penyedia workload identity yang sama untuk beberapa pod Kubernetes dan di beberapa project Google Cloud.

Untuk mulai mengonfigurasi Workload Identity Federation, lakukan langkah berikut:

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Sebaiknya Anda menggunakan project khusus untuk mengelola workload identity pool dan penyedia workload.
  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the IAM, Resource Manager, Service Account Credentials, and Security Token Service APIs.

    Enable the APIs

Menentukan pemetaan dan kondisi atribut

Token Akun Layanan Kubernetes berisi beberapa klaim, termasuk yang berikut ini:

  • sub: Berisi namespace dan nama ServiceAccount-misalnya, system:serviceaccount:NAMESPACE:KSA_NAME, dengan NAMESPACE adalah namespace ServiceAccount dan KSA_NAME adalah nama ServiceAccount.
  • "kubernetes.io".namespace: Berisi namespace ServiceAccount.
  • "kubernetes.io".serviceaccount.name: Berisi nama ServiceAccount.
  • "kubernetes.io".pod.name: Berisi nama pod

Untuk menggunakan sub sebagai ID subjek (google.subject) di Google Cloud, gunakan pemetaan berikut:

google.subject=assertion.sub

Anda dapat memetakan atribut tambahan (opsional). Selanjutnya, Anda dapat merujuk ke atribut ini saat memberikan akses ke resource. Contoh:

google.subject=assertion.sub,
attribute.namespace=assertion['kubernetes.io']['namespace'],
attribute.service_account_name=assertion['kubernetes.io']['serviceaccount']['name'],
attribute.pod=assertion['kubernetes.io']['pod']['name']

Tentukan kondisi atribut (opsional). Kondisi atribut adalah ekspresi CEL yang dapat memeriksa atribut pernyataan dan atribut target. Jika kondisi atribut dievaluasi ke true untuk kredensial tertentu, kredensial tersebut akan diterima. Jika tidak, kredensial akan ditolak.

Anda dapat menggunakan kondisi atribut untuk membatasi ServiceAccount Kubernetes mana yang dapat menggunakan Workload Identity Federation untuk mendapatkan token Google Cloud dengan masa berlaku pendek. Misalnya, kondisi berikut membatasi akses ke Akun Layanan Kubernetes dari namespace backend dan monitoring:

assertion['kubernetes.io']['namespace'] in ['backend', 'monitoring']

Membuat workload identity pool dan penyedia workload

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna mengonfigurasi Workload Identity Federation, minta administrator untuk memberi Anda peran IAM berikut pada project:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Atau, peran dasar Pemilik IAM (roles/owner) juga mencakup izin untuk mengonfigurasi penggabungan identitas. Anda tidak boleh memberikan peran dasar dalam lingkungan produksi, tetapi dapat memberikannya dalam lingkungan pengembangan atau pengujian.

Untuk membuat workload identity pool dan penyedia workload, lakukan hal berikut:

AKS

  1. Tentukan URL penerbit cluster AKS Anda:

    az aks show -n NAME -g RESOURCE_GROUP --query "oidcIssuerProfile.issuerUrl" -otsv
    

    Ganti kode berikut:

    • NAME: Nama cluster
    • RESOURCE_GROUP: Grup resource cluster

    Perintah ini menampilkan URL penerbit. Anda memerlukan URL penerbit di salah satu langkah berikut.

    Jika perintah tersebut tidak menampilkan URL penerbit, pastikan Anda telah mengaktifkan fitur penerbit OIDC.

  2. Buat workload identity pool baru:

    gcloud iam workload-identity-pools create POOL_ID \
        --location="global" \
        --description="DESCRIPTION" \
        --display-name="DISPLAY_NAME"
    

    Ganti kode berikut:

    • POOL_ID: ID unik untuk pool
    • DISPLAY_NAME: Nama pool
    • DESCRIPTION: Deskripsi pool yang Anda pilih Deskripsi ini muncul saat Anda memberikan akses ke identitas pool.
  3. Tambahkan cluster AKS sebagai penyedia workload identity pool:

    gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \
        --location="global" \
        --workload-identity-pool="POOL_ID" \
        --issuer-uri="ISSUER" \
        --attribute-mapping="MAPPINGS" \
        --attribute-condition="CONDITIONS"
    

    Ganti kode berikut:

    • WORKLOAD_PROVIDER_ID: ID penyedia unik untuk workload identity pool yang Anda pilih.
    • POOL_ID: ID workload identity pool yang telah Anda buat sebelumnya.
    • ISSUER: URI penerbit yang telah Anda tentukan sebelumnya.
    • MAPPINGS: Daftar yang dipisahkan koma untuk pemetaan atribut yang telah Anda buat sebelumnya dalam panduan ini.
    • CONDITIONS: Kondisi atribut opsional yang telah Anda buat sebelumnya dalam panduan ini. Hapus parameter jika Anda tidak memiliki kondisi atribut.

EKS

  1. Tentukan URL penerbit cluster EKS Anda:

    aws eks describe-cluster --name NAME --query "cluster.identity.oidc.issuer" --output text
    

    Ganti NAME dengan nama cluster.

    Perintah ini menampilkan URL penerbit. Anda memerlukan URL penerbit di salah satu langkah berikut.

  2. Buat workload identity pool baru:

    gcloud iam workload-identity-pools create POOL_ID \
        --location="global" \
        --description="DESCRIPTION" \
        --display-name="DISPLAY_NAME"
    

    Ganti kode berikut:

    • POOL_ID: ID unik untuk pool
    • DISPLAY_NAME: Nama pool
    • DESCRIPTION: Deskripsi pool yang Anda pilih Deskripsi ini muncul saat Anda memberikan akses ke identitas pool.
  3. Tambahkan cluster EKS sebagai penyedia workload identity pool:

    gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \
        --location="global" \
        --workload-identity-pool="POOL_ID" \
        --issuer-uri="ISSUER" \
        --attribute-mapping="MAPPINGS" \
        --attribute-condition="CONDITIONS"
    

    Ganti kode berikut:

    • WORKLOAD_PROVIDER_ID: ID penyedia unik untuk workload identity pool yang Anda pilih.
    • POOL_ID: ID workload identity pool yang telah Anda buat sebelumnya.
    • ISSUER: URI penerbit yang telah Anda tentukan sebelumnya.
    • MAPPINGS: Daftar yang dipisahkan koma untuk pemetaan atribut yang telah Anda buat sebelumnya dalam panduan ini.
    • CONDITIONS: Kondisi atribut opsional yang telah Anda buat sebelumnya dalam panduan ini. Hapus parameter jika Anda tidak memiliki kondisi atribut.

Kubernetes

  1. Hubungkan ke cluster Kubernetes Anda dan gunakan kubectl untuk menentukan URL penerbit cluster Anda:

    kubectl get --raw /.well-known/openid-configuration | jq -r .issuer
    

    Anda memerlukan URL penerbit di salah satu langkah berikut.

  2. Download JSON Web Key Set (JWKS) cluster:

    kubectl get --raw /openid/v1/jwks > cluster-jwks.json
    

    Dalam salah satu langkah berikut, Anda perlu meng-upload JWKS sehingga Workload Identity Federation dapat memverifikasi keaslian token ServiceAccount Kubernetes yang dikeluarkan oleh cluster Anda.

  3. Buat workload identity pool baru:

    gcloud iam workload-identity-pools create POOL_ID \
        --location="global" \
        --description="DESCRIPTION" \
        --display-name="DISPLAY_NAME"
    

    Ganti kode berikut:

    • POOL_ID: ID unik untuk pool
    • DISPLAY_NAME: Nama pool
    • DESCRIPTION: Deskripsi pool yang Anda pilih Deskripsi ini muncul saat Anda memberikan akses ke identitas pool.
  4. Tambahkan cluster Kubernetes sebagai penyedia workload identity pool dan upload JWKS cluster:

    gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \
        --location="global" \
        --workload-identity-pool="POOL_ID" \
        --issuer-uri="ISSUER" \
        --attribute-mapping="MAPPINGS" \
        --attribute-condition="CONDITIONS" \
        --jwk-json-path="cluster-jwks.json"
    

    Ganti kode berikut:

    • WORKLOAD_PROVIDER_ID: ID penyedia unik untuk workload identity pool yang Anda pilih.
    • POOL_ID: ID workload identity pool yang telah Anda buat sebelumnya.
    • ISSUER: URI penerbit yang telah Anda tentukan sebelumnya.
    • MAPPINGS: Daftar yang dipisahkan koma untuk pemetaan atribut yang telah Anda buat sebelumnya dalam panduan ini.
    • CONDITIONS: Kondisi atribut opsional yang telah Anda buat sebelumnya dalam panduan ini. Hapus parameter jika Anda tidak memiliki kondisi atribut.

Memberikan akses ke workload Kubernetes

Bagian ini menjelaskan cara mengonfigurasi workload Kubernetes untuk mengakses Google Cloud API menggunakan akses resource langsung Workload Identity Federation atau peniruan identitas akun layanan.

Anda harus melakukan langkah-langkah ini satu kali untuk setiap workload Kubernetes yang memerlukan akses ke Google Cloud.

Sebaiknya gunakan Workload Identity Federation. Namun, saat menggunakan federasi identitas, metode API tertentu mungkin memiliki batasan. Untuk daftar batasan, lihat Identity federation: produk dan batasan.

Jika metode yang digunakan beban kerja Anda memiliki batasan tersebut, Anda dapat menggunakan peniruan identitas IAM.

Menggunakan Workload Identity Federation untuk memberikan akses resource langsung

Di bagian ini, Anda akan menggunakan Workload Identity Federation untuk memberikan peran IAM ke ServiceAccount Kubernetes sehingga dapat langsung mengakses resource Google Cloud.

Untuk membuat Akun Layanan Kubernetes dan memberikan peran kepadanya, lakukan tindakan berikut:

  1. Buat Akun Layanan Kubernetes:

    kubectl create serviceaccount KSA_NAME --namespace NAMESPACE
    

    Ganti kode berikut:

    • KSA_NAME: Nama ServiceAccount.
    • NAMESPACE: Namespace tempat membuat ServiceAccount.
  2. Berikan akses IAM ke Akun Layanan Kubernetes untuk resource Google Cloud.

    Dengan mengikuti prinsip hak istimewa terendah, sebaiknya Anda hanya memberikan peran yang spesifik untuk resource yang harus diakses aplikasi Anda.

    Dalam contoh berikut, perintah ini memberikan peran Kubernetes Engine Cluster Viewer (roles/container.clusterViewer) ke ServiceAccount yang Anda buat. Perintah ini menggunakan subjek yang Anda petakan sebelumnya dalam dokumen ini.

    gcloud projects add-iam-policy-binding projects/PROJECT_ID \
        --role=roles/container.clusterViewer \
        --member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT \
        --condition=None
    

    Ganti kode berikut:

    • PROJECT_NUMBER: nomor project Google Cloud angka yang dikaitkan dengan project ID Anda.

    • POOL_ID: ID workload identity pool.

    • MAPPED_SUBJECT: ServiceAccount Kubernetes dari klaim dalam token ID yang Anda petakan ke google.subject. Misalnya, jika Anda memetakan google.subject=assertions.sub dan token ID Anda berisi "sub": "system:serviceaccount:default:my-kubernetes-serviceaccount", MAPPED_SUBJECT adalah system:serviceaccount:default:my-kubernetes-serviceaccount.

    Anda dapat memberikan peran di resource Google Cloud mana pun yang mendukung kebijakan izin IAM. Sintaksis ID akun utama bergantung pada resource Kubernetes. Untuk daftar ID yang didukung, lihat ID utama untuk Workload Identity Federation for GKE.

Sekarang Anda dapat men-deploy workload yang menggunakan Kubernetes ServiceAccount untuk mengakses resource Google Cloud yang telah Anda berikan aksesnya.

Alternatif: Menggunakan peniruan akun layanan IAM untuk memberikan akses

Untuk mengonfigurasi ServiceAccount Kubernetes agar menggunakan peniruan akun layanan IAM, lakukan hal berikut:

  1. Buat Akun Layanan Kubernetes, jika Anda belum melakukannya:

    kubectl create serviceaccount KSA_NAME --namespace NAMESPACE
    

    Ganti kode berikut:

    • KSA_NAME: nama untuk ServiceAccount
    • NAMESPACE: namespace tempat membuat ServiceAccount
  2. Buat akun layanan IAM yang merepresentasikan workload.

    Akun layanan tidak perlu berada dalam project yang sama dengan workload identity pool, tetapi Anda harus menentukan project yang berisi akun layanan saat merujuknya.

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

    Ganti kode berikut:

    • IAM_SA_NAME: nama akun layanan
    • IAM_SA_PROJECT_ID: project ID akun layanan
  3. Beri akses akun layanan IAM Anda ke resource Google Cloud tertentu yang Anda inginkan untuk diakses oleh workload Kubernetes.

    gcloud projects add-iam-policy-binding IAM_SA_PROJECT_ID \
        --member="serviceAccount:IAM_SA_NAME@IAM_SA_PROJECT_ID.iam.gserviceaccount.com" \
        --role="ROLE"
    

    Ganti kode berikut:

    • IAM_SA_PROJECT_ID: ID project tempat Anda membuat akun layanan
    • IAM_SA_NAME: nama akun layanan
    • ROLE: dengan nama peran—misalnya, roles/container.clusterViewer
  4. Berikan akses ServiceAccount Kubernetes untuk meniru identitas akun layanan IAM:

    gcloud iam service-accounts add-iam-policy-binding \
      IAM_SA_NAME@IAM_SA_PROJECT_ID.iam.gserviceaccount.com \
        --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
        --role=roles/iam.workloadIdentityUser
    
    

    Ganti kode berikut:

    • IAM_SA_NAME: nama akun layanan
    • PROJECT_ID: ID project tempat Anda menjalankan Kubernetes
    • IAM_SA_PROJECT_NUMBER: nomor project project tempat Anda membuat akun layanan
    • POOL_ID: ID workload identity pool.
    • MAPPED_SUBJECT: ServiceAccount Kubernetes dari klaim dalam token ID yang Anda petakan ke google.subject. Misalnya, jika Anda memetakan google.subject=assertions.sub dan token ID Anda berisi "sub": "system:serviceaccount:default:my-kubernetes-serviceaccount", MAPPED_SUBJECT adalah system:serviceaccount:default:my-kubernetes-serviceaccount.

    Untuk informasi tentang cara melakukan otorisasi akun layanan IAM untuk mengakses Google Cloud API, lihat Memahami akun layanan.

Sekarang Anda dapat men-deploy workload yang menggunakan ServiceAccount Kubernetes dan akun layanan IAM untuk mengakses resource Google Cloud yang aksesnya telah Anda berikan.

Men-deploy workload Kubernetes

Untuk men-deploy workload Kubernetes yang dapat mengakses resource Google Cloud, lakukan hal berikut:

  1. Buat file konfigurasi kredensial:

    gcloud iam workload-identity-pools create-cred-config \
        projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \
        --service-account=SERVICE_ACCOUNT_EMAIL \
        --credential-source-file=/var/run/service-account/token \
        --credential-source-type=text \
        --output-file=credential-configuration.json

    Ganti kode berikut:

    • PROJECT_NUMBER: Nomor project dari project yang berisi workload identity pool
    • POOL_ID: ID workload identity pool
    • WORKLOAD_PROVIDER_ID: ID penyedia workload identity pool
    • SERVICE_ACCOUNT_EMAIL: Alamat email akun layanan, jika Anda mengonfigurasi ServiceAccount Kubernetes untuk menggunakan peniruan identitas akun layanan IAM. Hapus tanda ini jika Anda mengonfigurasi ServiceAccount Kubernetes untuk menggunakan akses resource langsung.

    File konfigurasi kredensial memungkinkan Library Klien Cloud, gcloud CLI, dan Terraform untuk menentukan hal berikut:

    • Tempat Anda bisa memperoleh kredensial eksternal
    • Workload identity pool dan penyedia workload identity yang akan digunakan
    • Akun layanan yang akan ditiru identitasnya
  2. Mengimpor file konfigurasi kredensial sebagai ConfigMap

    kubectl create configmap CONFIGMAP_NAME \
      --from-file credential-configuration.json \
      --namespace NAMESPACE
    

    Ganti kode berikut:

    • CONFIGMAP_NAME: Nama ConfigMap
    • NAMESPACE: Namespace tempat membuat ConfigMap
  3. Men-deploy workload dan mengizinkannya menggunakan ConfigMap dan ServiceAccount Kubernetes.

    Buat manifes dan konfigurasikan sebagai berikut:

    • Pasang volume token yang diproyeksikan sehingga workload dapat memperoleh token ServiceAccount Kubernetes dari file lokal. Konfigurasikan volume agar token Kubernetes ServiceAccount menggunakan audiens yang diharapkan oleh penyedia workload identity pool Anda.
    • Pasang ConfigMap yang berisi file konfigurasi kredensial sehingga workload dapat mengakses konfigurasi yang diperlukan untuk menggunakan Workload Identity Federation.
    • Tambahkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS yang berisi jalur file konfigurasi kredensial sehingga workload dapat menemukan file tersebut.

    Berikut adalah contoh manifes yang menggunakan ServiceAccount dan ConfigMap Kubernetes untuk mengizinkan Google Cloud CLI melakukan autentikasi ke Google Cloud:

    apiVersion: v1
    kind: Pod
    metadata:
      name: example
      namespace: NAMESPACE
    spec:
      containers:
      - name: example
        image: google/cloud-sdk:alpine
        command: ["/bin/sh", "-c", "gcloud auth login --cred-file $GOOGLE_APPLICATION_CREDENTIALS && gcloud auth list && sleep 600"]
        volumeMounts:
        - name: token
          mountPath: "/var/run/service-account"
          readOnly: true
        - name: workload-identity-credential-configuration
          mountPath: "/etc/workload-identity"
          readOnly: true
        env:
        - name: GOOGLE_APPLICATION_CREDENTIALS
          value: "/etc/workload-identity/credential-configuration.json"
    
      serviceAccountName: KSA_NAME
      volumes:
      - name: token
        projected:
          sources:
          - serviceAccountToken:
              audience: https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
              expirationSeconds: 3600
              path: token
      - name: workload-identity-credential-configuration
        configMap:
          name: CONFIGMAP_NAME

    Anda dapat mengikuti pendekatan yang sama untuk mengizinkan alat dan workload yang menggunakan salah satu library klien berikut menemukan kredensial secara otomatis:

    C++

    Library Klien Google Cloud untuk C++ mendukung Workload Identity Federation sejak versi v2.6.0. Untuk menggunakan Workload Identity Federation, Anda harus mem-build library klien dengan gRPC versi 1.36.0 atau yang lebih baru.

    Go

    Library klien untuk Go mendukung Workload Identity Federation jika menggunakan modul golang.org/x/oauth2 versi v0.0.0-20210218202405-ba52d332ba99 atau yang 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 Workload Identity Federation jika menggunakan artefak com.google.auth:google-auth-library-oauth2-http versi 0.24.0 atau yang 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 Workload Identity Federation jika menggunakan paket google-auth-library versi 7.0.2 atau yang 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 Workload Identity Federation jika menggunakan paket google-auth versi 1.27.0 atau yang 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.

    gcloud

    Untuk melakukan autentikasi menggunakan Workload Identity Federation, gunakan perintah gcloud auth login:

    gcloud auth login --cred-file=FILEPATH.json
    

    Ganti FILEPATH dengan jalur ke file konfigurasi kredensial.

    Dukungan untuk Workload Identity Federation di gcloud CLI tersedia di gcloud CLI versi 363.0.0 dan versi lebih baru.

    Terraform

    Penyedia Google Cloud mendukung Workload Identity Federation jika Anda menggunakan versi 3.61.0 atau yang lebih baru:

    terraform {
      required_providers {
        google = {
          source  = "hashicorp/google"
          version = "~> 3.61.0"
        }
      }
    }
    

    bq

    Untuk melakukan autentikasi menggunakan Workload Identity Federation, gunakan perintah gcloud auth login, sebagai berikut:

    gcloud auth login --cred-file=FILEPATH.json
    

    Ganti FILEPATH dengan jalur ke file konfigurasi kredensial.

    Dukungan untuk Workload Identity Federation di bq tersedia di gcloud CLI versi 390.0.0 dan versi lebih baru.

  4. (Opsional) Verifikasi bahwa autentikasi berfungsi dengan benar dengan menjalankan perintah berikut:

    kubectl exec example --namespace NAMESPACE -- gcloud auth print-access-token

Langkah selanjutnya