Ver contenido
carlosazaustre.es carlosazaustre.es

Cómo conectarte remótamente a tu base de datos MongoDB

🗓 | 💻 Desarrollo | 🕐 2 minutos de lectura | 💬 Comments

En este artículo vamos a ver como dar seguridad a nuestra base de datos remota de producción y a su vez como conectarnos de manera remota desde nuestro entorno local.

Primero de todo inicia una instancia de MongoDB en tu servidor, sin el flag de autenticación:

Creamos un usuario administrador que será el root que administre todas las bases de datos y será con el que nos conectemos por terminal (MongoShell) desde el servidor:

Reinicia la instancia de MongoDB, esta vez con la autorización activada:

Ahora para conectarnos al MongoShell necesitamos hacerlo mediante el usuario administrador:

Una vez conectados, vamos a crear un usuario adicional que gestione la base de datos que utilizará tu aplicación. Que solo pueda acceder a esa base de datos y con permisos de Lectura/Escritura. Este será el que utilicemos para conectarnos desde nuestra aplicación backend.

Es importante que sea un usuario “no-root” el que se conecte desde nuestra app para evitar “disgustos” y es una capa importante de seguridad para nuestro backend.

Para poder conectarnos remotamente, edita el fichero /etc/mongod.conf

Cambia el campo bind_ip = 127.0.0.1, por la IP de tu servidor, y aprovecha a cambiar el campo port = 27017 por otro diferente, para mayor seguridad

Reinicia mongo para aplicar los cambios.

Ahora si queremos conectarnos por el MongoShell a nuestra instancia de mongo, deberemos escribir el siguiente comando desde la terminal:

siendo x.x.x.x la IP de tu servidor y xxxxx el puerto que configuraste en el fichero mongod.conf

Y para conectarnos mediante una URI String desde nuestra aplicación backend, la URI será:

Configuración de Robomongo.

Robomongo es una aplicación para Mac, Windows y Linux para conectarse a bases de datos Mongo, de una manera visual, sustituyendo o complementando a la terminal y al MongoShell.

La configuración en Robomongo para conectarse remotamente a una base de datos por SSH es diferente a la conexión a tu base de datos local. Estas son las pestañas que debes configurar

En la pestaña Conexión, además de un nombre para identificar a la conexión, necesitas incluir la dirección IP de tu servidor (x.x.x.x) y el puerto que configuraste en el fichero mongod.conf (xxxxx)

robomongo_conexion

En la pestaña Autenticación, indica la base de datos “admin” para poder entrar con el nombre de usuario y la contraseña del usuario administrador que creamos (myServerAdmin)

robomongo_auth

Por último en la pestaña SSH, indica la dirección IP de tu servidor, el puerto de SSH (el 22 es el por defecto si no lo has cambiado), el nombre de usuario con el que puedes entrar en tu servidor por SSH y la contraseña

robomongo_ssh

Con esto podrás acceder con Robomongo a la base de datos remota de tu aplicación.

Fuentes:

✎ ¿Ves alguna errata? ¿Quieres modificar algo? Haz una Pull Request.

Carlos Azaustre

Soy Carlos Azaustre. Desarrollador web desde hace más de 8 años. He trabajado en Google, IBM y Eventbrite. Soy GDE (Google Developer Expert) en Tecnologías Web. Desde 2013 intento documentar en éste blog todo lo que aprendo y así compartirlo con el resto de la comunidad.

📬 Únete y ponte al día en desarrollo web

Recibe puntualmente información sobre las últimas novedades en tecnologías web y desarrollo web moderno para que estés siempre actualizadx:

🔒 Libre de Spam. Sólo contenido que te interesa..