인증

GKE On-Prem은 명령줄을 통해 사용자 클러스터를 인증하기 위한 OpenID Connect(OIDC)를 지원합니다. 다음 주제를 참조하세요.

Google Cloud Console을 통해 로그인하기 위해 GKE On-Prem에서 Kubernetes 서비스 계정의 Bearer 토큰을 사용하여 지원합니다. 로그인을 참조하세요.

이 주제에서는 사용자가 OAuth 2.0OpenID Connect에 익숙하다고 가정합니다. 또한 OpenID 인증과 관련하여 범위클레임에 대해 잘 알고 있어야 합니다.

개요

OIDC를 사용하면 조직에서 직원 계정을 만들고, 사용 설정하고, 사용 중지하기 위한 표준 절차에 따라 Kubernetes 클러스터 액세스를 관리할 수 있습니다. 조직의 보안 그룹을 사용하여 Kubernetes 클러스터 또는 클러스터의 특정 서비스에 대한 액세스를 구성할 수도 있습니다.

  • 사용자가 사용자 이름과 비밀번호를 제시하여 OpenID 제공업체에 로그인합니다.

  • OpenID 제공업체가 사용자의 ID 토큰을 발급하며 토큰은 제공업체에서 서명합니다.

  • 사용자를 대행하는 애플리케이션이 Kubernetes API 서버에 HTTPS 요청을 보냅니다. 애플리케이션은 요청 헤더에 있는 사용자의 ID 토큰을 포함합니다.

  • Kubernetes API 서버는 제공업체의 인증서를 사용하여 토큰을 확인합니다.

기업에서 Active Directory Federation Services(ADFS) 서버를 실행하는 경우 ADFS 서버가 OpenID 제공업체 역할을 할 수 있습니다. 또 다른 옵션은 제3자를 OpenID 제공업체로 사용하는 것입니다. 예를 들어 Google, Microsoft, Facebook, Twitter는 모두 OpenID 제공업체입니다.

OIDC용 Kubectl 플러그인을 사용하여 Kubernetes API 서버 호출

일반적으로 사용자는 kubectl 명령어를 실행하면 kubectl은 Kubernetes API 서버를 호출합니다.

이 작업을 수행하려면 사용자 ID 토큰이 kubeconfig 파일에 있어야 합니다. GKE On-Prem은 OIDC용 Kuberl 플러그인을 제공하여 kubeconfig에 토큰 및 기타 OIDC 값을 포함합니다.

Kubernetes API 서버 및 ID 토큰

kubectl이 사용자를 대신하여 Kubernetes API 서버를 호출하면 API 서버는 OpenID 제공업체의 공개 인증서를 사용하여 토큰을 확인합니다. 그런 다음 API 서버는 토큰을 파싱하여 사용자의 ID와 사용자의 보안 그룹을 학습합니다.

API 서버는 사용자의 보안 그룹을 클러스터의 역할 기반 액세스 제어(RBAC) 정책과 비교하여 사용자가 이 특정 호출을 수행할 수 있는지 확인합니다.