Ir para o conteúdo

Implantação de Alta Disponibilidade no Local

Introdução

O diagrama a seguir ilustra os principais componentes em uma implantação de alta disponibilidade de App Builder:

anexo

App Builder requer sincronização de chave de criptografia, Redis como um barramento de mensagens e sincronização simples de dados e configuração do servidor de aplicativos.

Chaves de Criptografia de Dados

App Builder usa criptografia de dados para dois propósitos:

  1. Proteger tokens de segurança, como cookies de sessão.

  2. criptografia de coluna em nível de aplicativo.

Ambos usam a mesma tecnologia de criptografia de dados subjacente. Especificamente, eles usam ASP.Net Data Protection API. Embora App Builder tentará configurar a biblioteca de Proteção de Dados automaticamente, configuração adicional pode ser necessária.

Armazenamento de Chaves de Criptografia de Dados

Data Encryption Keys (DEKs) são chaves de criptografia simétricas usadas para proteger dados. Como as DEKs são usadas para criptografar dados armazenados no banco de dados, as DEKs em si não podem ser armazenadas no banco de dados. App Builder suporta múltiplas políticas de armazenamento DEK configuráveis. Os administradores devem escolher a política de armazenamento apropriada para seu ambiente. App Builder suporta as seguintes políticas de armazenamento:

  • Sistema de arquivos

  • S3

A política de armazenamento é configurada via AppSettings. Veja Configuração .NET personalizada para obter informações adicionais sobre AppSettings.

Armazenamento do Sistema de Arquivos

Por padrão, App Builder armazenará DEKs no sistema de arquivos em texto simples, abaixo do App Builder diretório raiz do aplicativo web.

| Configuração | Exemplo | Notas |TABLEROWEND| ...TABLEROWEND |DataEncryption.KeyStorage | FileSystem| Indica que App Builder deve armazenar DEKs no sistema de arquivos. Este é o valor padrão. | |DataEncryption.Directory | C:\inetpub\wwwroot\App Builder\App_Data\Keys| Identifica o diretório no qual os DEKs serão armazenados. O padrão é o diretório App_Data\Keys, abaixo do App Builder diretório de instalação. O usuário do pool de aplicativos deve ter controle total deste diretório. | |DateEncryption.CertificateThumbprint | C123B3E899807189F11F0EC4AC320760F00ECE34| Opcional. Impressão digital X.509 da Chave de Criptografia de Chave (KEK). O certificado KEK deve ser registrado no armazenamento de certificados Pessoal para o Computador Local. A impressão digital pode ser encontrada observando as propriedades do certificado. |

Example AppSettings JSON Configuration
{
    "DataEncryption": {
        "KeyStorage": "FileSystem",
        "Directory": "C:\Path\To\Keys",
        "CertificateThumbprint": "C123B3E899807189F11F0EC4AC320760F00ECE34"
    }
}

Armazenamento Amazon S3

Como o armazenamento local da instância EC2 não pode ser usado para armazenamento de longo prazo, os DEKs devem ser armazenados em outro lugar. App Builder suporta armazenamento de DEKs em buckets S3. As configurações a seguir configuram o armazenamento de DEKs S3.

| Configuração | Exemplo | Notas |TABLEROWEND| ...TABLEROWEND |DataEncryption.KeyStorage | S3| Indica que {{nm.ab}} deve armazenar DEKs no Amazon S3.TABLEROWEND |DataEncryption.S3BucketEndpoint | https://s3.amazonaws.com/vinyl-data-encryption-keys ou https://vinyl-data-encryption-keys.s3.amazonaws.com/ | Identifica a região da AWS e o bucket S3 nos quais as chaves S3 serão armazenadas. A URL deve ter um dos seguintes formatos: https://s3{-aws-region}.amazonaws.com/{bucket} ou https://{bucket}.s3{-aws-region}.amazonaws.com. Para obter mais informações, consulte o seguinte documento: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html | |DataEncryption.S3KeyPrefix | dev| Opcional. Permite que vários ambientes armazenem DEKs no mesmo bucket, isolando as chaves por prefixo. |

Example AppSettings JSON Configuration
{
    "DataEncryption": {
        "KeyStorage": "S3",
        "S3BucketEndpoint": "https://bucket.s3.us-east-2.amazonaws.com",
        "S3KeyPrefix": "dev"
    }
}

Configuração do Redis

Use o Redis para facilitar a comunicação entre App Builder servidores. Um pequeno servidor, sem réplicas ou shards é tudo o que é necessário.

App Builder foi testado para funcionar com o Redis versão 3.2 e também com o Redis 6.X

Configuração do Servidor de Aplicativos

Você precisará fazer as seguintes alterações em um padrão App Builder configuração – essas configurações devem ser aplicadas a cada instância de App Builder. Todas as configurações devem ser idênticas para App Builder instâncias que atendem ao mesmo ambiente (DEV ou QA ou PROD)

O seguinte deve ser configurado em C:\inetpub\wwwroot\App Builder\AppSettings.json (Usando S3 para armazenamento de chaves de criptografia de dados)

{
    "SharedState": {
        "Provider": "Redis",
        "RedisConnectionString": "REDISSERVER:6379,password=abc123"
    },
    "DataEncryption": {
        "KeyStorage": "S3",
        "S3BucketEndpoint": "https://BUCKET.s3.us-east-2.amazonaws.com",
        "S3KeyPrefix": "ENV"
    }
}

O seguinte deve ser configurado em C:\inetpub\wwwroot\App Builder\AppSettings.json (Usando NFS para armazenamento de chaves de criptografia de dados)

{
    "SharedState": {
        "Provider": "Redis",
        "RedisConnectionString": "REDISSERVER:6379,password=abc123"
    },
    "DataEncryption": {
        "KeyStorage": "FileSystem",
        "Directory": "C:\Path\To\Keys"
    }
}

Cada instância de App Builder deve ter o mesmo arquivo connection.xml.

Após fazer as alterações e reiniciar App Builder, verifique os logs para verificar se as configurações estão sendo selecionadas corretamente.