서비스 계정 키 순환

이 페이지에서는 VMware용 Anthos 클러스터(GKE On-Prem)에서 Cloud 감사 로그, 사용량 측정, Stackdriver 구성요소를 위해 gkectl을 사용하여 서비스 계정 키를 순환하는 방법을 설명합니다.

서비스 계정 키를 순환하려면 다음 안내를 따르세요.

  1. 현재 보안 비밀의 백업을 저장할 디렉터리를 만듭니다.

    mkdir backup
  2. 관련 구성요소에 대한 다음 정보를 참고하세요.

    Cloud 감사 로그

    클러스터 비밀번호 네임스페이스
    관리 create-config kube-system
    관리 create-config CLUSTER_NAME
    관리 audit-logging-config kube-system
    관리 kube-apiserver CLUSTER_NAME

    사용량 측정

    클러스터 비밀번호 네임스페이스
    관리 create-config CLUSTER_NAME
    사용자 usage-metering-bigquery-service-account-key kube-system

    Stackdriver

    클러스터 비밀번호 네임스페이스
    관리 create-config kube-system
    관리 create-config CLUSTER_NAME
    사용자 google-cloud-credentials kube-system
    사용자 stackdriver-service-account-key knative-serving
  3. 다음 명령어를 사용하여 각 보안 비밀의 백업을 만듭니다.

    kubectl get secret SECRET --namespace NAMESPACE \
        --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.json

    각 항목의 의미는 다음과 같습니다.

    • NAMESPACE는 보안 비밀이 있는 네임스페이스입니다. 예를 들면 kube-system입니다.
    • KUBECONFIG는 관리자 또는 사용자 클러스터의 kubeconfig 파일 경로입니다.
    • SECRET은 보안 비밀의 이름입니다. 예를 들면 create-config입니다.

    예를 들어 Cloud 감사 로그 구성요소에 대해 다음 명령어를 실행합니다.

    kubectl get secret create-config --namespace kube-system \
            --kubeconfig KUBECONFIG -o json > backup/admin-create-config-kube-system.json
    
    kubectl get secret create-config --namespace NAMESPACE \
            --kubeconfig KUBECONFIG -o json > backup/admin-create-config-NAMESPACE.json
    
    kubectl get secret audit-logging-config --namespace kube-system \
            --kubeconfig KUBECONFIG -o json > backup/audit-logging-config-kube-system.json
    
    kubectl get secret kube-apiserver --namespace NAMESPACE \
            --kubeconfig KUBECONFIG -o json > backup/kube-apiserver-NAMESPACE.json
  4. 새 서비스 계정 키 파일을 만들려면 다음 명령어를 실행합니다.

    gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT

    각 항목의 의미는 다음과 같습니다.

    • NEW_KEY_FILE은 새 서비스 계정 키 파일의 이름입니다.
    • IAM_ACCOUNTCloud 감사 로그, 사용량 측정 또는 Stackdriver의 서비스 계정 이메일 주소입니다.
  5. 관리자 클러스터와 사용자 클러스터 모두의 config yaml 파일에서 cloudauditlogging, usagemetering 또는 stackdriver 섹션을 찾습니다.

  6. serviceAccountKeyPath 필드를 앞에서 만든 NEW_KEY_FILE로 바꿉니다.

  7. 다음 명령어를 사용하여 변경사항을 저장합니다.

    gkectl update credentials COMPONENT --admin-cluster --kubeconfig \
      KUBECONFIG --config ADMIN_CONFIG
    
    gkectl update credentials COMPONENT --kubeconfig \
       KUBECONFIG --config USER_CONFIG

    각 항목의 의미는 다음과 같습니다.

    • KUBECONFIG는 관리자 클러스터의 kubeconfig 파일 경로입니다.
    • ADMIN_CONFIG은 관리자 클러스터의 구성 파일 경로입니다.
    • USER_CONFIG은 사용자 클러스터의 구성 파일 경로입니다.
    • COMPONENTcloudauditlogging, usagemetering 또는 stackdriver입니다.