MongoDB tillhandahåller ett antal konstruktioner för att förbättra säkerheten för dina data. Säkerheten för dina data i MongoDB är av största vikt – så det är viktigt att utnyttja dessa konstruktioner för att minska din yta. Här är 10 tips du kan använda för att förbättra säkerheten för dina MongoDB-servrar på plats och i molnet.
-
Aktivera autentisering
Även om du har distribuerat dina MongoDB-servrar i ett pålitligt nätverk, är det bra säkerhetspraxis att aktivera autentisering. Det ger dig "försvar på djupet" om ditt nätverk äventyras. Redigera din MongoDB-konfigurationsfil för att aktivera auth:
auth = true
-
Utsätt inte din produktionsdatabas för internet
Att begränsa fysisk åtkomst till din databas är en viktig aspekt av säkerheten. Om det inte är nödvändigt, exponera inte din produktionsdatabas för internet. Om en angripare inte kan ansluta fysiskt till din MongoDB-server, är din data så mycket säkrare vid eventuella kompromisser. Om du använder AWS kan du placera dina databaser i ett virtuellt privat moln (VPC) undernät. Läs blogginlägget Distribuera MongoDB i en VPC för mer information.
-
Använd brandväggar
Använd brandväggar för att begränsa vilka andra enheter som får ansluta till din MongoDB-server. Bästa praxis är att endast ge dina applikationsservrar åtkomst till databasen. Om du är värd på AWS, använd "Säkerhetsgrupper" för att begränsa åtkomsten. Om du är värd hos en leverantör som inte stöder brandväggskonstruktioner kan du enkelt konfigurera den själv med "iptables". Se MongoDB-dokumentationen för att konfigurera iptables för ditt scenario.
-
Använd nyckelfiler för att ställa in replikuppsättningen
Ange en delad nyckelfil för att möjliggöra kommunikation mellan dina MongoDB-instanser i en replikuppsättning. För att aktivera detta, lägg till nyckelfilsparametern till konfigurationsfilen enligt beskrivningen nedan. Innehållet i filen måste vara detsamma på alla datorer:
keyFile = /srv/mongodb/keyfile
-
Inaktivera HTTP-statusgränssnitt
MongoDB tillhandahåller som standard ett http-gränssnitt som körs på port 28017 som tillhandahåller statussidan "hem". Detta gränssnitt rekommenderas inte för produktionsanvändning och är bäst inaktiverat. Använd "nohttpinterface"-konfigurationsinställningen för att inaktivera http-gränssnittet:
nohttpinterface = true
-
Inaktivera REST-gränssnittet
MongoDB REST-gränssnittet rekommenderas inte för produktion. Den stöder ingen autentisering och är avstängd som standard. Om du har aktiverat det med konfigurationsalternativet "vila", bör du stänga av det för produktionssystem.
rest = false
-
Konfigurera bind_ip
Om ditt system har flera nätverksgränssnitt kan du använda alternativet "bind_ip" för att begränsa din MongoDB-server så att den bara lyssnar på de gränssnitt som är relevanta. Som standard kommer MongoDB att binda till alla gränssnitt:
bind_ip = 10.10.0.25,10.10.0.26
-
Aktivera SSL
Om du inte använder SSL, färdas din data mellan din Mongo-klient och Mongo-server okrypterad och är mottaglig för avlyssning, manipulering och "man i mitten"-attacker. Detta är särskilt viktigt om du ansluter till din MongoDB-server över osäkra nätverk som internet.
-
Rollbaserad auktorisering
MongoDB stöder rollbaserad autentisering för att ge dig finkornig kontroll över de åtgärder som kan utföras av varje användare. Använd rollbaserade konstruktioner för att begränsa åtkomsten istället för att göra alla dina användare till administratörer. Se rolldokumentationen för mer information.
-
Enterprise MongoDB &Kerberos
Enterprise MongoDB integreras med Kerberos för autentisering. Se MongoDB-dokumentationen för mer information. Användarnamn/lösenordssystem är till sin natur osäkra – använd trottoarkantsbaserad autentisering om möjligt.
På ScaleGrid strävar vi efter att stödja säkerhetskonfigurationer för bästa praxis som standard för alla våra implementeringar. Vi gör det möjligt för dig att använda SSL och inte heller exponera din databas för internet. Om du har några frågor, vänligen maila oss på [email protected].