인증

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

GKE On-Prem에서는 Google Cloud Console을 통해 로그인할 수 있도록 Kubernetes 서비스 계정의 Bearer 토큰을 사용을 지원합니다. Cloud Console에서 클러스터에 로그인을 참조하세요.

이 주제에서는 사용자가 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 제공업체입니다.

gcloud CLI를 사용하여 Kubernetes API 서버 호출

gcloud anthos auth login 명령어를 실행하여 클러스터로 인증하면 요청이 Kubernetes API 서버로 이동합니다.

이 작업을 수행하려면 OIDC ID 토큰을 kubeconfig 파일에 저장해야 합니다. GKE On-Prem은 Cloud SDK의 gcloud CLI를 사용하여 kubeconfig 파일에서 ID 토큰 및 기타 OIDC 값을 요청하고 가져옵니다.

Kubernetes API 서버 및 ID 토큰

클러스터로 인증한 후에는 Cloud SDK의 kubectl CLI를 사용하여 상호작용할 수 있습니다. kubectl이 사용자를 대신하여 Kubernetes API 서버를 호출하면 API 서버는 OpenID 제공업체의 공개 인증서를 사용하여 토큰을 확인합니다. 그런 다음 API 서버는 토큰을 파싱하여 사용자의 ID와 사용자의 보안 그룹을 학습합니다.

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