Encriptado de datos

De forma predeterminada, los siguientes datos se almacenan encriptados en el plano de ejecución híbrido:

  • Datos del sistema de gestión de claves (KMS)
  • Datos de mapa de pares clave-valor (KVM)
  • Datos de caché

El cifrado de datos no requiere ninguna configuración especial por su parte. Sin embargo, si por algún motivo quieres usar tus propias claves de cifrado (en lugar de las predeterminadas), puedes hacerlo, tal como se explica en este tema.

Ámbito de la clave de cifrado

Las claves de encriptado de KMS, KVM y la caché tienen un ámbito. Por ejemplo, las claves de KMS tienen un ámbito de organización. Esto significa que la clave se usa para cifrar los datos de KMS de toda la organización. En la siguiente tabla se muestra el ámbito de cada tipo de clave:

Clave de encriptado Ámbito
KMS Solo la organización
KVM Organización o entorno

Si una política de KVM especifica el ámbito apiproxy o policy (revisión del proxy de API), se usa la clave a nivel de organización para cifrar los datos. Para obtener una descripción general de cómo se usan los KVMs en Apigee Edge, consulta el artículo Trabajar con mapas de pares clave-valor.

Caché Solo entorno

Acerca de las claves de cifrado predeterminadas

De forma predeterminada, Apigee hybrid proporciona un conjunto de claves codificadas en Base64 que se utilizan para cifrar datos de KVM, KMS y caché. El instalador híbrido de Apigee almacena las claves en el plano de ejecución como secretos de Kubernetes y las usa para cifrar tus datos con el cifrado estándar AES-128. Las claves están bajo tu control y el plano de gestión híbrido nunca las conoce.

Cambiar las claves de cifrado predeterminadas

Aunque no es obligatorio, puedes cambiar cualquiera de las claves de cifrado predeterminadas si quieres. Para sustituir una o varias claves predeterminadas, sigue estos pasos:

  1. Copia las siguientes estrofas en tu archivo de anulaciones. Esta configuración le permite cambiar las claves de cifrado de KMS y KVM a nivel de organización, así como las claves de cifrado de KVM y de caché a nivel de entorno:
    defaults:
      org:
        kmsEncryptionKey: base64-encoded-key
        kvmEncryptionKey: base64-encoded-key
      env:
        kvmEncryptionKey: base64-encoded-key
        cacheEncryptionKey: base64-encoded-key
  2. Genera una clave nueva por cada clave que quieras sustituir. Cada clave debe ser una cadena codificada en Base64 que tenga exactamente 16, 24 o 32 bytes. Consulta también Cómo crear una clave codificada.
  3. Sustituye las teclas predeterminadas por otras nuevas. En este ejemplo, todas las claves predeterminadas se sustituyen por las siguientes:
    defaults:
      org:
        kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c="
        kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU="
      env:
        kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE="
        cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
  4. Aplica el archivo de anulaciones a tu clúster.

Nota sobre la retrocompatibilidad

Si quitas las claves de cifrado del archivo de anulaciones la primera vez que instales Apigee Hybrid, inhabilitarás el cifrado y los valores se almacenarán sin cifrar. Si más adelante habilitas el cifrado proporcionando claves, los datos que ya estén en el sistema seguirán sin cifrar, pero los que se añadan a partir de ese momento sí se cifrarán. El sistema seguirá funcionando con normalidad con los datos sin cifrar y los nuevos datos cifrados.

Además, ten en cuenta que no podrás cambiar las claves de cifrado una vez que se hayan cifrado los datos del tiempo de ejecución.

Cómo crear una clave codificada

Se necesita una clave codificada en Base64 con el formato adecuado para el cifrado de KVM, KMS y caché. La clave que se utilice para cualquiera de estos fines debe codificarse en Base64 a partir de una cadena de 16, 24 o 32 bytes, tal como se explica en los siguientes pasos:

Los siguientes comandos de ejemplo generan cadenas de 32 caracteres adecuadas, generadas aleatoriamente y codificadas en Base64 que no incluyen caracteres no imprimibles:

LC_ALL=C tr -dc A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)\\-+= < /dev/urandom | head -c 32  | openssl base64
PSFvX0BPc1Z2NVklcXdxcF8xR0N4MV4temFveStITU4=

o

LC_ALL=C tr -dc "[:print:]" < /dev/urandom | head -c 32 | openssl base64