GKE 레거시 클라이언트 인증서 인증

GKE에서 권장 인증 방식을 사용하고 기존 레거시 클라이언트 인증서의 권한을 관리하는 방법을 설명합니다.

설명

GKE의 레거시 클라이언트 인증서는 클러스터 API에 접근할 때 사용하는 인증 수단입니다. Ansible의 google.cloud.gcp_container_cluster 모듈에서는 master_auth.client_certificate_config.issue_client_certificate로 발급 여부를 지정합니다. 이 옵션은 API 서버의 TLS 인증서를 검증하는 설정과 다릅니다.

레거시 인증은 GKE 1.12부터 기본적으로 비활성화되어 있으며 Autopilot에서는 사용할 수 없습니다. 클라이언트 인증서 발급을 끈 상태에서도 OAuth 인증과 API 서버의 TLS 검증을 사용할 수 있습니다.

잠재적 영향

클라이언트 인증서가 유출되면 다른 사람이 해당 인증서에 부여된 권한으로 클러스터에 접근할 수 있습니다. 발급 옵션을 끄는 것만으로 이미 발급된 인증서의 권한이 사라지지는 않으므로, 기존 인증서와 접근 권한을 함께 관리해야 합니다.

해결 방법

  • 새 클러스터에서는 레거시 클라이언트 인증서 발급을 비활성화하고 OAuth 인증을 사용하세요. IAM 또는 Kubernetes RBAC를 통해 필요한 권한만 부여하세요. kubectl을 사용하는 경우 GKE 인증 플러그인도 설정하세요.
  • 기존 클러스터에서는 인증 방식과 부여된 권한을 점검하세요. Google이 안내하는 RBAC 설정과 인증서 권한 제거 절차를 따른 뒤, 운영자와 자동화 작업이 계속 접근할 수 있는지 확인하세요.

예시

다음은 발급 옵션의 차이를 보여 주는 이전 버전의 구성 예시입니다. 두 예시의 기본 인증(username과 password)은 GKE 1.19부터 지원되지 않으므로 현재 환경에 그대로 적용하지 마세요.

발급을 비활성화한 설정

yaml
- name: create a cluster3
  google.cloud.gcp_container_cluster:
    name: my-cluster3
    initial_node_count: 2
    master_auth:
      username: cluster_admin
      password: my-secret-password
      client_certificate_config:
        issue_client_certificate: no
    node_config:
      machine_type: n1-standard-4
      disk_size_gb: 500
    location: us-central1-a
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

issue_client_certificate: no는 클라이언트 인증서 발급을 비활성화합니다.

발급을 활성화한 이전 설정

yaml
- name: create a cluster
  google.cloud.gcp_container_cluster:
    name: my-cluster
    initial_node_count: 2
    master_auth:
      username: cluster_admin
      password: my-secret-password
      client_certificate_config:
        issue_client_certificate: yes
    node_config:
      machine_type: n1-standard-4
      disk_size_gb: 500
    location: us-central1-a
    project: test_project
    auth_kind: serviceaccount
    service_account_file: /tmp/auth.pem
    state: present

issue_client_certificate: yes는 레거시 클라이언트 인증서를 발급합니다. 새 클러스터의 권장 인증 구성으로 사용하지 마세요.

참조