Na semana passada, um dos meus clientes pediu recomendações de arquitetura para implantar com segurança instâncias do MongoDB de produção no Amazon EC2 AWS. Isso me fez pensar sobre o assunto e esta postagem no blog é o resultado. Muitas empresas expõem seus bancos de dados MongoDB de produção na Internet quando há opções melhores. A regra nº 1 de segurança é restringir o acesso físico aos seus servidores de banco de dados. Mesmo que suas credenciais sejam comprometidas, isso reduz bastante o impacto se o invasor não puder acessar seus servidores.
Antes de nos aprofundarmos nos detalhes, vamos voltar um pouco e lembrar como a equipe de TI costumava implantar bancos de dados no mundo AWS pré-Amazon. Lembro-me de algumas configurações diferentes:
1. Configuração de firewall duplo DMZ (zona desmilitarizada)
Nesta configuração, os servidores de camada frontal e intermediária são implantados em uma DMZ e os servidores de banco de dados ficam atrás do segundo firewall. O firewall frontal permite conexões nas portas web e o firewall traseiro somente permite conexões nas portas do banco de dados.
2. VLAN – Menos popular que o Dual Firewall DMZ
Os servidores de banco de dados e os servidores front-end estão em VLANs separadas. Somente as portas do banco de dados são permitidas na interconexão do tronco entre as duas VLANs.
Tecnicamente, nada mudou desde então. No entanto, as técnicas agora são diferentes. Você não fala mais sobre DMZs e firewalls, mas fala em termos de VPCs e grupos de segurança. Se você é uma empresa maior com uma equipe de TI, eu definitivamente olharia para o Amazon VPC. Ele oferece muito controle sobre a rede da camada 3 e você pode colocar seus bancos de dados em uma sub-rede privada e não expô-los à Internet. No entanto, é um tópico muito mais longo para outro post do blog. Se você já configurou a VPC e deseja configurar o MongoDB na VPC, aqui está minha postagem no blog para orientá-lo nas etapas – Implantação do MongoDB na Amazon VPC.
No restante deste post, vou me concentrar no EC2-classic.
3 etapas para configurar a DMZ de firewall duplo na AWS
1. Crie um grupo de segurança para seus servidores MongoDB
Um grupo de segurança pode abranger uma região inteira - portanto, mesmo se você tiver um conjunto de réplicas, poderá distribuir suas réplicas pelas zonas de disponibilidade da região e ainda tê-las no mesmo grupo de segurança . Crie um grupo de segurança para seus servidores MongoDB e adicione todos os seus servidores mongo somente a este grupo de segurança.
2. Crie um grupo de segurança para seus servidores de camada intermediária/frontal
Crie um grupo de segurança adicional para seus servidores MongoDB de camada intermediária e/ou frontal.
3. Configure seu acesso ao grupo de segurança do MongoDB
Configure seu MongoDB Security Group para permitir acesso aos servidores de camada frontal apenas nas portas do MongoDB. Configure seu grupo de segurança de front-end para abrir as portas da Web para a Internet.
Configurar Dual Firewall DMZ na AWS por meio do ScaleGrid
1. Crie um grupo de segurança na AWS
Faça login no console da Amazon e crie um grupo de segurança para seus servidores de nível intermediário/frontal. Vamos chamar o Grupo de Segurança de 'AppServerSG'. Configure este grupo de segurança para abrir a porta http/https conforme necessário. Coloque seus servidores de camada intermediária e de camada frontal neste Grupo de Segurança.
2. Criar um perfil da Nuvem AWS do ScaleGrid
Faça login no console do ScaleGrid e clique na guia Pool de máquinas. Crie seu próprio pool de máquinas personalizado para que você possa implantar e gerenciar instâncias do mongo em sua própria conta da AWS. Na guia Pool de máquinas, clique no botão criar. Insira sua chave de API da Amazon e a chave secreta e pressione Avançar:
3. Selecione sua região da AWS para MongoDB
Selecione a região da AWS de sua escolha para implantar o MongoDB:
4. Configure sua política de acesso
Este é o passo principal para a configuração de segurança. Selecione a opção para permitir que apenas máquinas em um determinado grupo de segurança acessem seus servidores MongoDB. Em seguida, selecione os grupos de segurança aos quais você deseja fornecer acesso. Digite um nome para o pool de máquinas e clique em Avançar:
5. Crie seu cluster MongoDB
Navegue de volta para sua página de implantações do MongoDB no console principal. Clique em 'Criar' para criar um novo cluster MongoDB. Na seleção Pool de Máquinas, selecione o pool de máquinas que você acabou de criar e crie o cluster.
Esta é apenas uma das técnicas para proteger sua implantação do MongoDB na AWS. Se você tiver outras sugestões, use as seções de comentários para fornecer seus comentários. Para práticas de segurança mais detalhadas, consulte as práticas de segurança 10gen. Como sempre, se você tiver alguma dúvida, envie um email para [email protected].