Vários servidores com um arquivo de configuração

3

Eu tenho vários aplicativos em execução em servidores diferentes, mas todos exigem o mesmo arquivo de configuração (que contém informações confidenciais). Atualmente, apenas carrego o arquivo de configuração em todos os meus servidores, mas ele não é muito escalável e é difícil quando eu quero fazer alterações.

Quais são algumas soluções seguras para ter uma única configuração para vários servidores? Essas são instâncias do ec2, portanto, se houver uma solução da AWS que torne mais fácil, sou todo ouvidos.

A solução para a qual estou atualmente se inclinando era criptografar a configuração e colocá-la no AWS S3 e, em seguida, descriptografá-la no servidor usando o AWS Key Management Service (KMS). Qualquer outra idéia seria muito apreciada.

    
por jwerre 25.01.2017 / 22:05

1 resposta

2

O AWS Elastic File System é um sistema de arquivos compartilhado que funciona como o NFS. Custará basicamente nada armazenar um arquivo de configuração. Você pode criptografá-lo se quiser, embora o EFS ainda não forneça criptografia como parte do servidor.

Se você deseja um sistema de arquivos compartilhado, mas o EFS não está disponível, você pode executar uma instância com um compartilhamento NFS. Para armazenar arquivos de configuração, você poderia rodar isto em um t2.nano por cerca de $ 3 / mês. Você pode alternadamente executar um compartilhamento NFS a partir de uma única máquina que você já possui. Obviamente, esta máquina deve estar em uma sub-rede privada, sem rota para a internet, adequadamente endurecida.

O S3 é um bom lugar para armazenar arquivos e suporta criptografia em repouso. Eu sempre sou um pouco desconfiado da criptografia do lado do servidor, uma vez que as chaves e os dados são armazenados na AWS, embora a AWS afirme que está de uma maneira muito segura dentro do KMS e que as chaves não podem ser recuperadas. No entanto, se você usar a criptografia do lado do cliente, precisará armazenar chaves de criptografia em instâncias, o que é quase certamente menos seguro do que usar um serviço de terceiros bem projetado, como o KMS.

Você também pode considerar o uso de dados do usuário do EC2 para fornecer informações para as instâncias na inicialização. Essa seria uma boa maneira de fazer as coisas com uma frota de instâncias dimensionadas automaticamente, conforme você as define uma vez e está disponível para todas as instâncias iniciadas.

Algo relacionado é atribuir uma instância do IAM a uma função do IAM antes de inicializar, isso permite definir uma política que permita o acesso do EC2 a outros recursos da AWS. Isso provavelmente não ajudará seu caso de uso, mas está relacionado.

Você também pode usar uma tecnologia de sincronização como o rsync, o bittorrent sync ou o dropbox sync para mover arquivos entre computadores. Provavelmente não é uma ótima solução neste caso, mas poderia funcionar para outros casos de uso.

    
por 25.01.2017 / 22:28