MongoDB Sikkerhet, overvåking og sikkerhetskopiering (Mongodump)

Et av nøkkelbegrepene i MongoDB er administrasjon av databaser. Viktige aspekter som sikkerhet, backup, tilgang til databaser er alle viktige begreper når det kommer til databaseadministrasjon.

MongoDB Sikkerhetsoversikt

MongoDB har evnen til å definere sikkerhetsmekanismer til databaser. Som standard vil man ikke at alle skal ha åpen tilgang til hver database i MongoDB, derav kravet om å ha en slags sikkerhetsmekanisme i MongoDB er viktig.

Følgende er de beste fremgangsmåtene når du implementerer sikkerhet i databaser

  1. Aktiver tilgangskontroll – Opprett brukere slik at alle applikasjoner og brukere tvinges til å ha en slags autentiseringsmekanisme når de får tilgang til databaser på MongoDB.
  2. Konfigurer rollebasert tilgangskontroll – Noen ganger kan det være en logisk gruppering av tillatelser som kan være nødvendig, som kan klubbes i roller. Brukere kan deretter tildeles disse rollene.
  3. Prøv å konfigurere MongoDB å bruke en slags krypteringsprotokoll som TLS eller SSL. Disse protokollene kan brukes til å kryptere trafikken som flyter mellom klienten og mongo DB-miljøet.
  4. Konfigurer revisjon – Administratorer trenger vanligvis å vite hvem som gjør hva, noe som hjelper til med å analysere problemer senere. Den beste måten er å aktivere revisjon MongoDB.
  5. Kjør MongDB serverforekomst med en egen bruker-ID som har tilgang til de nødvendige ressursene på servermiljøet.

Mongodb Backup-prosedyrer – mongodump

Når du arbeider med MongDB, er det viktig å alltid sørge for at en sikkerhetskopi prosedyre er på plass i tilfelle dataene innenfor MongoDB blir ødelagt av en eller annen grunn.

Nedenfor er sikkerhetskopieringsmekanismene tilgjengelig innenfra MongoDB

  1. Sikkerhetskopiering ved å kopiere underliggende datafiler – Dette er sannsynligvis den enkleste mekanismen, alt som må gjøres er å kopiere datafilene som MongoDB bor og kopier den til et annet sted som ideelt sett burde være en annen server.
  2. Sikkerhetskopier en database med mongodump – Mongodump-verktøyet leser data fra en MongoDB database og lager BSON-filer med høy kvalitet. Det som må tas i betraktning er at hvis datasettet er stort i volum, kan mongodump være veldig ressurskrevende, så for å redusere dette problemet, bør verktøyet kjøres på en sekundær server.
  3. MongoDB Cloud Manager Backup - MongoDB Cloud Manager sikkerhetskopierer kontinuerlig MongoDB replikasett og splittede klynger ved å lese oplogdataene fra MongoDB miljø. MongoDB Cloud Manager kan opprette et tidspunkt for gjenoppretting ved å lagre oplogdata slik at den kan opprette en gjenoppretting når som helst for et bestemt replikasett eller sharded cluster.

Mongodb overvåking

Overvåking er en av de mest kritiske administrative aktivitetene i MongoDB. Dette er fordi du kan være mer proaktiv ved å overvåke miljøet for mulige problemer som kan dukke opp.

Nedenfor er noen av eksemplene for implementering av overvåking

  1. mongostat vil fortelle deg hvor mange ganger databaseoperasjoner som å sette inn, spørre, oppdatere, slette osv. faktisk forekommer på serveren. Dette vil gi en god idé om hvor mye belastningen serveren håndterer og vil indikere om du trenger ekstra ressurser på serveren eller kanskje flere servere for å fordele belastningen.
  2. Mongotop sporer og rapporterer gjeldende lese- og skriveaktivitet til en MongoDB forekomst, og rapporterer denne statistikken per samling.
  3. MongoDB gir et nettgrensesnitt som viser diagnose- og overvåkingsinformasjon på en enkel nettside. Man kan bla til url-en nedenfor på din lokale server for å åpne webadministrasjonsverktøyet http://localhost:28017
  4. ServerStatus-kommandoen, eller db.serverStatus() fra skallet, returnerer en oversikt over statusen til databasen, med detaljer om diskbruk, minnebruk, tilkoblinger etablert til MongoDB miljø osv.

MongoDB Indeksering og ytelseshensyn

  1. Indekser er svært viktige i enhver database og kan brukes til å forbedre effektiviteten av søk i MongoDB. Hvis du kontinuerlig utfører søk i dokumentet ditt, er det bedre å legge til indekser på feltene i dokumentet som brukes i søkekriteriene.
  2. Prøv å alltid begrense antallet søkeresultater som returneres. Anta at du har 2 feltnavn i et dokument, men du vil bare se 2 felt fra dokumentet. Sørg deretter for at søket ditt kun er rettet mot å vise de to feltene du trenger og ikke alle feltene.
  3. Hvis du vil se visse feltverdier, bruk kun disse feltene i spørringen. Ikke spør etter alle feltene i samlingen hvis de ikke er obligatoriske.

Konfigurer MongoDB med Kerberos-autentisering

Mens autorisasjon ser på å sikre klienten tilgang til systemet, sjekker autentiseringen hvilken type tilgang klienten har i MongoDB, når de er autorisert inn i systemet.

Det finnes ulike autentiseringsmekanismer, nedenfor er bare noen av dem.

MongoDB Autentisering ved hjelp av x.509-sertifikater

Bruk x.509-sertifikater for å autentisere klienten – Et sertifikat er i utgangspunktet en klarert signatur mellom klienten og MongoDB Server.

Så i stedet for å skrive inn et brukernavn og passord for å koble til serveren, sendes et sertifikat mellom klienten og MongoDB Server. Klienten vil i utgangspunktet ha et klientsertifikat som sendes til serveren for å autentisere seg på serveren. Hvert klientsertifikat tilsvarer enkelt MongoDB bruker. Så hver bruker fra MongoDB må ha sitt eget sertifikat for å kunne autentiseres til MongoDB server.

For å sikre at dette fungerer, må følgende trinn følges;

  1. Et gyldig sertifikat må kjøpes fra en gyldig tredjepartsmyndighet og installere det på MongoDB Server.
  2. Klientsertifikatet må ha følgende egenskaper (En enkelt sertifiseringsinstans (CA) må utstede sertifikatene for både klienten og serveren. Klientsertifikatene må inneholde følgende felt – keyUsage og extendedKeyUsage.
  3. Hver bruker som kobler til MongDB-serveren må ha et eget sertifikat.

Slik konfigurerer du MongoDB med Kerberos-autentisering

Nedenfor er trinnene for å konfigurere MongoDB med Kerberos-autentisering på Windows:

Trinn 1) Konfigurer MongoDB med Kerberos-autentisering på Windows
Kerberos er en autentiseringsmekanisme som brukes i store klient-server-miljøer.

Det er en veldig sikker mekanisme der passordet bare er tillatt hvis det er kryptert. Godt, MongoDB har muligheten til å autentisere mot et eksisterende Kerberos-basert system.

Trinn 2) mongod.exe serverprosess
Deretter starter du mongod.exe-serverprosessen.

Trinn 3) mongo.exe-klientprosessen og koble til
Deretter starter du mongo.exe-klientprosessen og kobler til MongoDB server.

Trinn 4) Legg til en bruker i MongoDB
Som i utgangspunktet er et Kerberos-hovednavn til $external-databasen. $external databasen er en spesiell database som forteller MongoDB å autentisere denne brukeren mot et Kerberos-system i stedet for sitt eget interne system.

Konfigurer MongoDB med Kerberos-autentisering

use $external
db.createUser(
{
	user: "[email protected]",

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

Trinn 5) Begynn å bruke kommandoen
Start mongod.exe med Kerberos-støtte ved å bruke følgende kommando

mongod.exe –auth –setParameter authenticationMechanisms=GSSAPI

Og så kan du nå koble til Kerberos-brukeren og Kerberos-autentisering til databasen.

Sammendrag

  • Det er svært viktig å implementere sikkerhet i databaser for å sikre at dataene i databasen holdes trygge.
  • Brukere kan opprettes i databasen med kommandoen createUser. Spesifikke roller kan tildeles brukerne for å gi dem spesifikke tillatelser på selve databasen.
  • Administratorer kan legges til for alle databaser er kun for spesifikke databaser. Dette oppnås ved å gi enten rollen userAdmin eller userAdminAnyDatabase.
  • Sikkerhetskopier alltid din MongoDB miljø slik at i tilfelle en katastrofe, vil dataene lett kunne gjenopprettes.
  • Overvåk alltid din MongoDB miljø for å være mer proaktiv og se problemer før de oppstår.
  • Det finnes ulike autentiseringsmekanismer for å gi bedre sikkerhet i databaser. Et eksempel er bruken av sertifikater for å autentisere brukere i stedet for å bruke brukernavn og passord.

Oppsummer dette innlegget med: