De forma predeterminada, los datos siguientes se almacenan encriptados en el plano de entorno de ejecución híbrido:
- Datos del sistema de administración de claves (KMS)
- Datos del mapa de clave-valor (KVM)
- Datos de caché
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 para KMS, KVM y la caché tienen permiso. 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 |
---|---|
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 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.
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 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=" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
- Aplica el archivo de anulación al clúster de la siguiente manera:
- Si cambias las claves de KVM o Cache, actualiza solo el entorno:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name
- Si cambias las claves de KMS, actualiza la organización y el entorno:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name --org org_name
- Si cambias las claves de KVM o Cache, actualiza solo el entorno:
- Reinicia los Pods
apigee-runtime
yapigee-mart
.
Una nota sobre la retrocompatibilidad
Cuando instalas Apigee Hybrid por primera vez, se usan claves de encriptación predeterminadas. Si quitaras las claves de encriptación, inhabilitarías la encriptación y los valores posteriores se almacenarían sin encriptar. Si más adelante habilitas la encriptación cuando proporcionas claves, todos los datos existentes sin encriptar permanecen sin encriptar. Sin embargo, todos los datos 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