La versión 1.10 de Google Distributed Cloud admite el cifrado de secretos sin necesidad de un KMS (servicio de gestión de claves) externo ni de ninguna otra dependencia.
Ten en cuenta la siguiente limitación de los clústeres avanzados:
- Versión 1.31: el cifrado de secretos siempre activo no es compatible con los clústeres avanzados.
- Versión 1.32 y posteriores: el cifrado siempre activo es compatible con clústeres avanzados.
Habilitar el encriptado de secretos siempre activo
El cifrado de secretos siempre activo genera automáticamente una clave de cifrado que se usa para cifrar los secretos antes de que se almacenen en la base de datos etcd de ese clúster. Los secretos se cifran con una clave de cifrado de datos (DEK) que se genera para cada escritura de Secret. Esta DEK se usa en el modo AES-GCM para cifrar el objeto Secret. La DEK se cifra a su vez con una clave de cifrado de claves (KEK). El algoritmo de cifrado es A256GCM (AES GCM con una clave de 256 bits).
La versión de la clave es un número de versión que indica la clave que se está usando.
Puedes habilitar el cifrado de secretos después de haber creado un clúster.
En el clúster de administrador:
Edita el archivo de configuración del clúster de administrador para añadir la sección
secretsEncryption
.Ejecuta el comando
gkectl update
.gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
En un clúster de usuarios:
Edita el archivo de configuración de clúster de usuarios para añadir la sección
secretsEncryption
.Ejecuta el comando
gkectl update
.gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Haz los cambios siguientes:
ADMIN_KUBECONFIG
con la ruta del archivo kubeconfig de tu clúster de administrador.ADMIN_CLUSTER_CONFIG
con la ruta del archivo de configuración de tu clúster de administrador.USER_CLUSTER_CONFIG
con la ruta del archivo de configuración de tu clúster de usuarios.
Los comandos gkectl update
que se proporcionan en esta sección también se pueden usar para cualquier otra actualización del clúster correspondiente.
Almacenamiento de claves
Las claves de cifrado del clúster de administrador se almacenan en el disco de datos del clúster de administrador. Este disco está montado en la máquina maestra de administrador en /opt/data y las claves de cifrado se encuentran en /opt/data/gke-k8s-kms-plugin/generatedkeys/. Estas claves deben tener una copia de seguridad para conservar el acceso a los secretos cifrados que usan. Debes habilitar el cifrado de almacenamiento o de VM en el hipervisor o medidas similares para asegurarte de que los discos de la VM del plano de control estén protegidos.
Rotación de claves
Para rotar una clave de cifrado de un clúster, aumenta el valor de keyVersion
en el archivo de configuración del clúster de administradores o en el archivo de configuración del clúster de usuarios correspondiente y ejecuta el comando gkectl update
adecuado. De esta forma, se crea una clave que coincide con el nuevo número de versión, se vuelve a cifrar cada secreto y se borra de forma segura la clave antigua. Todos los secretos nuevos posteriores se cifran con la nueva clave de cifrado.
Inhabilitar el encriptado de secretos siempre activo
Para inhabilitar el cifrado de secretos en un clúster, añade un campo disabled: true
. A continuación, ejecuta el comando gkectl update
correspondiente. Esta actualización descifra cada secreto y lo almacena en texto sin formato. Todos los secretos nuevos posteriores se almacenan en texto sin formato.
secretsEncryption: mode: GeneratedKey generatedKey: keyVersion: KEY_VERSION disabled: true