Workload identity memungkinkan Anda menetapkan identitas dan otorisasi yang berbeda secara terperinci untuk setiap aplikasi di cluster. Workload identity adalah cara yang direkomendasikan agar aplikasi yang berjalan dalam GKE di AWS dapat mengakses AWS dan Google Cloud layanan.
Semua cluster GKE telah mengaktifkan workload identity.
Akun layanan Kubernetes
Workload identity mengimplementasikan identity federation, atau mendelegasikan kepercayaan atau peran ke penyedia eksternal. Setiap cluster memiliki penyedia OpenID Connect (OIDC) bawaan. Saat Pod berjalan di cluster, Pod akan berjalan menggunakan akun layanan Kubernetes. Pod dapat dikonfigurasi untuk mendapatkan token dengan kredensial berjangka pendek untuk akun layanan Kubernetes menggunakan Volume Token Akun Layanan Terikat.
Penyedia OpenID Connect
Setiap cluster dapat bertindak sebagai penyedia OpenID Connect (OIDC). Dengan penyedia ini, Anda dapat memberikan kredensial akun layanan Kubernetes ke layanan yang mendukung identity federation menggunakan OIDC.
URI penerbit penyedia ini juga berfungsi sebagai endpoint penemuan OIDC. Layanan dapat menggunakan endpoint penemuan ini untuk mendapatkan Kumpulan Kunci Web JSON (JWKS), yang memberikan informasi kunci publik yang memungkinkan layanan memverifikasi kredensial akun layanan Kubernetes.
Google Cloud Penyedia dan kumpulan identitas IAM
Google Cloud IAM mendukung
identity federation menggunakan OIDC.
Semua cluster GKE dikonfigurasi sebagai penyedia identitas di
workload identity pool PROJECT_ID.svc.id.goog.
Untuk mendapatkan nama workload identity pool dan penyedia, lihat Menggunakan workload identity dengan Google Cloud.
Penyedia identitas AWS IAM
AWS IAM mendukung identity federation menggunakan OIDC. Untuk mengakses AWS menggunakan identitas akun layanan workload, Anda harus membuat penyedia OIDC di AWS IAM. Secara default, GKE di AWS tidak dikonfigurasi dengan penyedia identitas untuk AWS IAM.
Alternatif untuk workload identity
Ada metode alternatif untuk mengakses layanan dari GKE di AWS. Kami tidak merekomendasikan metode berikut karena komplikasi.
Mengekspor kredensial dan menyimpannya sebagai Secret Kubernetes. Dalam hal ini, Anda harus memutar kredensial yang disimpan secara manual di AWS IAM dan di cluster. Selain itu, jika penyerang mencuri kredensial, mereka dapat mengeksploitasinya.
Melampirkan kredensial ke instance yang mendasari node pool. Dalam hal ini, semua workload yang berjalan di node yang sama berbagi kredensial, yang dapat menghasilkan kumpulan izin yang lebih besar daripada yang mungkin diperlukan workload. Untuk memblokir akses ke izin instance, cluster GKE memblokir akses dari Pod ke layanan metadata instance.
Langkah berikutnya
- Menggunakan workload identity dengan layanan Google Cloud
- Menggunakan workload identity dengan AWS
- Mempelajari workload identity federation lebih lanjut