MongoDB Sicurezza, monitoraggio e backup (Mongodump)

Uno dei concetti chiave in MongoDB è la gestione dei database. Aspetti importanti come sicurezza, backup, accesso ai database sono tutti concetti importanti quando si tratta di amministrazione dei database.

MongoDB Panoramica sulla sicurezza

MongoDB ha la capacità di definire meccanismi di sicurezza per i database. Per impostazione predefinita non si vorrebbe che tutti avessero accesso aperto a ogni database in MongoDB, da qui la necessità di avere una sorta di meccanismo di sicurezza MongoDB è importante.

Di seguito sono riportate le migliori pratiche per l'implementazione della sicurezza nei database

  1. Abilita il controllo degli accessi: crea utenti in modo che tutte le applicazioni e gli utenti siano obbligati ad avere una sorta di meccanismo di autenticazione quando accedono ai database su MongoDB.
  2. Configurare il controllo degli accessi basato sui ruoli – A volte può esserci un raggruppamento logico di autorizzazioni che potrebbero essere richieste, che possono essere raggruppate in ruoli. Gli utenti possono quindi essere assegnati a questi ruoli.
  3. Prova a configurare MongoDB utilizzare una sorta di protocollo di crittografia come TLS o SSL. Questi protocolli possono essere utilizzati per crittografare il traffico che scorre tra il client e l'ambiente mongo DB.
  4. Configurare l'audit – Gli amministratori normalmente hanno bisogno di sapere chi sta facendo cosa, il che aiuta ad analizzare i problemi in seguito. Il modo migliore è abilitare l'audit in MongoDB.
  5. Esegui l'istanza del server MongDB con un ID utente separato che ha accesso alle risorse richieste nell'ambiente server.

Procedure di backup di Mongodb – mongodump

Quando si lavora con MongDB è importante assicurarsi sempre che sia in atto una procedura di backup per i dati all'interno MongoDB viene danneggiato per qualsiasi motivo.

Di seguito sono riportati i meccanismi di backup disponibili dall'interno MongoDB

  1. Backup copiando i file di dati sottostanti – Questo è probabilmente il meccanismo più semplice, tutto ciò che bisogna fare è copiare i file di dati su cui MongoDB risiede e copiarlo in un'altra posizione che idealmente dovrebbe essere un altro server.
  2. Eseguire il backup di un database con mongodump – Lo strumento mongodump legge i dati da a MongoDB database e crea file BSON ad alta fedeltà. Ciò che deve essere preso in considerazione è che se il set di dati ha un volume elevato, mongodump può richiedere molto risorse, quindi per mitigare questo problema, l'utilità dovrebbe essere eseguita su un server secondario.
  3. MongoDB Backup del gestore cloud - MongoDB Cloud Manager esegue continuamente il backup MongoDB set di repliche e cluster partizionati leggendo i dati oplog dal file MongoDB ambiente. MongoDB Cloud Manager può creare un ripristino puntuale archiviando i dati oplog in modo da poter creare un ripristino in qualsiasi momento per un particolare set di repliche o cluster partizionato.

Monitoraggio MongoDB

Il monitoraggio è una delle attività amministrative più critiche in MongoDB. Questo perché puoi essere più proattivo monitorando l'ambiente per possibili problemi che potrebbero sorgere.

Di seguito sono riportati alcuni esempi di implementazione del monitoraggio

  1. mongostato ti dirà quante volte le operazioni del database come inserimento, interrogazione, aggiornamento, eliminazione, ecc. si verificano effettivamente sul server. Questo darà una buona idea di quanto carico sta gestendo il server e indicherà se sono necessarie risorse aggiuntive sul server o magari server aggiuntivi per distribuire il carico.
  2. mongotopo tiene traccia e segnala l'attività corrente di lettura e scrittura di a MongoDB istanza e riporta queste statistiche in base alla raccolta.
  3. MongoDB fornisce un'interfaccia web che espone informazioni di diagnostica e monitoraggio in una semplice pagina web. È possibile accedere all'URL seguente sul server locale per aprire l'utilità di amministrazione Web http://localhost:28017
  4. Il comando serverStatus, o db.serverStatus() dalla shell, restituisce una panoramica dello stato del database, con dettagli sull'utilizzo del disco, sull'utilizzo della memoria, sulle connessioni stabilite al MongoDB ambiente, ecc.

MongoDB Considerazioni sull'indicizzazione e sulle prestazioni

  1. Gli indici sono molto importanti in qualsiasi database e possono essere utilizzati per migliorare l'efficienza delle query di ricerca MongoDB. Se esegui continuamente ricerche nel tuo documento, è meglio aggiungere indici ai campi del documento utilizzati nei criteri di ricerca.
  2. Cerca di limitare sempre il numero di risultati della query restituiti. Supponiamo di avere 2 nomi di campo in un documento, ma di voler vedere solo 2 campi dal documento. Assicurati quindi che la tua query abbia come target solo i 2 campi richiesti e non tutti i campi.
  3. Se desideri visualizzare determinati valori di campo, utilizza solo tali campi nella query. Non eseguire query su tutti i campi della raccolta se non sono obbligatori.

Configurazione MongoDB con autenticazione Kerberos

Mentre l'autorizzazione mira a garantire l'accesso del client al sistema, l'autenticazione controlla il tipo di accesso del client MongoDB, una volta che sono stati autorizzati nel sistema.

Esistono vari meccanismi di autenticazione, di seguito ne vengono riportati solo alcuni.

MongoDB Autenticazione tramite certificati x.509

Utilizza certificati x.509 per autenticare il client: un certificato è fondamentalmente una firma attendibile tra il client e il MongoDB Server.

Quindi, invece di inserire un nome utente e una password per connettersi al server, viene passato un certificato tra il client e il file MongoDB Server. Il client avrà fondamentalmente un certificato client che verrà passato al server per autenticarsi nel server. Ogni certificato client corrisponde a single MongoDB utente. Quindi ogni utente da MongoDB deve avere il proprio certificato per autenticarsi su MongoDB server.

Per garantire il funzionamento, è necessario seguire i seguenti passaggi:

  1. È necessario acquistare un certificato valido da un'autorità terza valida e installarlo sul MongoDB Server.
  2. Il certificato client deve avere le seguenti proprietà (una singola autorità di certificazione (CA) deve emettere i certificati sia per il client che per il server. I certificati client devono contenere i seguenti campi: keyUsage ed extendedKeyUsage.
  3. Ogni utente che si connette al server MongDB deve avere un certificato separato.

Come configurare MongoDB con autenticazione Kerberos

Di seguito sono riportati i passaggi per la configurazione MongoDB con l'autenticazione Kerberos attivata Windows:

Passo 1) Configurazione MongoDB con l'autenticazione Kerberos attivata Windows
Kerberos è un meccanismo di autenticazione utilizzato in ambienti client-server di grandi dimensioni.

È un meccanismo molto sicuro in cui la password è consentita solo se crittografata. BENE, MongoDB ha la possibilità di autenticarsi contro un sistema esistente basato su Kerberos.

Passo 2) processo server mongod.exe
Successivamente, avvia il processo del server mongod.exe.

Passo 3) processo client mongo.exe e connettersi
Successivamente, avvia il processo client mongo.exe e connettiti a MongoDB server.

Passo 4) Aggiungi un utente in MongoDB
Che è fondamentalmente un nome principale Kerberos per il database $external. Il database $external è un database speciale che racconta MongoDB per autenticare questo utente rispetto a un sistema Kerberos anziché al proprio sistema interno.

Configurazione MongoDB con autenticazione Kerberos

use $external
db.createUser(
{
	user: "user1@example.NET",

	roles:[
	{
		role: "read" , db:"Marketing"}
		
	}
		  ]
}

Passo 5) Inizia a usare il comando
Avviare mongod.exe con supporto Kerberos utilizzando il seguente comando

mongod.exe –auth –setParameter authenticationMechanisms=GSSAPI

Quindi ora puoi connetterti con l'utente Kerberos e l'autenticazione Kerberos al database.

Sintesi

  • È molto importante implementare la sicurezza nei database per garantire che i dati nel database siano mantenuti al sicuro.
  • Gli utenti possono essere creati nel database con il comando createUser. È possibile assegnare ruoli specifici agli utenti per fornire loro autorizzazioni specifiche sul database stesso.
  • È possibile aggiungere amministratori per tutti i database solo per database specifici. Ciò si ottiene assegnando il ruolo userAdmin o userAdminAnyDatabase.
  • Esegui sempre il backup del tuo MongoDB ambiente in modo che, in caso di disastro, i dati siano facilmente recuperabili.
  • Monitora sempre il tuo MongoDB ambiente per essere più proattivi e individuare i problemi prima che si verifichino.
  • Esistono vari meccanismi di autenticazione per fornire una migliore sicurezza nei database. Un esempio è l'utilizzo di certificati per autenticare gli utenti invece di utilizzare nomi utente e password.