Nesta página, descrevemos como fazer a rotação de chaves das seguintes contas de serviço:
- Acesso a componentes
- Registro do Connect
- Geração de registros/monitoramento
- Registro de auditoria
- Medição de uso
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 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 - 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, localize o campo
componentAccessServiceAccountKeyPath
, a seçãogkeConnect
, a seçãostackdriver
, a seçãocloudAudigLogging
e a seçãousageMetering
. Nesses locais, substitua os caminhos para os arquivos de chave da conta de serviço.Salve as alterações feitas executando os comandos a seguir. É possível girar as chaves de um componente por vez, ou você pode girar 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
usagemetering
stackdriver
sakeys
: alterna as chaves para vários 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 Container Registry: sim Se estiver usando um registro particular: não |
Registro de auditoria | Cluster de administrador: sim Cluster de usuário com o Contrlplane V2 ativado: sim, mas apenas o plano de controle nós |
Geração de registros/monitoramento | Não |
Registro do Connect | Não |
Medição de uso | 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/