En esta página, se describe cómo rotar claves para las siguientes cuentas de servicio:
Para rotar las claves de tu cuenta de servicio, sigue estos pasos:
Crea un directorio para almacenar una copia de seguridad de los secretos actuales:
mkdir backup
Ten en cuenta la siguiente información para la cuenta de servicio relevante:
Acceso a los componentes
Clúster Secret Espacio de nombres Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Administrador private-registry-creds kube-system Usuario private-registry-creds kube-system - Si no usas un
registro privado,
el Secret
private-registry-credscontiene la clave para tu cuenta de servicio de acceso a los componentes. - Si usas un registro privado, el Secret
private-registry-credscontiene las credenciales de tu registro privado, no la clave de la cuenta de servicio de acceso a los componentes.
Registro de Connect
Clúster Secret Espacio de nombres Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Registro y supervisión
Clúster Secret Espacio de nombres Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Usuario google-cloud-credentials kube-system Usuario stackdriver-service-account-key knative-serving Registros de auditoría
Clúster Secret Espacio de nombres Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Administrador kube-apiserver CLUSTER_NAME Stackdriver
Clúster Secret Espacio de nombres Administrador admin-cluster-creds kube-system Administrador user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Usuario google-cloud-credentials kube-system Usuario stackdriver-service-account-key knative-serving - Si no usas un
registro privado,
el Secret
Crea una copia de seguridad de cada secreto con el siguiente comando:
kubectl get secret SECRET --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.jsonReemplaza lo siguiente:
NAMESPACE: es el espacio de nombres en el que se encuentra el secreto. Por ejemplo,kube-systemKUBECONFIG: es la ruta al archivo kubeconfig para el clúster de administrador o del usuario.SECRET: nombre del Secret. Por ejemplo,admin-cluster-creds
Por ejemplo, ejecuta los siguientes comandos para la cuenta de servicio de registro de auditoría:
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.jsonPara crear un nuevo archivo de claves de cuenta de servicio, ejecuta el siguiente comando:
gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT
Reemplaza lo siguiente:
NEW_KEY_FILE: es el nombre del archivo de claves de tu cuenta de servicio nueva.IAM_ACCOUNT: La dirección de correo electrónico de la cuenta de servicio
En el archivo de configuración del clúster de administrador, busca el campo
componentAccessServiceAccountKeyPathy las seccionesgkeConnect,stackdriverycloudAuditLogging. En esos lugares, reemplaza las rutas de acceso a los archivos de claves de la cuenta de servicio.En el archivo de configuración del clúster de usuario, busca el campo
componentAccessServiceAccountKeyPathy las seccionesgkeConnect,stackdriverycloudAudigLogging. En esos lugares, reemplaza las rutas de acceso a los archivos de claves de la cuenta de servicio.Para guardar los cambios que realizaste, ejecuta los siguientes comandos:
Puedes rotar las claves de un componente a la vez o rotar todas las claves a la vez configurando el componente en
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_CONFIGReemplaza lo siguiente:
COMPONENT: Uno de los siguientes:componentaccessregistercloudauditloggingstackdriversakeys(rota todas las claves de los componentes)
ADMIN_CLUSTER_KUBECONFIG: la ruta al archivo kubeconfig para el clúster de administrador.ADMIN_CLUSTER_CONFIG: la ruta al archivo de configuración del clúster de administrador.USER_CLUSTER_CONFIG: la ruta de acceso al archivo de configuración del clúster de usuario.
Recreación de nodos
Algunas rotaciones de claves de cuenta de servicio pueden tardar más tiempo porque se requiere la recreación de nodos:
| Cuenta de servicio | Se requiere la recreación de nodos |
|---|---|
| Acceso a los componentes | Si usas Artifact Registry: Sí Si usas un registro privado: No |
| Registros de auditoría | Clúster de administrador: Sí, pero solo nodos del plano de control Clúster de usuario con kubeception: No Clúster de usuario con Controlplane V2: Sí, pero solo nodos del plano de control |
| Registro y supervisión | No |
| Registro de Connect | No |
En el caso de una rotación de claves que requiere que se vuelvan a crear los nodos, estos se reemplazan en un proceso de actualización progresiva, es decir, se vuelven a crear uno por uno.
El posible tiempo de inactividad durante una rotación de claves es similar al tiempo de inactividad para una actualización de clúster. Para obtener más detalles, consulta Tiempo de inactividad durante las actualizaciones.
Restablecer las copias de seguridad
Si necesitas restablecer las copias de seguridad de los Secrets que creaste antes, ejecuta el siguiente comando:
kubectl apply -f backup/
Diferencias de los clústeres avanzados para rotar las claves de la cuenta de servicio
El comando gkectl update credentials solo es parcialmente compatible con los clústeres avanzados. En la siguiente tabla, se enumeran las variaciones de comandos que se admiten y no se admiten:
| Comando | Descripción | Asistencia |
|---|---|---|
gkectl update credentials certificate-authorities rotate |
Rota autoridades certificadoras | Admitido |
gkectl update credentials certificate-authorities status |
(Vista previa) Consulta el estado de rotación de las autoridades certificadoras. | Admitido |
gkectl update credentials certificate-authorities update-kubeconfig |
Descarga un archivo kubeconfig con el certificado de cliente más reciente. | Admitido |
gkectl update credentials cloudauditlogging |
Actualiza las credenciales de los Registros de auditoría de Cloud. | No es compatible |
gkectl update credentials componentaccess |
Actualiza las credenciales de la clave de la cuenta de servicio de acceso a los componentes para clústeres creados con Google Distributed Cloud para VMware. | Admitido |
gkectl update credentials f5bigip |
Actualiza las credenciales del balanceador de cargas de BIG-IP de F5. | No es necesario |
gkectl update credentials ksa-signing-key rotate |
Rota la clave de firma del token de la cuenta de servicio de Kubernetes (KSA). | No es compatible |
gkectl update credentials ksa-signing-key status |
Consulta el estado de una rotación de claves de firma de token de KSA en curso. | No es compatible |
gkectl update credentials |
Actualizar las credenciales de los clústeres | Admitido |
gkectl update credentials privateregistry |
Actualiza las credenciales del registro privado de un clúster. | Admitido |
gkectl update credentials register |
Actualiza las credenciales de la clave de la cuenta de servicio de registro. | Admitido |
gkectl update credentials sakeys |
Actualiza las credenciales de las claves de la cuenta de servicio de un clúster. | Admitido |
gkectl update credentials stackdriver |
(Vista previa) Actualiza las credenciales de Google Cloud Observability. | Admitido |
gkectl update credentials vsphere |
Actualiza las credenciales de vSphere de un clúster. | Admitido |
Para obtener una lista completa de las funciones y capacidades de Google Distributed Cloud para VMware que se admiten o no para los clústeres avanzados, consulta Diferencias cuando se ejecutan clústeres avanzados.