Workload Identity는 GKE에서 실행되는 워크로드가 안전하고 관리 가능한 방식으로 Google Cloud 서비스에 액세스 시에 권장되는 방식입니다.

GKE에서 실행되는 어플리케이션이 Compute Engine API, BigQuery Storage API 등 다른 Google Cloud API에 액세스가 필요할 때 GKE 클러스터의 Kubernetes 서비스 계정이 IAM 서비스 계정 역할을 수행하도록 하는 것입니다.


Workload Identity를 Cluster 생성 시 혹은 생성 후에 사용 설정하면 GKE가 아래 형식의 고정된 Workload Identity Pool을 만듭니다.


----------------------------------

PROJECT_ID.svc.id.goog

----------------------------------


네임스페이스에서 워크로드 아이덴티티를 사용하도록 Kubernetes 서비스 계정을 구성하면 IAM이 다음 구성원 이름을 사용해서 사용자 인증 정보를 인증합니다.


----------------------------------

serviceAccount:PROJECT_ID.svc.id.goog[KUBERNETES_NAMESPACE/KUBERNETES_SERVICE_ACCOUNT]

----------------------------------

  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • KUBERNETES_NAMESPACE: Kubernetes 서비스 계정의 네임스페이스입니다.
  • KUBERNETES_SERVICE_ACCOUNT: 요청을 수행하는 Kubernetes 서비스 계정의 이름입니다.


워크로드 아이덴티티 구성 프로세스에는 IAM 정책 binding을 사용해서 Kubernetes 서비스 계정 구성원 이름을 워크로드에 필요한 권한이 있는 IAM 서비스 계정에 바인딩합니다. 

이 Kubernetes 서비스 계정을 사용하는 워크로드의 Google Cloud API 호출은 바인딩된 IAM 서비스 계정으로 인증됩니다.