Encriptación de los datos

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

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

La encriptación de datos no requiere ninguna configuración especial de tu parte. Sin embargo, si por algún motivo deseas usar tus propias claves de encriptación (y reemplazar las predeterminadas), puedes hacerlo como se explica en este tema.

Alcance de claves de encriptación

Las claves de encriptación de Apigee Hybrid tienen permisos. Por ejemplo, las claves de KMS tienen permiso de la organización. Esto significa que la clave se usa para encriptar los datos de KMS de toda la organización. En la siguiente tabla, se muestra el permiso para cada tipo de clave:

Clave de encriptación Alcance
Contrato Solo en la organización
KMS Solo en la organización
KVM Organización o entorno

Si una política de KVM especifica el permiso apiproxy o policy (revisión del proxy de la API), la clave de nivel de organización se usa para encriptar los datos. Para obtener una descripción general sobre cómo se usan las KVM en Apigee Edge, consulta Trabaja con mapas de clave-valor.

Caché Solo en el entorno

Información sobre las claves de encriptación predeterminadas

De forma predeterminada, Apigee Hybrid proporciona un conjunto de claves codificadas en Base64 que se usan para encriptar datos de contratos, KVM, KMS y de caché. El instalador híbrido de Apigee almacena las claves en el plano de entorno de ejecución como Secrets de Kubernetes y las utiliza para encriptar tus datos con encriptación estándar AES-128. Las claves están bajo tu control; el plano de administración híbrido nunca se encarga de ellas.

Las claves predeterminadas se aplican a todos los componentes nuevos de Apigee Hybrid cuando las creas.

Cambia las claves de encriptación predeterminadas

Aunque no es necesario, puedes cambiar cualquiera de las claves de encriptación predeterminadas si lo deseas. Sigue estos pasos para reemplazar una o más claves predeterminadas:

  1. Copia el siguiente texto en tu archivo de anulación. Esta configuración te permite cambiar las claves de encriptación de KMS y KVM a nivel de organización, además de las claves de encriptación de KVM y caché a nivel de entorno:
    defaults:
      org:
        kmsEncryptionKey: base64-encoded-key
        kvmEncryptionKey: base64-encoded-key
        contractEncryptionKey: base64-encoded-key
    
      env:
        kvmEncryptionKey: base64-encoded-key
        cacheEncryptionKey: base64-encoded-key
  2. Genera una clave nueva para cada clave que desees reemplazar. Cada clave debe ser una string codificada en Base64 con exactamente 16, 24 o 32 bytes. Consulta también Cómo crear una clave codificada.
  3. Reemplaza las claves predeterminadas por las nuevas. En este ejemplo, todas las claves predeterminadas se reemplazan por las siguientes claves:
    defaults:
      org:
        kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c="
        kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU="
        contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ=="
      env:
        kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE="
        cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="

Anula las claves predeterminadas

Puedes anular las claves de la organización o los entornos específicos con nombre en el archivo de anulación. Cuando crees los componentes, las claves que especifiques para la organización o los entornos individuales anularán los valores predeterminados.

  1. Copia el siguiente texto en tu archivo de anulación. Esta configuración te permite cambiar las claves de encriptación de KMS y KVM a nivel de organización, además de las claves de encriptación de KVM y caché a nivel de entorno:
    org:YOUR_ORG_NAME
    
    kmsEncryptionKey: base64-encoded-key
    kvmEncryptionKey: base64-encoded-key
    contractEncryptionKey: base64-encoded-key
    
    envs
      - name: ENV_NAME
        kvmEncryptionKey: base64-encoded-key
        kmsEncryptionKey: base64-encoded-key
        cacheEncryptionKey: base64-encoded-key
    
      - name: 2ND_ENV_NAME
        kvmEncryptionKey: base64-encoded-key
        kmsEncryptionKey: base64-encoded-key
        cacheEncryptionKey: base64-encoded-key
  2. Genera una clave nueva para cada clave que desees anular. Cada clave debe ser una string codificada en Base64 con exactamente 16, 24 o 32 bytes. Consulta también Cómo crear una clave codificada.
  3. Especifica las claves que quieres anular. En este ejemplo, todas las claves predeterminadas se reemplazan por las siguientes claves:
    org:hybrid-org
    
    kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ=="
    kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ=="
    contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ=="
    
    envs:
      - name: prod
        kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ=="
        kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ=="
        cacheEncryptionKey: "QjEyAvC1Njc4OTAxMjM0NQ=="
    
    envs:
      - name: test
        kvmEncryptionKey: "A1b2C3d4E5f6G7h8I9j10K=="
        kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ=="
        cacheEncryptionKey: "B1c2D3e4F5f6H7i8J9k10L=="
    

Aplica los cambios clave

Aplica el archivo de anulación a tu clúster con los siguientes comandos de Helm:
  • Si cambias la clave de contrato o la clave de KVM de la organización, actualiza la organización:
    helm upgrade ORG_NAME apigee-org/ \
      --namespace apigee \
      --atomic \
      -f OVERRIDES_FILE.yaml
    
  • Si cambias la clave de caché o la clave KVM de un entorno, actualiza el entorno:
    helm upgrade ENV_NAME apigee-env/ \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE.yaml
    
  • Si cambias las claves de KMS, actualiza la organización y el entorno:
    helm upgrade ORG_NAME apigee-org/ \
      --namespace apigee \
      --atomic \
      -f OVERRIDES_FILE.yaml
    
    helm upgrade ENV_NAME apigee-env/ \
      --namespace apigee \
      --set env=ENV_NAME \
      --atomic \
      -f OVERRIDES_FILE.yaml
    

Una nota sobre la retrocompatibilidad

Si quitaras las claves de encriptación del archivo de anulación la primera vez que instalas Apigee Hybrid, podrías inhabilitar la encriptación y los valores se almacenarán sin encriptación. Si más adelante habilitas la encriptación cuando proporcionas claves, la salida de datos permanece sin encriptar. Sin embargo, todos los datos futuros que se agreguen se encriptarán. El sistema seguirá funcionando con normalidad con los datos sin encriptar y los datos encriptados nuevos.

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

Cómo crear una clave encriptada

Se requiere una clave codificada en Base64 con el formato adecuado para la encriptación KVM, KMS y de caché. La clave que se use para cualquiera de estos propósitos debe tener codificación en base64 de una string de 16, 24, o 32 bytes, como se explica a continuación:

El siguiente comando de ejemplo genera una string adecuada codificada en base64, de 32 caracteres y generadas de forma aleatoria:

head -c 32 /dev/random | openssl base64