MongoDB giver en række konstruktioner til at forbedre sikkerheden af dine data. Sikkerheden af dine data i MongoDB er altafgørende – så det er vigtigt at udnytte disse konstruktioner til at reducere dit overfladeareal. Her er 10 tips, du kan bruge til at forbedre sikkerheden på dine MongoDB-servere on-premise og i skyen.
-
Aktiver godkendelse
Selvom du har installeret dine MongoDB-servere i et betroet netværk, er det god sikkerhedspraksis at aktivere godkendelse. Det giver dig "forsvar i dybden", hvis dit netværk er kompromitteret. Rediger din MongoDB-konfigurationsfil for at aktivere auth:
auth = true
-
Udsæt ikke din produktionsdatabase for internettet
Begrænsning af fysisk adgang til din database er et vigtigt aspekt af sikkerheden. Hvis det ikke er nødvendigt, skal du ikke udsætte din produktionsdatabase for internettet. Hvis en angriber ikke fysisk kan oprette forbindelse til din MongoDB-server, er dine data meget mere sikre i tilfælde af kompromis. Hvis du er på AWS, kan du placere dine databaser i et virtuel privat sky (VPC) undernet. Læs blogindlægget Deploying MongoDB in a VPC for mere information.
-
Brug firewalls
Brug firewalls til at begrænse, hvilke andre enheder der må oprette forbindelse til din MongoDB-server. Bedste praksis er kun at give dine applikationsservere adgang til databasen. Hvis du er hostet på AWS, skal du bruge 'Sikkerhedsgrupper' til at begrænse adgangen. Hvis du er hostet hos en udbyder, der ikke understøtter firewall-konstruktioner, kan du nemt konfigurere det selv ved hjælp af 'iptables'. Se MongoDB-dokumentationen for at konfigurere iptables til dit scenarie.
-
Brug nøglefiler til at konfigurere replikasættet
Angiv en delt nøglefil for at aktivere kommunikation mellem dine MongoDB-instanser i et replikasæt. For at aktivere dette skal du tilføje keyfile-parameteren til konfigurationsfilen som beskrevet nedenfor. Indholdet af filen skal være det samme på alle maskinerne:
keyFile = /srv/mongodb/keyfile
-
Deaktiver HTTP-statusgrænseflade
MongoDB leverer som standard en http-grænseflade, der kører på port 28017, som giver statussiden "hjemme". Denne grænseflade anbefales ikke til produktionsbrug og er bedst deaktiveret. Brug "nohttpinterface"-konfigurationsindstillingen for at deaktivere http-grænsefladen:
nohttpinterface = true
-
Deaktiver REST-grænsefladen
MongoDB REST-grænsefladen anbefales ikke til produktion. Den understøtter ikke nogen godkendelse og er slået fra som standard. Hvis du har slået det til ved hjælp af "rest"-konfigurationsmuligheden, bør du slå det fra for produktionssystemer.
rest = false
-
Konfigurer bind_ip
Hvis dit system har flere netværksgrænseflader, kan du bruge "bind_ip"-indstillingen til at begrænse din MongoDB-server til kun at lytte på de grænseflader, der er relevante. Som standard vil MongoDB binde til alle grænseflader:
bind_ip = 10.10.0.25,10.10.0.26
-
Aktiver SSL
Hvis du ikke bruger SSL, rejser dine data mellem din Mongo-klient og Mongo-server ukrypteret og er modtagelige for aflytning, manipulation og "mand i midten"-angreb. Dette er især vigtigt, hvis du opretter forbindelse til din MongoDB-server via usikrede netværk såsom internettet.
-
Rollebaseret godkendelse
MongoDB understøtter rollebaseret godkendelse for at give dig finkornet kontrol over de handlinger, der kan udføres af hver bruger. Brug rollebaserede konstruktioner til at begrænse adgangen i stedet for at gøre alle dine brugere til administratorer. Se rolledokumentationen for flere detaljer.
-
Enterprise MongoDB &Kerberos
Enterprise MongoDB integreres med Kerberos til godkendelse. Se MongoDB-dokumentationen for flere detaljer. Brugernavn/adgangskodesystemer er i sagens natur usikre – brug kantstensbaseret godkendelse, hvis det er muligt.
Hos ScaleGrid stræber vi efter at understøtte bedste praksis sikkerhedskonfigurationer som standard for alle vores implementeringer. Vi giver dig mulighed for at bruge SSL og heller ikke udsætte din database for internettet. Hvis du har spørgsmål, bedes du kontakte os på [email protected].