TL;DR
Federated Kubernetes와 AI 플랫폼에서는 중앙 포털의 SSO만으로 각 클러스터와 실행 환경에 사용자 신원을 안전하게 전달하기 어렵습니다. 중앙 Identity Gateway가 OIDC 로그인, 세션 생성, 토큰 갱신, 로그아웃을 맡고 Redis에 세션을 저장하면, 지역 Gateway는 `/gateway/userinfo` 호출로 세션을 확인한 뒤 신뢰된 헤더를 주입하는 접근 제어 지점으로 남습니다. 이 구조는 애플리케이션이 토큰을 직접 해석하지 않게 하고, NVIDIA 내부 AWS·OCI Kubernetes 플랫폼에서 반복 로그인 횟수를 55% 줄였습니다. 대신 중앙 Gateway와 세션 저장소가 핵심 장애 지점이 되므로 mTLS 또는 workload identity, 입력 헤더 제거, 명시적 TTL, 장애 시 fail-closed 여부를 함께 설계해야 합니다.
빠른 이해
새로운 점
로그인 자체를 중앙화하는 데 그치지 않고, 중앙 Gateway의 세션 소유권과 지역 Gateway의 요청 enforcement를 분리해 여러 Kubernetes data plane에 사용자 신원을 전달하는 구조입니다.
핵심 메커니즘
중앙 Identity Gateway가 OIDC authorization code flow로 세션을 만들고 Redis에 TTL과 refresh token 상태를 저장합니다. 지역 Gateway는 HTTP-only session cookie를 `/gateway/userinfo`에 전달해 사용자 claims를 조회한 뒤 표준 identity header를 주입하며, 애플리케이션은 이 헤더를 기반으로 지역 권한을 결정합니다.
핵심 수치
- 반복 로그인 이벤트 감소: 55% 감소- AWS와 OCI의 Kubernetes 클러스터를 포함한 NVIDIA 내부 개발자 플랫폼
섹션별 상세
분산 환경의 인증 문제
중앙 세션 소유권
로그인과 세션 흐름
효과와 측정 결과
보안과 단계적 적용
용어 해설
- 통합 로그인(Single Sign-On (SSO))
- — 한 번의 인증으로 여러 애플리케이션에 접근하는 방식입니다. 최초 진입점의 사용자 확인에는 효과적이지만, 여러 Kubernetes 클러스터와 실행 환경에 동일한 사용자 권한을 전달하거나 로그아웃·토큰 갱신 상태를 공유하는 문제까지 자동으로 해결하지는 못합니다.
- OpenID Connect(OpenID Connect (OIDC))
- — OAuth 2.0 위에서 사용자 인증 정보를 전달하는 표준 프로토콜입니다. 중앙 Identity Gateway가 인증 코드 교환을 수행하고 세션을 만든 뒤, 각 지역 Gateway가 매 요청마다 원격 Identity Provider와 직접 통신하지 않도록 구성하는 기반이 됩니다.
- 세션 저장소(Session Store)
- — 로그인 상태와 토큰 갱신 정보를 요청 사이에 보존하는 저장 공간입니다. 이 글의 구조에서는 Redis에 불투명한 세션 ID와 만료 시간(TTL)을 저장해 여러 지역 Gateway가 같은 세션 상태를 조회하도록 합니다.
- 상호 TLS 인증(Mutual TLS)
- — 서비스와 서비스가 서로의 인증서를 확인한 뒤 암호화된 연결을 만드는 방식입니다. 지역 Gateway와 중앙 Identity Gateway 사이의 검증 API를 신뢰된 호출자만 사용할 수 있게 해, 외부 요청자가 사용자 권한 정보를 임의로 조회하는 위험을 줄입니다.
- 역할 기반 접근 제어(Role-Based Access Control (RBAC))
- — 사용자에게 부여된 역할과 범위에 따라 리소스 접근 권한을 결정하는 방식입니다. 중앙 세션에서 확인한 사용자 신원을 백엔드 도구로 전달하면 AI assistant가 별도 광범위한 서비스 자격 증명 대신 사용자의 RBAC 범위 안에서 동작하도록 구성할 수 있습니다.
기술
- Kubernetes
- OpenID Connect (OIDC)
- Redis
- AWS
- OCI
- OAuth2 Proxy
- Istio
- OPA
- Authorino
- RBAC
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.

