서비스 계정 키 순환

이 페이지에서는 다음 서비스 계정의 키를 순환하는 방법을 설명합니다.

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

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

    mkdir backup
  2. 관련 서비스 계정에 대한 다음 정보에 유의하세요.

    구성요소 액세스

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

    비공개 레지스트리를 사용하지 않는 경우 private-registry-creds 보안 비밀에는 구성요소 액세스 서비스 계정의 키가 포함됩니다. 비공개 레지스트리를 사용하는 경우 private-registry-creds 보안 비밀에는 비공개 레지스트리의 사용자 인증 정보가 포함됩니다.

    Connect-register

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

    Logging-monitoring

    클러스터 비밀번호 네임스페이스
    관리 admin-cluster-creds kube-system
    관리 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    사용자 google-cloud-credentials kube-system
    사용자 stackdriver-service-account-key knative-serving

    감사 로깅

    클러스터 비밀번호 네임스페이스
    관리 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).

    예를 들어 감사 로깅 서비스 계정에 대해 다음 명령어를 실행합니다.

    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: 서비스 계정의 이메일 주소입니다.
  5. 관리자 클러스터 구성 파일에서 componentAccessServiceAccountKeyPath 필드, gkeConnect 섹션, stackdriver 섹션, cloudAuditLogging 섹션을 찾습니다. 해당 위치에서 서비스 계정 키 파일 경로를 바꿉니다.

  6. 사용자 클러스터 구성 파일에서 componentAccessServiceAccountKeyPath 필드, gkeConnect 섹션, stackdriver 섹션, cloudAudigLogging 섹션, usageMetering 섹션을 찾습니다. 해당 위치에서 서비스 계정 키 파일 경로를 바꿉니다.

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

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

    다음을 바꿉니다.

    • COMPONENT: componentaccess, register, cloudauditlogging, usagemetering 또는 stackdriver 중 하나입니다.

    • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터의 kubeconfig 파일 경로입니다.

    • ADMIN_CLUSTER_CONFIG: 관리자 클러스터 구성 파일 경로입니다.

    • USER_CLUSTER_CONFIG: 사용자 클러스터 구성 파일 경로입니다.

백업 복원

이전에 만든 보안 비밀의 백업을 복원해야 하는 경우 다음 명령어를 실행합니다.

kubectl apply -f backup/