La seguretat és un aspecte crític en qualsevol sistema de bases de dades, i MongoDB no és una excepció. En aquesta secció, explorarem les millors pràctiques per assegurar la teva instància de MongoDB, protegir les dades i garantir que només els usuaris autoritzats tinguin accés.
- Autenticació i Autorització
1.1. Configurar l'Autenticació
L'autenticació és el procés de verificar la identitat dels usuaris que intenten accedir a la base de dades. MongoDB ofereix diversos mètodes d'autenticació, incloent l'autenticació basada en usuaris i contrasenyes.
Exemple de Configuració:
1.2. Crear Usuaris amb Rols Adequats
És important crear usuaris amb rols específics que limitin les seves accions a les necessitats del seu treball.
Exemple de Creació d'Usuari:
use admin db.createUser( { user: "adminUser", pwd: "securePassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
1.3. Utilitzar Rols Personalitzats
MongoDB permet crear rols personalitzats per ajustar les necessitats específiques de seguretat.
Exemple de Rol Personalitzat:
db.createRole( { role: "readWriteCustom", privileges: [ { resource: { db: "testDB", collection: "" }, actions: [ "find", "insert", "update", "remove" ] } ], roles: [] } )
- Comunicació Segura
2.1. Utilitzar TLS/SSL
TLS/SSL xifra la comunicació entre el client i el servidor, protegint les dades en trànsit.
Exemple de Configuració:
# Configuració en el fitxer mongod.conf net: ssl: mode: requireSSL PEMKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/ca.pem
2.2. Configurar IP Binding
Limita les adreces IP des de les quals MongoDB accepta connexions.
Exemple de Configuració:
- Xifrat de Dades
3.1. Xifrat a Nivell de Disc
MongoDB ofereix xifrat a nivell de disc per protegir les dades emmagatzemades.
Exemple de Configuració:
# Configuració en el fitxer mongod.conf security: enableEncryption: true encryptionKeyFile: /etc/mongodb-keyfile
- Auditories i Monitorització
4.1. Configurar Auditories
Les auditories permeten registrar les accions dels usuaris i detectar activitats sospitoses.
Exemple de Configuració:
# Configuració en el fitxer mongod.conf auditLog: destination: file format: JSON path: /var/log/mongodb/audit.log
4.2. Utilitzar Eines de Monitorització
Eines com MongoDB Cloud Manager o Prometheus poden ajudar a monitoritzar el rendiment i la seguretat.
- Millors Pràctiques Addicionals
5.1. Actualitzacions Regulars
Mantingues MongoDB actualitzat amb les últimes versions per assegurar-te que tens les últimes correccions de seguretat.
5.2. Configurar Còpies de Seguretat
Realitza còpies de seguretat regulars per protegir les dades contra pèrdues.
5.3. Revisar i Actualitzar Rols i Permisos
Revisa periòdicament els rols i permisos dels usuaris per assegurar-te que només tenen els accessos necessaris.
Exercici Pràctic
Exercici:
- Configura una instància de MongoDB amb autenticació habilitada.
- Crea un usuari amb permisos limitats per a una base de dades específica.
- Configura TLS/SSL per a la comunicació segura.
- Configura auditories per registrar les accions dels usuaris.
Solució:
# Inicia MongoDB amb autenticació habilitada mongod --auth --config /etc/mongod.conf # Connecta't a MongoDB com a administrador mongo --port 27017 -u "adminUser" -p "securePassword" --authenticationDatabase "admin" # Crea un usuari amb permisos limitats use testDB db.createUser( { user: "limitedUser", pwd: "userPassword", roles: [ { role: "readWrite", db: "testDB" } ] } ) # Configura TLS/SSL en el fitxer mongod.conf net: ssl: mode: requireSSL PEMKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/ca.pem # Configura auditories en el fitxer mongod.conf auditLog: destination: file format: JSON path: /var/log/mongodb/audit.log
Conclusió
En aquesta secció, hem explorat les millors pràctiques de seguretat per a MongoDB, incloent l'autenticació, la comunicació segura, el xifrat de dades, les auditories i la monitorització. Implementar aquestes pràctiques ajudarà a protegir les teves dades i assegurar que només els usuaris autoritzats tinguin accés. En el següent mòdul, ens centrarem en la monitorització i les alertes per mantenir el rendiment i la seguretat de la teva instància de MongoDB.
Curs de MongoDB
Mòdul 1: Introducció a MongoDB
Mòdul 2: Operacions CRUD a MongoDB
Mòdul 3: Modelatge de Dades a MongoDB
Mòdul 4: Indexació i Agregació
Mòdul 5: Funcions Avançades de MongoDB
Mòdul 6: Rendiment i Seguretat
- Optimització del Rendiment
- Còpia de Seguretat i Restauració
- Millors Pràctiques de Seguretat
- Monitorització i Alertes