Usa la encriptación de secretos siempre activa

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:

    1. Edita el archivo de configuración del clúster de administrador para agregar la sección secretsEncryption.

    2. Ejecuta el comando gkectl update.

      gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
  • Para un clúster de usuario:

    1. Edita el archivo de configuración del clúster de usuario para agregar la sección secretsEncryption.

    2. 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 administrador
  • ADMIN_CLUSTER_CONFIG por la ruta de acceso del archivo de configuración del clúster de administrador
  • USER_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