SAML로 GKE Identity Service용 클러스터 설정
이 문서는 개발자와 기타 사용자가 보안 보장 마크업 언어(SAML) 공급업체의 기존 ID 세부정보를 사용하여 클러스터에 로그인할 수 있도록 개별 클러스터에 GKE Identity Service를 설정하려는 클러스터 관리자 또는 애플리케이션 운영자를 대상으로 합니다. 이 가이드는 사용자가 GKE Identity Service 개요를 읽었다고 가정하고 작성되었습니다. 이 문서의 안내에서는 GKE Identity Service가 이미 클라이언트 애플리케이션으로 ID 공급업체에 등록되어 있다고 가정합니다.
시작하기 전에
- 설정을 시작하기 전에 플랫폼 관리자가 GKE Identity Service를 공급업체에 등록하는 데 필요한 모든 정보를 제공했는지 확인하세요.
다음 명령줄 도구가 설치되었는지 확인합니다.
- Google Cloud와 상호작용하는 명령줄 도구인
gcloud
가 포함된 466.0.0 이상의 Google Cloud CLI 버전. Google Cloud CLI를 설치해야 하는 경우 설치 가이드를 참조하세요. - Kubernetes 클러스터에 명령어를 실행하기 위한
kubectl
.kubectl
을 설치해야 하는 경우 이 안내를 따르세요.
Google Cloud와의 상호작용을 위해 Cloud Shell을 셸 환경으로 사용하는 경우 이러한 도구가 자동으로 설치됩니다.
- Google Cloud와 상호작용하는 명령줄 도구인
클러스터가 등록된 프로젝트에서 사용할 수 있도록 gcloud CLI를 초기화했는지 확인합니다.
클러스터 구성
GKE Identity Service는 특수 Kubernetes 커스텀 리소스 유형(CRD)을 사용하여, ID 공급업체에 대한 정보 필드, 사용자 정보를 반환하는 데 필요한 매개변수와 함께 ClientConfig라는 클러스터를 구성합니다.
kubectl
기본 ClientConfig를 수정하려면 kubectl
을 통해 클러스터에 연결할 수 있는지 확인하고 다음 명령어를 실행합니다.
kubectl --kubeconfig=KUBECONFIG_PATH edit ClientConfigs default -n kube-public
KUBECONFIG_PATH
를 클러스터의 kubeconfig 파일 경로로 바꿉니다(예: $HOME/.kube/config
).
텍스트 편집기가 클러스터의 ClientConfig 리소스를 로드합니다. 스니펫에 표시된 대로 saml
객체를 추가합니다.
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
saml:
idpEntityID: ENTITY_ID
idpSingleSignOnURI: SIGN_ON_URI
idpCertificateDataList: IDP_CA_CERT
userAttribute: USER_ATTRIBUTE
groupsAttribute: {'<var name="user attribute">GROUPS_ATTRIBUTE</var>'}}
userPrefix: USER_PREFIX
groupPrefix: GROUP_PREFIX
attributeMapping:
ATTRIBUTE_KEY_1 : ATTRIBUTE_CEL_EXPRESSION_1
ATTRIBUTE_KEY_2 : ATTRIBUTE_CEL_EXPRESSION_2
certificateAuthorityData: CERTIFICATE_STRING
preferredAuthentication: PREFERRED_AUTHENTICATION
server: <>
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
다음 표는 ClientConfig saml
객체의 필드를 설명합니다. 추가해야 하는 필드는 ID 공급업체와 GKE Identity Service 공급업체를 구성할 때 플랫폼 관리자가 선택한 설정 옵션에 따라 다릅니다.
필드 | 필수 | 설명 | 형식 |
---|---|---|---|
이름 | 예 | 이 구성을 식별하는 데 사용할 이름입니다(일반적으로 ID 공급업체 이름). 구성 이름은 문자로 시작해야 합니다. 이어서 최대 39자(영문 기준)의 소문자, 숫자 또는 하이픈이 와야 하며 하이픈으로 끝나서는 안 됩니다 | 문자열 |
idpEntityID | 예 | URI 형식으로 지정된 SAML 공급업체의 SAML 엔티티 ID입니다. 예를 들면 https://www.idp.com/saml 입니다. |
URL 문자열 |
idpSingleSignOnURI | 예 | URI 형식으로 지정된 SAML 공급업체 SSO 엔드포인트입니다. 예를 들면 https://www.idp.com/saml/sso 입니다. |
URL 문자열 |
idpCertificateDataList | 예 | SAML 응답을 확인하는 데 사용되는 ID 공급업체 인증서에 해당합니다. 이러한 인증서는 표준 base64 인코딩 및 PEM 형식이어야 합니다. ID 공급업체 인증서 순환을 촉진하기 위해 최대 2개의 인증서만 지원됩니다. | 문자열 |
userAttribute | 아니요 | 사용자 이름이 있는 SAML 응답의 속성 이름입니다. | 문자열 |
groupsAttribute | 아니요 | 사용자의 그룹 정보가 있는 SAML 응답의 속성 이름입니다. | 문자열 |
userPrefix | 아니요 | 기본 프리픽스를 사용하지 않으려는 경우 기존 이름과 충돌을 방지하기 위해 사용자 클레임에 추가하려는 프리픽스입니다. | 문자열 |
groupPrefix | 아니요 | 여러 ID 공급업체(일반적으로 제공업체 이름)에 대한 구성이 있는 경우 액세스 제어 규칙의 기존 이름과 충돌하지 않도록 보안 그룹 이름 앞에 추가하려는 프리픽스입니다. | 문자열 |
attributeMapping | 아니요 | 추가 사용자 속성의 매핑입니다. | 문자열 |
certificateAuthorityData | 아니요 | 플랫폼 관리자가 제공한 경우 ID 공급업체의 PEM 인코딩 인증서 문자열입니다. certificateAuthorityData 에 결과 문자열을 단일 줄로 포함합니다. |
문자열 |
preferredAuthentication | 아니요 | 클러스터에 구성된 선호 인증 방법의 이름입니다. | 문자열 |
ClientConfig를 완료한 후 파일을 저장합니다. 그러면 클러스터의 ClientConfig가 업데이트됩니다. 문법 오류가 발생하면 구성을 다시 수정하여 해결하라는 메시지가 표시됩니다.
다음 단계
구성이 적용된 후 클러스터에 대한 사용자 액세스 설정하기