De forma predeterminada, los datos siguientes se almacenan encriptados en el plano de entorno de ejecución híbrido:
- Datos de caché
- Datos de 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 |
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:
- 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, y 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
- 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.
- 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 entornos específicos nombrados en tu archivo de anulación. Cuando crees los componentes, las claves que especifiques para la organización o las configuraciones individuales anularán los valores predeterminados.
- 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, y 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
- 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.
- Especifica las claves que deseas 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 de 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 la clave 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