Database
 sql >> Base de Dados >  >> RDS >> Database

Proteja seus clusters Mongo com SSL

O SSL é extremamente importante para manter a privacidade e a validade de seus dados em redes não confiáveis. Se você estiver implantando um cluster de banco de dados de produção na Internet, o SSL é definitivamente algo que você deve considerar. O ScaleGrid agora suporta a habilitação de SSL para seus servidores MongoDB.

Ativar SSL agora é tão fácil quanto marcar uma caixa no assistente de criação do MongoDB:


Então, por que usar SSL com MongoDB?

  1. Privacidade

    Se você estiver se conectando ao seu servidor MongoDB em redes não seguras, seus dados estão viajando sem criptografia e são suscetíveis a espionagem e adulteração. O SSL criptografa os dados para que apenas os dois terminais tenham acesso aos dados não criptografados.

  2. Autenticação

    Use  PKI (infraestrutura de chave privada) para garantir que apenas clientes com certificados de uma CA apropriada possam se conectar ao servidor MongoDB. Esta é uma etapa adicional e você pode optar por não usar seus certificados personalizados ou CA - você ainda terá os benefícios da privacidade devido à criptografia de ponta a ponta.

Desvantagens do MongoDB SSL

  • Despesas gerais de desempenho

    Definitivamente, há alguma sobrecarga de desempenho ao usar SSL. Embora ainda estejamos para executar testes abrangentes, há uma sobrecarga definitiva devido ao uso de SSL.

  • Falta de interface do usuário do MongoDB

    A maioria das UIs populares do MongoDB não suportam SSL de fábrica. Portanto, talvez seja necessário optar pela versão paga ou usar o console do mongo.

Conectando-se ao seu servidor MongoDB habilitado para SSL

Se você estiver se conectando a um servidor MongoDB com SSL habilitado, há várias diferenças no código de conexão do MongoDB. Consulte a documentação do seu motorista para mais detalhes.

  1. Mongo Shell

    O cliente mongo padrão não suporta conexões com um servidor habilitado para SSL – você precisa da versão habilitada para SSL do MongoDB. Você pode usar o SSH no servidor habilitado para SSL e, em seguida, usar o cliente mongo no servidor para se conectar. Aqui está a sintaxe para conectar usando o usuário admin fornecido pelo ScaleGrid:

    mongo <span style="color: #758e9f;">--ssl --sslCAFile <file.crt></span> -u admin -p <pass> servername/admin 
    
    
  2. Código

    Você precisará anexar a propriedade “ssl=true” à sua string de conexão do MongoDB. Além disso, certas plataformas (por exemplo, JDK) exigirão que você adicione a chave pública do certificado SSL ao caminho confiável antes de poder se conectar ao servidor. Por padrão, um certificado autoassinado é gerado para cada cluster. Você pode baixar a chave pública do certificado SSL da interface do usuário ou pode baixar o certificado de /etc/ssl/mongodb-cert.crt no servidor. Na interface do usuário, um link para baixar o certificado público SSL está disponível no modal de string de conexão:


    Para obter mais instruções sobre como inserir o SSH na instância, consulte a seção "Credenciais da VM" nesta postagem do blog. O arquivo crt está localizado em /etc/ssl/mongodb-cert.crt no servidor. Depois de baixar a chave pública, você precisará adicioná-la à sua keystone confiável:

    keytool -import -alias "MongoDB-cert" -file "/etc/ssl/mongodb-cert.crt"
    -keystore "/usr/java/default/jre/lib/security/cacerts"
    -noprompt -storepass "changeit"
    

    A senha padrão para o armazenamento cacerts é “changeit”. Por motivos de segurança, você deve alterar esta senha para sua própria. Depois de adicionar o certificado, enumere os certificados na keystone para confirmar que o certificado foi adicionado:

    keytool -list -keystore cacerts -storepass changeit
    
  3. IU do Mongo:Robo 3T

    Robo 3T (anteriormente Robomongo) é uma das poucas IUs do MongoDB que suportam conexão com SSL. Ao criar uma conexão com seu servidor MongoDB, selecione a opção SSL. Para o certificado, use o arquivo .pem que contém a chave pública e a chave privada. Este arquivo está localizado em /etc/ssl em seu servidor MongoDB. Confira nosso Guia de Conexão Robo 3T MongoDB para mais detalhes.


Como sempre, se você tiver alguma dúvida, entre em contato conosco em [email protected].