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.

  1. 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ó:

# Inicia MongoDB amb autenticació habilitada
mongod --auth

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: []
  }
)

  1. 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ó:

# Configuració en el fitxer mongod.conf
net:
  bindIp: 127.0.0.1,192.168.1.100

  1. 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

  1. 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.

  1. 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:

  1. Configura una instància de MongoDB amb autenticació habilitada.
  2. Crea un usuari amb permisos limitats per a una base de dades específica.
  3. Configura TLS/SSL per a la comunicació segura.
  4. 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.

© Copyright 2024. Tots els drets reservats