Saltar al contenido

Despliegue de Alta Disponibilidad en las Instalaciones

Introducción

El siguiente diagrama ilustra los componentes clave en una despliegue de alta disponibilidad de App Builder:

adjunto

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 para dos propósitos:

  1. Protección de tokens de seguridad como cookies de sesión.

  2. cifrado de columnas a nivel de aplicación.

Ambos utilizan la misma tecnología de cifrado de datos subyacente. En concreto, utilizan ASP.Net Data Protection API. A pesar de App Builder intentará configurar la biblioteca de protección de datos automáticamente, por lo que puede ser 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, las DEK en sí no se pueden almacenar en la base de datos. App Builder admite múltiples políticas de almacenamiento 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 a través de AppSettings. Consulte Configuración personalizada de .NET para obtener información adicional sobre AppSettings.

Almacenamiento del Sistema de Archivos

De forma predeterminada, App Builder almacenará las DEK en el sistema de archivos en texto sin formato, debajo de App Builder directorio raíz de la aplicación web.

| Configuración | Ejemplo | Notas | | --- | --- | --- |TABLEROWENDDataEncryption.KeyStorage | FileSystem| Indica que App Builder debe almacenar las DEK en el sistema de archivos. Este es el valor predeterminado. |TABLEROWENDDataEncryption.Directory | C:\inetpub\wwwroot\App Builder\App_Data\Keys| Identifica el directorio en el que se almacenarán las DEK. El valor predeterminado es el directorio App_Data\Keysd, debajo de App Builder directorio de instalación. El usuario del grupo de aplicaciones debe tener control total de este directorio.TABLEROWENDDateEncryption.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 de la computadora local. La huella digital se puede encontrar consultando las propiedades del certificado. |

Example AppSettings JSON Configuration
{
    "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 utilizar para el almacenamiento a largo plazo, las DEK se deben almacenar en otro lugar. App Builder admite el almacenamiento de DEK en depósitos S3. Las siguientes configuraciones configuran el almacenamiento de DEK S3.

| Configuración | Ejemplo | Notas | | --- | --- | --- |TABLEROWENDDataEncryption.KeyStorage | S3| Indica que {{nm.ab}} debe almacenar DEK en Amazon S3.TABLEROWENDDataEncryption.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 depósito S3 en el que se almacenarán las claves 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 |TABLEROWENDDataEncryption.S3KeyPrefix | dev| Opcional. Permite que varios ambientes almacenen DEK en el mismo depósito, aislando las claves por prefijo. |

Example AppSettings JSON Configuration
{
    "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 App Builder servidores. Un servidor pequeño, sin réplicas ni fragmentos, es todo lo que se necesita.

App Builder se ha probado que funciona con la versión 3.2 de Redis y también con Redis 6.X

Configuración del Servidor de Aplicaciones

Necesitará realizar los siguientes cambios en un valor predeterminado App Builder configuración: estas configuraciones deben aplicarse a cada instancia de App Builder todas las configuraciones deben ser idénticas para App Builder instancias que prestan servicios al mismo ambiente (DEV o QA o PROD)

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 (Uso de 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 los cambios y reiniciar App Builder, verifique los registros para verificar que las configuraciones se estén recopilando correctamente.