1. Iniciar MongoDB. (No es necesario si ya se encuentra corriendo actualmente).
$ mongod --port 27017 --dbpath /data/db1
2. Conectar a la BD.
$ mongo --port 27017
3. Crear el Usuario administrador.
$ use admin
$ db.createUser(
{
user: "superAdmin",
pwd: "pass1234",
roles: [ { role: "root", db: "admin" } ]
})
4. Habilitar la autenticación y abrir el acceso a MongoDB a todas las IPs.
En Ubuntu:
$ sudo nano /etc/mongod.conf
- Busca la linea
nety comenta la líneabindIpdebajo de ella, la cual por defecto limita a MongoDB a conexiones locales:
# network interfaces
net:
port: 27017
# bindIp: 127.0.0.1 <- code="" comenta="" esta="" linea="">->
- Baja un poco más a la sección
#security:y agrega la siguiente línea. Asegúrate de quitar el comentario a la líneasecurity:.
security:
authorization: 'enabled'
5. Reinicia MongoDB.
$ sudo service mongod restart
6. Conéctate a la BD de manera local con tu cuenta de superAdmin.
$ mongo --port 27017 -u "superAdmin" -p "pass1234" --authenticationDatabase "admin"
7. Abrir puertos en el servidor para el acceso remoto.
iptables.sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
- Ve a tu Dashboard de ec2: https://console.aws.amazon.com/ec2/
- Luego a
Instancesselecciona tu instancia, muévete hacia abajo para ver el Security Groups de tu instancia. Ejemplo:launch-wizard-4 - Ve a
Network & Security->Security Groups->InboundY da click enEdit. - Crea un puerto TCP Custom 27017, Source: Anywhere, 0.0.0.0/0
8. Prueba tu conexión remota.
$ mongo -u superAdmin -p pass1234 123.45.67.89123.45.67.89 es la IP pública de tu servidor.9. Usando pymongo con tu Servidor MongoDB remoto.
import pymongo
client = pymongo.MongoClient("mongodb://superAdmin:pass1234@123.45.67.89:27017/blog?ssl=false&authSource=admin")
db = client.blog
post = {"autor": "Martin",
"titulo": "My first blog post!",
"tags": ["mongodb", "python", "pymongo"]}
posts = db.posts post_id = posts.insert_one(post).inserted_id
# imprime el id el post recién insertado.print post_id
# imprime el número de elementos en la colección posts. printposts.count()
Fuentes:
- https://docs.mongodb.com/v2.6/tutorial/enable-authentication/
- https://docs.mongodb.com/manual/tutorial/configure-linux-iptables-
