MongoDB har gjort imponerande framsteg under de senaste 18 månaderna. Ett av de MongoDB-områden som har sett den största förbättringen har varit dets säkerhet. Säkerhet är av yttersta vikt för en produktionsdatabas. Befintliga relationsdatabaser tillhandahåller ett antal rattar och kontroller för att hjälpa databasadministratören (DBA) att hantera säkerheten för sin databas, och MongoDB kommer också till en liknande plats. I det här inlägget kommer vi att fördjupa oss i säkerhetsfunktionerna inom områdena autentisering, auktorisering och revision.
-
Autentisering
MongoDB erbjuder en mängd olika mekanismer för att autentisera användarnas anslutning till databasen. Välj den mekanism som ger den bästa balansen mellan säkerhet och hantering. Även om det är valfritt, rekommenderas säkerhetspraxis att alla produktionssystem har autentisering aktiverad.
-
Challenge Response Authentication (MongoDB-CR)
Detta är den traditionella användarnamn/lösenordsbaserade autentiseringen. Användare kan skapas inom ramen för en databas eller hela klustret. Om en användare bara behöver komma åt data i en viss databas, rekommenderas det att endast skapa användaren som är specifik för den databasen. Åtkomst på klusternivå bör begränsas för administratörer.
-
X.509-certifikatautentisering
Användare kan autentisera till sin MongoDB-databas med X.509-certifikat. För att göra detta måste MongoDB-servern ha SSL aktiverat. Som standard har gemenskapsbyggena av MongoDB inte SSL aktiverat. Du måste rulla ut din egen version eller registrera dig för att använda Enterprise-utgåvan. Du kan skapa en användare i MongoDB för varje X.509-certifikat med ett unikt ämne. För fler steg-för-steg-instruktioner, se MongoDB X.509-certifikatinställningen.
-
Kerberos-autentisering
Enterprise-byggen av MongoDB stöder autentisering med Kerberos, som är industristandarden för klientserverautentisering. Om du till exempel är ett företag med en Active Directory-installation kan du använda Kerberos autentiseringsmekanism för att autentisera dina användare. Detta undviker besväret med att hantera användarnamn, lösenord eller certifikat. Klicka här för instruktioner för att integrera MongoDB med Active Directory.
-
-
Auktorisering
Auktoriseringssystemet avgör vilka operationer användare kan utföra när de har slutfört autentiseringen. MongoDB stöder en modell för rollbaserad åtkomstkontroll (RBAC). Varje användare tilldelas specifika roller som avgör vilka operationer de får utföra. MongoDB har en uppsättning inbyggda roller och du kan också skapa dina egna anpassade roller. Varje roll tilldelas en uppsättning privilegier som parar resurser med tillåtna operationer på den resursen. MongoDB tillhandahåller inbyggda roller i följande omfång:
-
Databasanvändarroller
läs, lässkriv
-
Roller som databasadministratör (DBA)
dbAdmin, dbOwner, userAdmin
-
Klusteradministratörsroller
clusterAdmin, clusterManager, clusterMonitor, hostManager
-
Säkerhetskopiera och återställa roller
säkerhetskopiering, återställning
-
Alla databasroller
readAnyDatabase, readWriteAnyDatabase,userAdminAnyDatabase
-
Superanvändarroller
root
Se dokumentationen för inbyggda roller för en mer detaljerad förståelse av de roller som måste tilldelas dina användare.
-
-
Revision
MongoDB Enterprise 2.6-versionen har lagt till stöd för revision. Du kan konfigurera MongoDB-servern för att generera revisionshändelser för intressanta MongoDB-operationer, som användarinloggning, DDL-ändringar, replikuppsättningskonfigurationsändringar, etc. Detta gör att du kan använda ditt befintliga företagsrevisionsverktyg för att plocka upp och bearbeta nödvändiga händelser. För mer information, se listan över MongoDB-händelser som kan granskas.
För fler tips om hur du förbättrar säkerheten för dina MongoDB-databaser, se vårt andra blogginlägg – 10 tips för att förbättra din MongoDB-säkerhet.