Nesta página, descrevemos como fazer a rotação de chaves das seguintes contas de serviço:
Para alternar as chaves da conta de serviço:
Crie um diretório para armazenar um backup dos seus secrets atuais:
mkdir backup
Observe as seguintes informações sobre a conta de serviço relevante:
Acesso a componentes
Cluster Secret Namespace Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Administrador private-registry-creds kube-system Usuário private-registry-creds kube-system - Se você não está usando um
registro particular
o secret
private-registry-creds
contém a chave para o acesso ao componente conta de serviço. - Se você estiver usando um registro particular, o
Secret
private-registry-creds
manterá as credenciais do registro particular, não a chave da conta de serviço de acesso ao componente.
Registro do Connect
Cluster Secret Namespace Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Geração de registros/monitoramento
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 Registro de auditoria
Cluster Secret Namespace Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Administrador kube-apiserver CLUSTER_NAME 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 - Se você não está usando um
registro particular
o secret
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 seguintes comandos para a conta de serviço do registro de auditoria:
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
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:
NEW_KEY_FILE
: o nome do novo arquivo de chave da conta de serviço.IAM_ACCOUNT
: o endereço de e-mail da conta de serviço.
No arquivo de configuração do cluster de administrador, encontre o campo
componentAccessServiceAccountKeyPath
, a seçãogkeConnect
, a seçãostackdriver
e a seçãocloudAuditLogging
. Nesses locais, substitua os caminhos para os arquivos de chave da conta de serviço.No arquivo de configuração do cluster de usuário, encontre o campo
componentAccessServiceAccountKeyPath
, a seçãogkeConnect
, a seçãostackdriver
e a seçãocloudAudigLogging
. Nesses locais, substitua os caminhos para os arquivos de chave da conta de serviço.Salve as mudanças feitas executando os seguintes comandos:
É possível girar as chaves de um componente por vez ou todas as chaves de uma só vez definindo o componente como
sakeys
.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
Substitua:
COMPONENT
pode ser:componentaccess
register
cloudauditlogging
stackdriver
sakeys
: gira todas as chaves de componentes.
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.
Recriação de nós
Algumas rotações de chaves da conta de serviço podem levar mais tempo porque o nó a recriação seja necessária:
Conta de serviço | É necessário recriar os nós |
---|---|
Acesso a componentes | Se estiver usando o Artifact Registry: sim Se estiver usando um registro particular: não |
Registro de auditoria | Cluster de administrador: sim, mas apenas nós do plano de controle Cluster de usuário usando kubeception: não Cluster de usuário usando Controlplane V2: sim, mas apenas nós do plano de controle |
Geração de registros/monitoramento | Não |
Registro do Connect | Não |
No caso de uma rotação de chaves que exige a recriação de nós, eles são substituídos em um processo de atualização gradual, ou seja, os nós são recriados um por um.
O tempo de inatividade durante uma rotação de chaves é semelhante ao tempo de inatividade de uma para um upgrade no cluster. Para mais detalhes, consulte Inatividade durante os upgrades.
Como restaurar backups
Se você precisar restaurar os backups dos secrets criados anteriormente, execute o seguinte comando:
kubectl apply -f backup/
Diferenças avançadas de cluster para rotação de chaves de conta de serviço
O comando gkectl update credentials
é parcialmente compatível com clusters
avançados. A tabela a seguir lista as variações de comando que são e não são
compatíveis:
Comando | Descrição | Suporte |
---|---|---|
gkectl update credentials certificate-authorities rotate |
Rotacionar autoridades certificadoras | Com suporte |
gkectl update credentials certificate-authorities status |
(Prévia) Veja o status da rotação das autoridades certificadoras. | Com suporte |
gkectl update credentials certificate-authorities update-kubeconfig |
Baixe um arquivo kubeconfig com o certificado do cliente mais recente. | Com suporte |
gkectl update credentials cloudauditlogging |
Atualize as credenciais dos Registros de auditoria do Cloud. | Incompatível |
gkectl update credentials componentaccess |
Atualize as credenciais da chave da conta de serviço de acesso ao componente para clusters criados com o Google Distributed Cloud para VMware. | Com suporte |
gkectl update credentials f5bigip |
Atualize as credenciais do balanceador de carga F5 BIG-IP. | Não é necessário |
gkectl update credentials ksa-signing-key rotate |
Faça a rotação da chave de assinatura do token da conta de serviço do Kubernetes (KSA). | Incompatível |
gkectl update credentials ksa-signing-key status |
Confira o status de uma rotação de chaves de assinatura de token de KSA em andamento. | Incompatível |
gkectl update credentials |
Atualizar as credenciais do cluster | Com suporte |
gkectl update credentials privateregistry |
Atualize as credenciais do registro particular de um cluster. | Com suporte |
gkectl update credentials register |
Atualize as credenciais da chave da conta de serviço de registro. | Com suporte |
gkectl update credentials sakeys |
Atualiza as credenciais das chaves da conta de serviço de um cluster. | Com suporte |
gkectl update credentials stackdriver |
(Prévia) Atualize as credenciais do Google Cloud Observability. | Com suporte |
gkectl update credentials vsphere |
Atualize as credenciais do vSphere para um cluster. | Com suporte |
Para uma lista completa de recursos e capacidades do Google Distributed Cloud para VMware que são ou não compatíveis com clusters avançados, consulte Diferenças ao executar clusters avançados.