안녕하세요, 

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "Workload Identity"를 다루고자 합니다.



Workload Identity 개요


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

기존에는 Secret을 사용하여 서비스 계정 키를 관리했지만, Workload Identity를 사용하면 Kubernetes 서비스 계정을 Google Cloud 서비스 계정에 직접 매핑하여 보안을 강화하고 키 관리의 복잡성을 줄일 수 있습니다.


GKE에서 실행되는 애플리케이션이 Compute Engine API, BigQuery Storage API 등 다른 Google Cloud API에 액세스해야 할 때, GKE 클러스터의 Kubernetes 서비스 계정이 IAM 서비스 계정 역할을 수행하도록 구성할 수 있습니다. 

즉, 애플리케이션은 Kubernetes 서비스 계정을 통해 Google Cloud 리소스에 접근하며, 별도의 서비스 계정 키 관리가 필요 없습니다.



Workload Identity 구성 및 사용


Workload Identity를 사용하려면 먼저 GKE 클러스터에서 Workload Identity를 활성화해야 합니다. 

클러스터 생성 시 또는 생성 후에 활성화할 수 있습니다. 

Workload Identity를 활성화하면 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 서비스 계정으로 인증됩니다.



참조 링크


[1] GKE용 워크로드 아이덴티티

https://cloud.google.com/kubernetes-engine/docs/concepts/workload-identity



관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.