MongoDB Beveiliging, monitoring en back-up (Mongodump)

Eén van de sleutelbegrippen in MongoDB is het beheer van databases. Belangrijke aspecten zoals beveiliging, back-up, toegang tot databases zijn allemaal belangrijke concepten als het gaat om databasebeheer.

MongoDB Beveiligingsoverzicht

MongoDB heeft de mogelijkheid om beveiligingsmechanismen voor databases te definiëren. Standaard zou je niet willen dat iedereen open toegang heeft tot elke database MongoDB, vandaar de vereiste dat er een soort beveiligingsmechanisme in zit MongoDB is belangrijk.

Hieronder staan ​​de beste werkwijzen voor het implementeren van beveiliging in databases

  1. Toegangscontrole inschakelen – Maak gebruikers aan zodat alle applicaties en gebruikers worden afgedwongen om een ​​soort authenticatiemechanisme te hebben bij toegang tot databases op MongoDB.
  2. Configureer op rollen gebaseerde toegangscontrole – Soms kan er een logische groep machtigingen zijn die vereist zijn, die in rollen kunnen worden samengevoegd. Gebruikers kunnen vervolgens aan deze rollen worden toegewezen.
  3. Probeer te configureren MongoDB om een ​​soort coderingsprotocol te gebruiken, zoals TLS of SSL. Deze protocollen kunnen worden gebruikt om het verkeer dat tussen de client en de mongo DB-omgeving stroomt, te coderen.
  4. Configureer auditing – Administrators moeten normaal gesproken weten wie wat doet, wat helpt bij het analyseren van problemen later. De beste manier is om auditing in te schakelen in MongoDB.
  5. Voer een MongDB-serverinstantie uit met een afzonderlijk gebruikers-ID dat toegang heeft tot de vereiste bronnen in de serveromgeving.

Mongodb Back-up Procedures – mongodump

Wanneer u met MongDB werkt, is het belangrijk om er altijd voor te zorgen dat er een back-upprocedure aanwezig is voor het geval de gegevens zich daarin bevinden MongoDB om welke reden dan ook beschadigd raakt.

Hieronder vindt u de back-upmechanismen die van binnenuit beschikbaar zijn MongoDB

  1. Back-up door onderliggende gegevensbestanden te kopiëren – Dit is waarschijnlijk het gemakkelijkste mechanisme. Het enige dat u hoeft te doen, is de gegevensbestanden kopiëren waarop MongoDB zich bevindt en kopieer het naar een andere locatie die idealiter een andere server zou moeten zijn.
  2. Maak een back-up van een database met mongodump – De mongodump-tool leest gegevens van a MongoDB database en creëert high-fidelity BSON-bestanden. Waar rekening mee moet worden gehouden, is dat als de dataset een groot volume heeft, mongodump zeer hulpbronnenintensief kan zijn. Om dit probleem te verhelpen, moet het hulpprogramma dus op een secundaire server worden uitgevoerd.
  3. MongoDB Back-up van Cloud Manager - MongoDB Cloud Manager maakt voortdurend back-ups MongoDB replica sets en gefragmenteerde clusters door de oplog-gegevens van de MongoDB milieu. MongoDB Cloud Manager kan een herstelbewerking op een bepaald tijdstip uitvoeren door oplog-gegevens op te slaan. Zo kan op elk gewenst moment een herstelbewerking worden uitgevoerd voor een specifieke replicaset of geshard cluster.

Mongodb-bewaking

Monitoring is een van de meest kritische administratieve activiteiten in de wereld MongoDB. Dit komt omdat u proactiever kunt zijn door de omgeving te monitoren op mogelijke problemen die zich kunnen voordoen.

Hieronder vindt u enkele voorbeelden van het implementeren van monitoring

  1. mongostaat vertelt u hoe vaak databasebewerkingen zoals invoegen, opvragen, bijwerken, verwijderen, etc. daadwerkelijk op de server plaatsvinden. Dit geeft een goed idee van hoeveel belasting de server verwerkt en geeft aan of u extra bronnen op de server nodig hebt of misschien extra servers om de belasting te verdelen.
  2. mangotop volgt en rapporteert de huidige lees- en schrijfactiviteit van een MongoDB en rapporteert deze statistieken per verzameling.
  3. MongoDB biedt een webinterface die diagnostische en monitoringinformatie op een eenvoudige webpagina weergeeft. U kunt naar de onderstaande URL op uw lokale server bladeren om het webbeheerprogramma te openen http://localhost:28017
  4. De opdracht serverStatus, of db.serverStatus() vanuit de shell, retourneert een overzicht van de status van de database, met details over het schijfgebruik, geheugengebruik, verbindingen die tot stand zijn gebracht met de MongoDB omgeving, enz.

MongoDB Indexering en prestatieoverwegingen

  1. Indexen zijn erg belangrijk in elke database en kunnen worden gebruikt om de efficiëntie van zoekopdrachten in databases te verbeteren MongoDB. Als u voortdurend zoekopdrachten uitvoert in uw document, kunt u beter indexen toevoegen aan de velden van het document die in de zoekcriteria worden gebruikt.
  2. Probeer altijd het aantal geretourneerde zoekopdrachtresultaten te beperken. Stel dat u 2 veldnamen in een document heeft, maar u wilt slechts 2 velden uit het document zien. Zorg er vervolgens voor dat uw zoekopdracht alleen gericht is op het weergeven van de twee velden die u nodig heeft, en niet op alle velden.
  3. Als u bepaalde veldwaarden wilt bekijken, gebruik dan alleen die velden in de query. Voer geen zoekopdrachten uit voor alle velden in de verzameling als deze niet vereist zijn.

Configure MongoDB met Kerberos-authenticatie

Terwijl autorisatie ervoor zorgt dat de client toegang heeft tot het systeem, controleert de authenticatie welk type toegang de client heeft MongoDB, zodra ze in het systeem zijn geautoriseerd.

Er zijn verschillende authenticatiemechanismen, hieronder zijn er slechts enkele.

MongoDB Authenticatie met behulp van x.509-certificaten

Gebruik x.509-certificaten om de client te authenticeren – Een certificaat is in feite een vertrouwde handtekening tussen de client en de MongoDB Server.

Dus in plaats van een gebruikersnaam en wachtwoord in te voeren om verbinding te maken met de server, wordt er een certificaat doorgegeven tussen de client en de MongoDB Server. De client heeft in principe een clientcertificaat dat aan de server wordt doorgegeven om zich bij de server te authenticeren. Elk clientcertificaat komt overeen met single MongoDB gebruiker. Dus elke gebruiker van MongoDB moet een eigen certificaat hebben om te kunnen worden geauthenticeerd bij de MongoDB server.

Om ervoor te zorgen dat dit werkt, moeten de volgende stappen worden gevolgd:

  1. Er moet een geldig certificaat worden aangeschaft bij een geldige externe autoriteit en dit op de computer worden geïnstalleerd MongoDB Server.
  2. Het clientcertificaat moet de volgende eigenschappen hebben (één enkele certificeringsinstantie (CA) moet de certificaten voor zowel de client als de server uitgeven. De clientcertificaten moeten de volgende velden bevatten: keyUsage en extendedKeyUsage.
  3. Elke gebruiker die verbinding maakt met de MongDB-server heeft een afzonderlijk certificaat nodig.

Hoe te configureren MongoDB met Kerberos-authenticatie

Hieronder vindt u de stappen om te configureren MongoDB met Kerberos-authenticatie ingeschakeld Windows:

Stap 1) Configure MongoDB met Kerberos-authenticatie ingeschakeld Windows
Kerberos is een authenticatiemechanisme dat wordt gebruikt in grote client-serveromgevingen.

Het is een zeer veilig mechanisme waarbij het wachtwoord alleen is toegestaan ​​als het gecodeerd is. Goed, MongoDB heeft de mogelijkheid om zich te authenticeren tegen een bestaand Kerberos-gebaseerd systeem.

Stap 2) Mongod.exe-serverproces
Start vervolgens het mongod.exe-serverproces.

Stap 3) Mongo.exe-clientproces en verbinding maken
Start vervolgens het mongo.exe-clientproces en maak verbinding met de MongoDB server.

Stap 4) Voeg een gebruiker toe MongoDB
Dat is in feite een Kerberos-hoofdnaam voor de $external database. De $external database is een speciale database die vertelt MongoDB om deze gebruiker te authenticeren op een Kerberos-systeem in plaats van op zijn eigen interne systeem.

Configure
 MongoDB met Kerberos-authenticatie

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

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

Stap 5) Begin met het gebruik van commando
Start mongod.exe met Kerberos-ondersteuning door de volgende opdracht te gebruiken

mongod.exe –auth –setParameter authenticationMechanisms=GSSAPI

En dan kunt u nu verbinding maken met de Kerberos-gebruiker en Kerberos-authenticatie met de database.

Samenvatting

  • Het is erg belangrijk om beveiliging in databases te implementeren om ervoor te zorgen dat de gegevens in de database veilig worden bewaard.
  • Gebruikers kunnen in de database worden aangemaakt met de opdracht createUser. Er kunnen specifieke rollen aan de gebruikers worden toegewezen om hen specifieke machtigingen voor de database zelf te geven.
  • Beheerders kunnen voor alle databases worden toegevoegd, maar alleen voor specifieke databases. Dit wordt bereikt door de rol userAdmin of userAdminAnyDatabase te geven.
  • Maak altijd een back-up van uw MongoDB zodat de gegevens in geval van een ramp gemakkelijk kunnen worden hersteld.
  • Houd altijd uw MongoDB omgeving waarin u proactiever kunt zijn en problemen kunt zien voordat ze zich voordoen.
  • Er zijn verschillende authenticatiemechanismen om een ​​betere beveiliging van databases te bieden. Een voorbeeld is het gebruik van certificaten om gebruikers te authenticeren in plaats van het gebruik van gebruikersnamen en wachtwoorden.