서비스 계정 키 순환

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

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

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

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

    Cloud 감사 로그

    클러스터 비밀번호 네임스페이스
    관리 admin-cluster-creds kube-system
    관리 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    관리 kube-apiserver CLUSTER_NAME

    사용량 측정

    클러스터 비밀번호 네임스페이스
    관리 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    사용자 usage-metering-bigquery-service-account-key kube-system

    Stackdriver

    클러스터 비밀번호 네임스페이스
    관리 admin-cluster-creds kube-system
    관리 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    사용자 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: 보안 비밀의 이름입니다. 예를 들면 admin-cluster-creds입니다.

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

    kubectl get secret admin-cluster-creds --namespace kube-system \
            --kubeconfig KUBECONFIG -o json > backup/admin-cluster-creds-kube-system.json
    
    kubectl get secret user-cluster-creds --namespace NAMESPACE \
            --kubeconfig KUBECONFIG -o json > backup/user-cluster-creds-NAMESPACE.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_ACCOUNT: Cloud 감사 로그, 사용량 측정 또는 Stackdriver의 서비스 계정 이메일 주소입니다.
  5. 관리자 클러스터 및 사용자 클러스터 모두의 해당 구성 파일에서 cloudauditlogging, usagemetering 또는 stackdriver 섹션을 찾습니다.

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

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

    gkectl update credentials COMPONENT --admin-cluster --kubeconfig \
      ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG
    
    gkectl update credentials COMPONENT --kubeconfig \
       ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

    다음을 바꿉니다.

    • COMPONENT: cloudauditlogging, usagemetering, stackdriver 중 하나입니다.
    • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터의 kubeconfig 파일 경로입니다.
    • ADMIN_CLUSTER_CONFIG: 관리자 클러스터 구성 파일의 경로입니다.
    • USER_CLUSTER_CONFIG: 사용자 클러스터 구성 파일의 경로입니다.