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

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 create-config kube-system
    Administrador create-config CLUSTER_NAME
    Administrador audit-logging-config kube-system
    Administrador kube-apiserver CLUSTER_NAME

    Medição de uso

    Cluster Secret Namespace
    Administrador create-config CLUSTER_NAME
    Usuário usage-metering-bigquery-service-account-key kube-system

    Stackdriver

    Cluster Secret Namespace
    Administrador create-config kube-system
    Administrador create-config CLUSTER_NAME
    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

    Em que:

    • 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, create-config.

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

    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. 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

    Em que:

  5. No arquivo yaml de configuração para o cluster de administrador e 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 \
      KUBECONFIG --config ADMIN_CONFIG
    
    gkectl update credentials COMPONENT --kubeconfig \
       KUBECONFIG --config USER_CONFIG

    Em que:

    • KUBECONFIG é o caminho para o arquivo kubeconfig do cluster do administrador.
    • ADMIN_CONFIG é o caminho para o arquivo de configuração do cluster de administrador.
    • USER_CONFIG é o caminho para o arquivo de configuração do cluster de usuário.
    • COMPONENT é cloudauditlogging, usagemetering ou stackdriver;