Workload Identity

Workload Identity Federation untuk GKE (WIF) adalah mekanisme yang memungkinkan workload cluster Anda mengakses resource cloud eksternal dengan Akun Layanan Kubernetes. WIF adalah cara yang direkomendasikan bagi aplikasi yang berjalan dalam cluster terpasang GKE untuk mengakses Google Cloud layanan. Saat Anda mendaftarkan cluster, API cluster terlampir GKE membuat semua infrastruktur yang diperlukan untuk WIF, dengan dukungan untuk cluster yang menggunakan penerbit OIDC publik atau pribadi.

Semua komponen GKE yang terhubung kembali ke Google Cloud, seperti agen telemetri dan Connect, menggunakan Workload Identity Federation for GKE.

Akun layanan Kubernetes dan Workload Identity Federation untuk GKE

Saat berjalan, Pod menggunakan akun layanan Kubernetes untuk mengizinkan aksesnya ke resource yang dihosting dalam clusternya. Dengan menggunakan WIF, Pod dapat menggunakan Akun Layanan Kubernetes (KSA) yang sama untuk mendapatkan token yang memiliki masa aktif singkat guna mengakses resource yang dihosting di luar cluster.

WIF memerlukan hubungan tepercaya antara penyedia identitas OIDC di dalam cluster dan penyedia resource eksternal, seperti Google Cloud IAM. Saat Anda mendaftarkan Cluster Terlampir, proses pendaftaran akan otomatis membuat hubungan kepercayaan ini dengan menambahkan layanan OIDC cluster Anda ke kumpulan identitas workload default yang terikat ke project Google Cloud Anda.

Workload identity pool ini adalah kumpulan penyedia identitas tepercaya project Google Anda dan diberi nama PROJECT_ID.svc.id.goog, dengan PROJECT_ID adalah ID Project Google yang terkait dengan cluster terlampir Anda.

Anda dapat menggunakan kebijakan IAM reguler untuk mengontrol akses oleh Akun Layanan Kubernetes ke layanan. Google Cloud Google Cloud Principal Akun Layanan Kubernetes adalah representasi KSA dalam workload identity pool. Formatnya seperti berikut:

serviceAccount:WORKLOAD_IDENTITY_POOL_NAME[KSA_NAMESPACE/KSA_NAME]

Untuk memberikan peran ke akun layanan Kubernetes, gunakan perintah berikut:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:PROJECT_ID.svc.id.goog[KSA_NAMESPACE/KSA_NAME]" \
  --role=IAM_ROLE

Ganti:

  • PROJECT_ID: Google Cloud project ID Anda
  • KSA_NAMESPACE: namespace cluster tempat akun layanan ini berada
  • KSA_NAME: nama akun layanan Kubernetes yang ingin Anda beri izin
  • IAM_ROLE: peran Google Cloud yang ingin Anda berikan kepada KSA ini