La versión 1.10 de Google Distributed Cloud admite la encriptación de secretos sin la necesidad de un KMS (servicio de administración de claves) externo ni ninguna otra dependencia.
Habilita la encriptación de secretos siempre activa
La encriptación de secretos siempre activa funciona mediante la generación automática de una clave de encriptación que se usa a fin de encriptar los secretos antes de que se almacenen en la base de datos etcd para ese clúster. Los Secrets se encriptan con una clave de encriptación de datos (DEK) que se genera para cada escritura de Secret. Esta DEK se usa en modo AES-GCM para encriptar el objeto secreto. La DEK, a su vez, está encriptada con una clave de encriptación de claves (KEK). El algoritmo de encriptación es A256GCM (AES GCM con clave de 256 bits).
La versión de clave es un número de versión para indicar la clave que está actualmente en uso.
Puedes habilitar la encriptación de secretos después de crear un clúster.
Para el clúster de administrador:
Edita el archivo de configuración del clúster de administrador para agregar la sección
secretsEncryption
.Ejecuta el comando
gkectl update
.gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Para un clúster de usuario:
Edita el archivo de configuración del clúster de usuario para agregar la sección
secretsEncryption
.Ejecuta el comando
gkectl update
.gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Reemplaza lo siguiente:
ADMIN_KUBECONFIG
: la ruta de acceso al archivo kubeconfig del clúster de administradorADMIN_CLUSTER_CONFIG
por la ruta de acceso del archivo de configuración del clúster de administradorUSER_CLUSTER_CONFIG
es la ruta de acceso del archivo de configuración del clúster de usuario.
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 encriptación del clúster de administrador se almacenan en el disco de datos del clúster de administrador. Este disco está activado en la máquina principal del administrador en /opt/data, y las claves de encriptación se pueden encontrar en /opt/data/gke-k8s-kms-plugin/generatedkeys/. Se debe crear una copia de seguridad de estas claves para conservar el acceso a los secretos encriptados que usa esa clave. Debes habilitar la encriptación de VM/almacenamiento en el hipervisor o medidas similares para asegurarte de que los discos de VM del plano de control estén protegidos.
Rotación de claves
Para rotar una clave de encriptación existente en un clúster, aumenta la keyVersion
en el archivo de configuración del clúster de administrador o en el archivo de configuración del clúster de usuarios y ejecuta el comando gkectl update
adecuado. Esto crea una clave nueva que coincide con el número de versión nuevo, vuelve a encriptar cada secreto y borra el anterior de forma segura. Todos los secretos nuevos posteriores se encriptan con la clave de encriptación nueva.
Inhabilita la encriptación de secretos siempre activa
Para inhabilitar la encriptación de Secrets en un clúster existente, agrega un campo disabled: true
. Luego, ejecuta el comando gkectl update
correspondiente. Esta actualización desencripta cada secreto existente y almacena cada secreto en texto sin formato. Todos los secretos nuevos posteriores se almacenan en texto sin formato.
secretsEncryption: mode: GeneratedKey generatedKey: keyVersion: KEY_VERSION disabled: true