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 cifrado de KMS, KVM y la caché tienen á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 cifrado Á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 de la siguiente manera:
    • Si cambias las claves de KVM o de caché, actualiza solo el entorno:
      $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name
    • Si cambias las claves de KMS, actualiza tanto la organización como el entorno:
      $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name --org org_name

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 haya no se cifrarán, pero sí los que añadas en el futuro. 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 cifren 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 estar codificada en Base64 a partir de una cadena de 16, 24 o 32 bytes, tal como se explica a continuación:

El siguiente comando de ejemplo genera una cadena de 32 caracteres aleatoria y codificada en Base64:

head -c 32 /dev/random | openssl base64