O MongoDB fornece várias construções para melhorar a segurança de seus dados. A segurança de seus dados no MongoDB é primordial – por isso é importante aproveitar essas construções para reduzir sua área de superfície. Aqui estão 10 dicas que você pode usar para melhorar a segurança de seus servidores MongoDB no local e na nuvem.
-
Ativar autenticação
Mesmo que você tenha implantado seus servidores MongoDB em uma rede confiável, é uma boa prática de segurança habilitar a autenticação. Ele fornece “defesa em profundidade” se sua rede estiver comprometida. Edite seu arquivo de configuração do MongoDB para habilitar a autenticação:
auth = true
-
Não exponha seu banco de dados de produção à Internet
Restringir o acesso físico ao seu banco de dados é um aspecto importante da segurança. Se não for necessário, não exponha seu banco de dados de produção à internet. Em caso de comprometimento, se um invasor não puder se conectar fisicamente ao seu servidor MongoDB, seus dados estarão muito mais seguros. Se você estiver na AWS, poderá colocar seus bancos de dados em uma sub-rede de nuvem privada virtual (VPC). Leia a postagem do blog Implantando o MongoDB em uma VPC para obter mais informações. -
Usar firewalls
Use firewalls para restringir quais outras entidades têm permissão para se conectar ao seu servidor MongoDB. A melhor prática é permitir apenas que seus servidores de aplicativos acessem o banco de dados. Se você estiver hospedado na AWS, use ‘Grupos de segurança’ para restringir o acesso. Se você estiver hospedado em um provedor que não suporta construções de firewall, você pode configurá-lo facilmente usando 'iptables'. Consulte a documentação do MongoDB para configurar o iptables para seu cenário. -
Use arquivos de chave para configurar o conjunto de réplicas
Especifique um arquivo de chave compartilhada para habilitar a comunicação entre suas instâncias do MongoDB em um conjunto de réplicas. Para habilitar isso, adicione o parâmetro keyfile ao arquivo de configuração conforme descrito abaixo. O conteúdo do arquivo precisa ser o mesmo em todas as máquinas:
keyFile = /srv/mongodb/keyfile
-
Desativar interface de status HTTP
O MongoDB, por padrão, fornece uma interface http em execução na porta 28017 que fornece a página de status "inicial". Essa interface não é recomendada para uso em produção e é melhor desabilitada. Use a configuração “nohttpinterface” para desabilitar a interface http:
nohttpinterface = true
-
Desabilitar a interface REST
A interface REST do MongoDB não é recomendada para produção. Ele não suporta nenhuma autenticação e está desativado por padrão. Se você o ativou usando a opção de configuração “rest”, você deve desativá-lo para sistemas de produção.
rest = false
-
Configurar bind_ip
Se o seu sistema tiver várias interfaces de rede, você pode usar a opção “bind_ip” para restringir seu servidor MongoDB para escutar apenas nas interfaces relevantes. Por padrão, o MongoDB será vinculado a todas as interfaces:
bind_ip = 10.10.0.25,10.10.0.26
-
Ativar SSL
Se você não usa SSL, seus dados estão viajando entre o cliente Mongo e o servidor Mongo sem criptografia e são suscetíveis a ataques de espionagem, adulteração e “man in the middle”. Isso é especialmente importante se você estiver se conectando ao seu servidor MongoDB em redes não seguras, como a Internet. -
Autorização baseada em função
O MongoDB oferece suporte à autenticação baseada em função para fornecer controle refinado sobre as ações que podem ser executadas por cada usuário. Use construções baseadas em função para restringir o acesso em vez de tornar todos os seus usuários administradores. Consulte a documentação de funções para obter mais detalhes. -
Enterprise MongoDB e Kerberos
O Enterprise MongoDB se integra ao Kerberos para autenticação. Consulte a documentação do MongoDB para obter mais detalhes. Os sistemas de nome de usuário/senha são inerentemente inseguros - use autenticação baseada em kerb, se possível.
Na ScaleGrid, nos esforçamos para oferecer suporte às configurações de segurança de práticas recomendadas por padrão para todas as nossas implantações. Permitimos que você use SSL e também não exponha seu banco de dados à internet. Se você tiver alguma dúvida, envie um email para [email protected].