Despliegue de alta disponibilidad local para Jitterbit App Builder
Introducción
El siguiente diagrama ilustra los componentes clave en una despliegue de alta disponibilidad de App Builder:
App Builder requiere sincronización de clave de cifrado, Redis como un bus de mensajes y sincronización de datos simple y configuración del servidor de aplicaciones.
Claves de cifrado de datos
App Builder utiliza el cifrado de datos con dos fines:
-
Proteger tokens de seguridad como cookies de sesión.
-
cifrado de columnas a nivel de aplicación.
Ambos utilizan la misma tecnología de cifrado de datos subyacente. En concreto, utilizan la API de protección de datos ASP.NET. Aunque App Builder intentará configurar la biblioteca de Protección de datos automáticamente, es posible que sea necesaria una configuración adicional.
Almacenamiento de claves de cifrado de datos
Las claves de cifrado de datos (DEK) son claves de cifrado simétricas que se utilizan para proteger los datos. Dado que las DEK se utilizan para cifrar los datos almacenados en la base de datos, no pueden almacenarse en ella. App Builder admite múltiples políticas de almacenamiento de DEK configurables. Los administradores deben elegir la política de almacenamiento adecuada para su ambiente. App Builder admite las siguientes políticas de almacenamiento:
-
Sistema de archivos
-
S3
La política de almacenamiento se configura mediante AppSettings. Consulte Configuración personalizada de .NET para obtener más información sobre la configuración de la aplicación.
Almacenamiento del sistema de archivos
De forma predeterminada, App Builder almacenará las DEK en el sistema de archivos en texto sin formato, debajo del directorio raíz de la aplicación web de App Builder.
Configuración | Ejemplo | Notas |
---|---|---|
DataEncryption.KeyStorage | FileSystem Indica que App Builder debe almacenar las DEK en el sistema de archivos. Este es el valor predeterminado. | |
DataEncryption.Directory | C:\inetpub\wwwroot\App Builder\App_Data\Keys Identifica el directorio donde se almacenarán las DEK. El valor predeterminado es el directorio App_Data\Keysd, debajo del directorio de instalación de App Builder. El usuario del grupo de aplicaciones debe tener control total sobre este directorio. | |
DateEncryption.CertificateThumbprint | C123B3E899807189F11F0EC4AC320760F00ECE34 Opcional. Huella digital X.509 de la clave de cifrado de claves (KEK). El certificado KEK debe estar registrado en el almacén de certificados personales del equipo local. La huella digital se puede encontrar en las propiedades del certificado. |
{
"DataEncryption": {
"KeyStorage": "FileSystem",
"Directory": "C:\Path\To\Keys",
"CertificateThumbprint": "C123B3E899807189F11F0EC4AC320760F00ECE34"
}
}
Almacenamiento de Amazon S3
Dado que el almacenamiento local de la instancia EC2 no se puede usar para el almacenamiento a largo plazo, las DEK deben almacenarse en otro lugar. App Builder admite el almacenamiento de DEK en buckets de S3. Los siguientes ajustes configuran el almacenamiento de DEK de S3.
Configuración | Ejemplo | Notas |
---|---|---|
DataEncryption.KeyStorage | S3 | Indica que App Builder debe almacenar DEK en Amazon S3. |
DataEncryption.S3BucketEndpoint | https://s3.amazonaws.com/vinyl-data-encryption-keys o https://vinyl-data-encryption-keys.s3.amazonaws.com/ | Identifica la región de AWS y el bucket de S3 donde se almacenarán las claves de S3. La URL debe tener uno de los siguientes formatos: https://s3{-aws-region}.amazonaws.com/{bucket} o https://{bucket}.s3{-aws-region}.amazonaws.com Para obtener más información, consulte el siguiente documento: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html |
DataEncryption.S3KeyPrefix | dev | Opcional. Permite que varios ambientes almacenen claves DEK en el mismo depósito, aislando las claves por prefijo. |
{
"DataEncryption": {
"KeyStorage": "S3",
"S3BucketEndpoint": "https://bucket.s3.us-east-2.amazonaws.com",
"S3KeyPrefix": "dev"
}
}
Configuración de Redis
Utilice Redis para facilitar la comunicación entre los servidores de App Builder. Basta con un servidor pequeño, sin réplicas ni fragmentos.
Se ha probado que App Builder funciona con Redis versión 3.2 y Redis 6.X.
Configuración del servidor de aplicaciones
Deberá realizar los siguientes cambios en la configuración predeterminada de App Builder. Estos ajustes deben aplicarse a todas las instancias de App Builder. Todos los ajustes deben ser idénticos para las instancias de App Builder que operan en el mismo ambiente (desarrollo, control de calidad o producción).
Lo siguiente debe configurarse en C:\inetpub\wwwroot\App Builder\AppSettings.json
(Usando S3 para el almacenamiento de claves de cifrado de datos)
{
"SharedState": {
"Provider": "Redis",
"RedisConnectionString": "REDISSERVER:6379,password=abc123"
},
"DataEncryption": {
"KeyStorage": "S3",
"S3BucketEndpoint": "https://BUCKET.s3.us-east-2.amazonaws.com",
"S3KeyPrefix": "ENV"
}
}
Se debe configurar lo siguiente en C:\inetpub\wwwroot\App Builder\AppSettings.json
(Usando NFS para el almacenamiento de claves de cifrado de datos)
{
"SharedState": {
"Provider": "Redis",
"RedisConnectionString": "REDISSERVER:6379,password=abc123"
},
"DataEncryption": {
"KeyStorage": "FileSystem",
"Directory": "C:\Path\To\Keys"
}
}
Cada instancia de App Builder debe tener el mismo archivo connection.xml.
Después de realizar cambios y reiniciar App Builder, verifique los registros para verificar que las configuraciones se estén recopilando correctamente.