사용자 인증 정보 순환

이 페이지에서는 Google Kubernetes Engine에서 사용자 인증 정보 순환을 수행하는 방법을 설명합니다.

개요

사용자 인증 정보 순환을 수행하여 사용자 인증 정보를 취소하고 클러스터에 새로운 사용자 인증 정보를 발급할 수 있습니다. 이렇게 하면 클러스터 루트 인증 기관(CA) 비공개 키와 클러스터 클라이언트 인증서(MasterAuth API 필드), 마스터 API 키 및 인증서, kubelet 클라이언트 인증서를 포함하여 이 CA로 서명된 모든 인증서 및 비공개 키가 순환됩니다. 클러스터 내에서 이러한 사용자 인증 정보가 사용되는 방법에 대한 자세한 내용은 클러스터 트러스트를 참조하세요.

Google은 사용자 인증 정보 사용 기간을 줄이고 GKE 클러스터 보안을 향상시키기 위해 사용자 인증 정보 순환을 정기적으로 사용할 것을 권장합니다. 이는 자동으로 순환되지 않습니다.

사용자 인증 정보 순환은 사용자 인증 정보 순환 외에도 IP 순환을 수행합니다.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

다음 방법 중 하나를 사용하여 기본 gcloud 설정을 진행합니다.

  • gcloud init를 사용하여 기본값 설정 과정을 진행합니다.
  • gcloud config를 사용하여 프로젝트 ID, 영역, 리전을 개별적으로 설정합니다.

gcloud init 사용

One of [--zone, --region] must be supplied: Please specify location 오류가 표시되면 이 섹션을 완료합니다.

  1. gcloud init를 실행하고 다음 안내를 따르세요.

    gcloud init

    원격 서버에서 SSH를 사용하는 경우 --console-only 플래그를 사용하여 다음 명령어로 브라우저를 실행하지 못하게 할 수 있습니다.

    gcloud init --console-only
  2. 안내를 따라 gcloud에서 Google Cloud 계정을 사용하도록 승인합니다.
  3. 새 구성을 만들거나 기존 구성을 선택합니다.
  4. Google Cloud 프로젝트를 선택합니다.
  5. 기본 Compute Engine 영역을 선택합니다.

gcloud config 사용

  • 기본 프로젝트 ID를 설정합니다.
    gcloud config set project project-id
  • 영역 클러스터를 사용하는 경우 기본 컴퓨팅 영역을 설정합니다.
    gcloud config set compute/zone compute-zone
  • 리전 클러스터를 사용하는 경우 기본 컴퓨팅 리전을 설정합니다.
    gcloud config set compute/region compute-region
  • gcloud를 최신 버전으로 업데이트합니다.
    gcloud components update

사용자 인증 정보 순환 작동 방식

사용자 인증 정보 순환은 새로운 IP 주소로의 이전이 포함된 다단계 과정입니다.

  • 사용자 인증 정보 순환을 시작하면 클러스터 마스터가 원래 IP 주소 외에 새로운 IP 주소도 제공하기 시작합니다. 새로운 사용자 인증 정보가 워크로드 및 제어 영역에 발급됩니다.
  • 순환을 시작한 후에는 새 IP 주소를 사용하여 마스터와 통신을 시작하도록 클러스터의 API 클라이언트(예: kubectl 명령줄 인터페이스를 사용하는 개발 머신)를 업데이트해야 합니다.
  • 순환이 완료되면 마스터가 이전 IP 주소를 통한 트래픽 제공을 중지하고 이전 사용자 인증 정보가 취소됩니다.

사용자 인증 정보 순환 수행

다음 섹션에서는 사용자 인증 정보 순환을 수행하는 방법을 설명합니다.

순환 시작

사용자 인증 정보 순환을 시작하려면 다음 명령어를 실행하여 새 사용자 인증 정보를 만들고 제어 영역에 발급합니다. 또한 IP 주소 두 개(원래 IP와 새 IP)를 제공하도록 클러스터 마스터를 구성합니다. 이로 인해 잠시 동안 클러스터 API의 다운타임이 발생합니다.

gcloud container clusters update cluster-name --start-credential-rotation

마스터가 다시 구성되면 새 IP와 사용자 인증 정보가 사용되도록 GKE가 클러스터 노드를 자동으로 업데이트합니다. 각 노드 풀은 'requires recreation'으로 표시됩니다. GKE는 자동 다시 만들기가 완료될 때까지 사용자 인증 정보 순환을 완료하지 않습니다.

순환 조사

순환 작업을 모니터링하려면 다음 명령어를 실행합니다.

gcloud container operations list | grep "AUTO_UPGRADE_NODES.*RUNNING"

이 명령어는 업데이트 작업을 위한 작업 ID를 반환합니다.

작업을 폴링하려면 작업 ID를 다음 명령어에 전달합니다.

gcloud container operations wait operation-id

노드 풀이 하나씩 다시 생성되고 각 노드 풀에 고유한 작업이 포함됩니다. 노드 풀이 여럿인 경우, 위의 안내에 따라 각 작업을 폴링할 수 있습니다.

API 클라이언트 업데이트

사용자 인증 정보 순환이 시작된 후에는 새 사용자 인증 정보를 사용하도록 클러스터 외부의 모든 API 클라이언트(예: 개발자 머신의 kubectl)를 업데이트해야 합니다.

API 클라이언트를 업데이트하려면 각 클라이언트에 다음 명령어를 실행합니다.

gcloud container clusters get-credentials cluster-name

순환 완료

순환을 완료하려면 다음 명령어를 실행하여 클러스터 마스터가 새 사용자 인증 정보로만 작동하도록 구성합니다. 이로 인해 잠시 동안 클러스터 API의 다운타임이 발생합니다.

gcloud container clusters update cluster-name --complete-credential-rotation

다음 단계