베어메탈용 Anthos 클러스터에서 OIDC를 사용한 ID 관리

OpenID Connect(OIDC)를 사용하여 베어메탈용 Anthos 클러스터로 인증할 수 있습니다. OIDC는 OAuth 2.0을 기반으로 구축된 인증 레이어로, RESTful HTTP API를 지정하고 JSON을 데이터 형식으로 사용합니다.

OIDC를 사용하면 기존의 ID 공급업체를 통해 베어메탈용 Anthos 클러스터에서 사용자 및 그룹 인증을 관리할 수 있습니다. OIDC를 사용하면 조직의 표준 절차에 따라 계정을 생성, 사용 설정, 사용 중지할 수 있는 베어메탈용 Anthos 클러스터에 대한 액세스를 관리할 수 있습니다. 조직의 보안 그룹을 사용하여 클러스터 또는 클러스터의 특정 서비스에 대한 액세스를 구성할 수도 있습니다. 관리형 액세스는 관리자, 사용자, 하이브리드, 독립형 등 모든 종류의 베어메탈용 Anthos 클러스터에서 작동합니다.

베어메탈용 Anthos 클러스터는 온프레미스 및 공개적으로 연결 가능한 ID 공급업체를 모두 지원합니다. 예를 들어 온프레미스에서는 Active Directory Federation Services 구성요소를 사용할 수 있습니다. Google 또는 Okta에서 공개적으로 연결 가능한 ID 공급업체 서비스를 사용할 수도 있습니다. 또한 ID 공급업체 인증서는 잘 알려진 공공 인증 기관(CA) 또는 민간 CA에서 발급받을 수 있습니다.

사용자에게 제공되는 OIDC 인증 방식은 두 가지가 있습니다.

  • 명령줄 인터페이스(CLI)를 통한 OIDC 인증: 사용자가 gcloud 명령어를 실행하고 브라우저 기반 로그인/동의 페이지를 통해 인증합니다.

  • Google Cloud 콘솔 UI를 통한 OIDC 인증: 사용자가 Kubernetes 클러스터 페이지에서 직접 클러스터에 로그인합니다. 이 방식을 사용하려면 클러스터를 Google Cloud에 등록해야 합니다. 클러스터는 베어메탈용 Anthos 클러스터 설치 시 자동으로 등록됩니다.

OIDC는 헤드리스 워크플로를 지원하지 않습니다. OIDC는 사용자를 ID 공급업체 웹페이지로 리디렉션하고 사용자에게 동의 및 계정 로그인/비밀번호를 요청하기 위해 브라우저 기반 인증을 요구합니다.

OIDC 및 Kubernetes 액세스 제어

OIDC 인증은 종종 Kubernetes 역할 기반 액세스 제어(RBAC)와 결합됩니다. RBAC를 사용하면 지정된 클러스터 리소스 집합에서 특정 작업을 수행할 수 있는 사용자 또는 그룹을 정의하는 세분화된 승인 정책을 만들 수 있습니다.

OIDC 인증 개요

일반적인 OIDC 인증에는 다음 단계가 포함됩니다.

  1. 사용자가 사용자 이름과 비밀번호를 제시하여 OpenID 제공업체에 로그인합니다.
  2. OpenID 제공업체가 사용자의 ID 토큰을 발급하며

  3. 토큰은 제공업체에서 서명하며 사전 구성된 콜백 URL을 통해 반환됩니다.

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

  5. Kubernetes API 서버는 제공업체의 인증서를 사용하여 ID 토큰을 확인한 후 토큰을 파싱하여 사용자 ID와 사용자 그룹(있는 경우)을 파악합니다.

일반적으로 OIDC 설정 및 인증에는 다음과 같은 세 가지 페르소나가 있습니다.

  • OpenID 제공업체를 선택하고 제공업체에 클라이언트 애플리케이션을 등록하는 조직 관리자.

  • 클러스터를 사용하는 사용자를 위한 하나 이상의 클러스터 및 인증 구성 파일을 만드는 플랫폼 관리자.

  • 하나 이상의 클러스터에서 워크로드를 실행하고 OIDC를 사용하여 인증하는 앱 운영자 또는 개발자.

인증된 OpenID 제공업체를 사용할 수 있습니다(제공업체는 OpenID Foundation의 인증을 받음). 구체적인 등록 프로세스는 제공업체에 따라 다르지만 일반적으로 다음 단계를 포함합니다.

  1. 제공업체의 발급기관 URI를 알아봅니다. 여기에서 gcloud CLI 또는 Google Cloud Console이 인증 요청을 보냅니다.

  2. 제공업체에 gcloud CLI 및 Google Cloud 콘솔의 리디렉션 URL을 제공합니다.

  3. 클라이언트 ID와 클라이언트 보안 비밀번호를 설정합니다. gcloud CLI와 Google Cloud 콘솔은 이 클라이언트 ID/보안 비밀번호를 사용하여 OpenID 제공업체에 인증합니다.

  4. 커스텀 범위를 설정하고 보안 그룹을 요청합니다. 일반적으로는 정책의 안정성을 높이고 감사를 용이하게 하기 위해 사용자가 아닌 그룹을 기준으로 클러스터 RBAC 정책을 정의해야 합니다. 적절한 범위가 요청되었다면 대부분의 OIDC 제공업체는 ID 토큰에 그룹 클레임을 포함합니다. 특정 그룹 클레임 및 범위는 OIDC 제공업체에 따라 다르므로 이러한 공급업체별 범위와 클레임을 설정하려면 맞춤설정이 필요합니다.

플랫폼 관리자는 새로운 베어메탈용 Anthos 클러스터를 설치하기 전에 조직 관리자로부터 OIDC 구성을 가져오고 클러스터 구성에서 관련 OIDC 필드를 구성합니다.

클러스터 설치가 완료되면 플랫폼 관리자가 인증 구성 파일을 가져와 CLI 사용자와 공유합니다. 일반적으로 플랫폼 관리자는 보안 호스트에서 파일을 호스팅하거나 내부 도구를 사용하여 구성 파일을 각 사용자의 머신으로 푸시하여 인증 구성을 공유합니다. 그런 다음 CLI 사용자는 공유 구성 파일을 사용하여 새 클러스터를 인증합니다.

플랫폼 관리자는 단일 인증 구성 파일 내에 여러 클러스터의 인증 구성 세부정보를 저장할 수도 있습니다.

Google Cloud 콘솔 사용자에게는 이러한 구성 파일이 필요하지 않습니다. 사용자는 Google Cloud 콘솔에 액세스하여 클러스터에 구성된 Authenticate with the Identity Provider를 선택한 다음 Login.을 클릭합니다.