피드로 돌아가기
Dev.toDevOps
원문 읽기
gcloud 의존성 제거를 통한 GKE Kubeconfig 범용성 확보
A Kubeconfig for GKE That Doesn't Need gcloud
AI 요약
Context
기존 GKE Kubeconfig는 gke-gcloud-auth-plugin을 통한 OAuth 토큰 발급 방식의 exec-plugin 구조를 채택함. 이로 인해 클라이언트 환경에 gcloud CLI 설치가 강제되며 CI runner나 외부 협력사 환경에서 인증 오류가 발생하는 제약이 존재함.
Technical Solution
- gcloud 기반의 동적 인증을 Kubernetes ServiceAccount 기반의 정적 Bearer Token 인증 체계로 전환
- ServiceAccount 생성 및 ClusterRoleBinding을 통한 RBAC 권한 할당으로 독립적 Identity 구축
- Kubernetes 1.24+ 버전의 보안 변경 사항을 반영하여 Secret 오브젝트를 명시적으로 생성함으로써 Long-lived Token 발급
- Secret 내의 CA Certificate, JWT Token, Server Endpoint를 결합한 Self-contained Kubeconfig 파일 구성
- API 서버가 외부 IDP(Google)를 거치지 않고 직접 Token을 검증하는 구조로 설계하여 인증 Round-trip 제거
실천 포인트
1. 최소 권한 원칙에 따라 cluster-admin 대신 특정 Namespace 기반의 RoleBinding 적용 검토
2. Long-lived Token의 보안 리스크를 인지하고 Secret 삭제를 통한 즉각적인 권한 회수 프로세스 수립
3. Private Cluster 환경인 경우 인증 해결과 별개로 VPN 또는 Authorized Networks 네트워크 도달 가능성 확인
4. CI/CD 파이프라인 적용 시 정적 토큰 대신 kubectl create token을 통한 Short-lived Token 활용 고려