sql >> Base de Datos >  >> RDS >> Database

Proteja sus clústeres de Mongo con SSL

SSL es extremadamente importante para mantener la privacidad y la validez de sus datos en redes que no son de confianza. Si está implementando un clúster de base de datos de producción en Internet, SSL es definitivamente algo que debe considerar. ScaleGrid ahora admite la habilitación de SSL para sus servidores MongoDB.

Habilitar SSL ahora es tan fácil como marcar una casilla en el asistente de creación de MongoDB:

Entonces, ¿por qué usar SSL con MongoDB?

  1. Privacidad

    Si se está conectando a su servidor MongoDB a través de redes no seguras, sus datos viajan sin cifrar y son susceptibles tanto de espionaje como de manipulación. SSL encripta los datos para que solo los dos extremos tengan acceso a los datos no encriptados.

  2. Autenticación

    Use  PKI (infraestructura de clave privada) para asegurarse de que solo los clientes con certificados de una CA adecuada puedan conectarse al servidor MongoDB. Este es un paso adicional y puede optar por no usar sus certificados personalizados o CA; aún tendrá los beneficios de la privacidad debido al cifrado de extremo a extremo.

Inconvenientes de MongoDB SSL

  • Gastos generales de rendimiento

    Definitivamente hay una sobrecarga de rendimiento por usar SSL. Si bien todavía tenemos que ejecutar pruebas exhaustivas, definitivamente hay una sobrecarga debido al uso de SSL.

  • Falta de interfaz de usuario de MongoDB

    La mayoría de las interfaces de usuario populares de MongoDB no son compatibles con SSL desde el primer momento. Por lo tanto, es posible que deba optar por la versión paga o usar la consola mongo.

Conexión a su servidor MongoDB habilitado para SSL

Si se está conectando a un servidor MongoDB con SSL habilitado, hay varias diferencias en el código de conexión de MongoDB. Consulte la documentación de su controlador para obtener más detalles.

  1. Concha Mongo

    El cliente mongo predeterminado no admite conexiones a un servidor habilitado para SSL; necesita la compilación de MongoDB habilitada para SSL. Puede SSH en el servidor habilitado para SSL y luego usar el cliente mongo en el servidor para conectarse. Aquí está la sintaxis para conectarse usando el usuario administrador proporcionado por ScaleGrid:

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

    Deberá agregar la propiedad "ssl=true" a su cadena de conexión MongoDB. Además, ciertas plataformas (por ejemplo, JDK) requerirán que agregue la clave pública del certificado SSL a la ruta de confianza antes de poder conectarse al servidor. De forma predeterminada, se genera un certificado autofirmado para cada clúster. Puede descargar la clave pública del certificado SSL desde la interfaz de usuario o puede descargar el certificado desde /etc/ssl/mongodb-cert.crt en el servidor. En la interfaz de usuario, hay disponible un enlace para descargar el certificado público SSL en el modo de cadena de conexión:

    Para obtener más instrucciones sobre cómo puede acceder mediante SSH a la instancia, consulte la sección "Credenciales de VM" en esta publicación de blog. El archivo crt se encuentra en /etc/ssl/mongodb-cert.crt en el servidor. Una vez que haya descargado la clave pública, deberá agregarla a su keystone de confianza:

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

    La contraseña predeterminada para la tienda de cacerts es "cambiarlo". Por razones de seguridad, debe cambiar esta contraseña por la suya. Una vez que haya agregado el certificado, enumere los certificados en la clave para confirmar que se agregó el certificado:

    keytool -list -keystore cacerts -storepass changeit
    
  3. Interfaz de usuario de Mongo:Robo 3T

    Robo 3T (anteriormente Robomongo) es una de las pocas interfaces de usuario de MongoDB que admiten la conexión con SSL. Al crear una conexión a su servidor MongoDB, seleccione la opción SSL. Para el certificado, use el archivo .pem que tiene tanto la clave pública como la clave privada. Este archivo se encuentra en /etc/ssl en su servidor MongoDB. Consulte nuestra Guía de conexión Robo 3T MongoDB para obtener más detalles.

Como siempre, si tiene alguna pregunta, comuníquese con nosotros a [email protected].