Como fazer a rotação de chaves de contas de serviço

10

Nesta página, descrevemos como alternar as chaves da conta de serviço usando gkectl para registros de auditoria do Cloud, medição de uso e componentes do Stackdriver em clusters do Anthos no VMware (GKE On-Prem).

Para alternar as chaves da conta de serviço:

  1. Crie um diretório para armazenar um backup dos seus secrets atuais:

    mkdir backup
  2. Observe as seguintes informações para o componente relevante:

    Registros de auditoria do Cloud

    Cluster Secret Namespace
    Administrador admin-cluster-creds kube-system
    Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    Administrador kube-apiserver CLUSTER_NAME

    Medição de uso

    Cluster Secret Namespace
    Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    Usuário usage-metering-bigquery-service-account-key kube-system

    Stackdriver

    Cluster Secret Namespace
    Administrador admin-cluster-creds kube-system
    Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    Usuário google-cloud-credentials kube-system
    Usuário stackdriver-service-account-key knative-serving
  3. Crie um backup de cada secret usando o seguinte comando:

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

    Substitua:

    • NAMESPACE: o namespace em que o secret está localizado. Por exemplo, kube-system.
    • KUBECONFIG: o caminho para o arquivo kubeconfig do cluster de administrador ou usuário.
    • SECRET: o nome do secret Por exemplo, admin-cluster-creds.

    Por exemplo, execute os comandos a seguir para o componente do Cloud Audit Logs:

    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. Para criar um novo arquivo de chave da conta de serviço, execute o seguinte comando:

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

    Substitua:

  5. Nos arquivos de configuração correspondentes para o cluster de administrador e os clusters de usuário, localize a seção cloudauditlogging, usagemetering ou stackdriver.

  6. Substitua o campo serviceAccountKeyPath pelo NEW_KEY_FILE que você criou anteriormente.

  7. Salve as alterações feitas usando os seguintes comandos:

    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

    Substitua:

    • COMPONENT: um de cloudauditlogging, usagemetering ou stackdriver.
    • ADMIN_CLUSTER_KUBECONFIG: o caminho para o arquivo kubeconfig do cluster do administrador.
    • ADMIN_CLUSTER_CONFIG: o caminho até o arquivo de configuração do cluster de administrador.
    • USER_CLUSTER_CONFIG: o caminho para o arquivo de configuração do cluster de usuário.