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 estiver usando um
registro particular,
o secret
private-registry-creds
conterá a chave para sua 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 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 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 feitas usando os seguintes comandos:
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
: um decomponentaccess
,register
,cloudauditlogging
,usagemetering
oustackdriver
.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 é necessário recriar o nó:
Conta de serviço | Recriação de nós necessária |
---|---|
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 os nós do plano de controle |
Geração de registros/monitoramento | Não |
Registro do Connect | Não |
Medição de uso | Não |
Para 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 possível tempo de inatividade durante uma rotação de chaves é semelhante ao tempo de 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/