Implantação de alta disponibilidade no local para o Jitterbit App Builder
Introdução
O diagrama a seguir ilustra os principais componentes em uma implantação de alta disponibilidade do App Builder:
O 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
O App Builder usa criptografia de dados para duas finalidades:
-
Proteger tokens de segurança, como cookies de sessão.
-
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 o App Builder tente configurar a biblioteca de proteção de dados automaticamente, pode ser necessária configuração adicional.
Armazenamento de chaves de criptografia de dados
Chaves de Criptografia de Dados (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. O App Builder oferece suporte a várias políticas de armazenamento DEK configuráveis. Os administradores devem escolher a política de armazenamento apropriada para seu ambiente. O App Builder oferece suporte às seguintes políticas de armazenamento:
-
Sistema de arquivos
-
S3
A política de armazenamento é configurada via AppSettings. Veja Configuração personalizada do .NET para obter informações adicionais sobre AppSettings.
Armazenamento do sistema de arquivos
Por padrão, o App Builder armazenará DEKs no sistema de arquivos em texto simples, abaixo do diretório raiz do aplicativo Web do App Builder.
Configuração | Exemplo | Notas |
---|---|---|
DataEncryption.KeyStorage | FileSystem | Indica que o 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\Keysd, abaixo do diretório de instalação do App Builder. 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. |
{
"DataEncryption": {
"KeyStorage": "FileSystem",
"Directory": "C:\Path\To\Keys",
"CertificateThumbprint": "C123B3E899807189F11F0EC4AC320760F00ECE34"
}
}
Armazenamento Amazon S3
Como o armazenamento local da instância do EC2 não pode ser usado para armazenamento de longo prazo, os DEKs devem ser armazenados em outro lugar. O App Builder oferece suporte ao armazenamento de DEKs em buckets do S3. As configurações a seguir configuram o armazenamento do S3 DEK.
Configuração | Exemplo | Notas |
---|---|---|
DataEncryption.KeyStorage | S3 | Indica que o App Builder deve armazenar DEKs no Amazon S3. |
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. |
{
"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 servidores do App Builder. Um servidor pequeno, sem réplicas ou shards, é tudo o que é necessário.
O 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 uma configuração padrão do App Builder - essas configurações devem ser aplicadas a cada instância do App Builder. Todas as configurações devem ser idênticas para instâncias do App Builder 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 do App Builder deve ter o mesmo arquivo connection.xml.
Depois de fazer alterações e reiniciar o App Builder, verifique os logs para verificar se as configurações estão sendo selecionadas corretamente.