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 Admin 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 estiver usando um
registro particular,
o Secret
private-registry-creds
vai conter a chave da conta de serviço de acesso a componentes. - 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 Admin admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Geração de registros/monitoramento
Cluster Secret Namespace Admin 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 Admin 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 Admin 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 estiver 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 executando os comandos a seguir. É possível girar as chaves de um componente por vez ou de 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
(alterne 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 de conta de serviço podem levar mais tempo porque a recriação dos nós é 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 somente nós do plano de controle |
Geração de registros/monitoramento | No |
Registro do Connect | No |
Medição de uso | No |
Em uma rotação de chaves que requer a recriação de nós, os nós são substituídos em um processo de atualização gradual, ou seja, os nós são recriados um por um.
A inatividade possível durante uma rotação de chaves é semelhante à inatividade de um upgrade de cluster. Para mais detalhes, consulte Inatividade durante upgrades.
Como restaurar backups
Se você precisar restaurar os backups dos secrets criados anteriormente, execute o seguinte comando:
kubectl apply -f backup/