sql >> Databasteknik >  >> NoSQL >> MongoDB

Säker MongoDB-distribution på Amazon AWS

Förra veckan bad en av mina kunder om arkitekturrekommendationer för att säkert distribuera MongoDB-produktionsinstanser på Amazon EC2 AWS. Detta fick mig att tänka på ämnet och detta blogginlägg är resultatet. Alldeles för många företag exponerar sina produktions MongoDB-databaser på internet när det finns bättre alternativ. Regel #1 för säkerhet är att begränsa fysisk åtkomst till dina databasservrar. Även om dina referenser äventyras, minskar det kraftigt påverkan om angriparen inte kan komma åt dina servrar.

Innan vi dyker in i detaljerna, låt oss ta ett steg tillbaka lite och komma ihåg hur IT-personal brukade distribuera databaser i AWS-världen före Amazon. Jag kan komma ihåg ett par olika konfigurationer:

1. Dual Firewall DMZ (Demilitarized zone) Konfiguration

I den här konfigurationen distribueras front-tier och mid-tier-servrarna i en DMZ och databasservrarna är bakom den andra brandväggen. Den främre brandväggen tillåter anslutningar på webbportarna och den bakre brandväggen tillåter endast anslutningar på databasportarna.

2. VLAN – Mindre populär än Dual Firewall DMZ

Datbasservrarna och front-end-servrarna finns på separata VLAN. Endast databasportarna är tillåtna i trunksammankopplingen mellan de två VLAN:erna.

Tekniskt har ingenting förändrats sedan dess. Men nu är teknikerna annorlunda. Du pratar inte längre om DMZ:er och brandväggar, utan du talar om VPC:er och säkerhetsgrupper. Om du är ett större företag med en IT-personal, skulle jag definitivt titta på Amazon VPC. Det ger dig mycket kontroll över lager 3-nätverket och du kan lägga dina databaser i ett privat subnät och inte exponera dem för internet. Det är dock ett mycket längre ämne för ett annat blogginlägg. Om du redan har konfigurerat VPC och vill ställa in MongoDB i VPC, här är mitt blogginlägg för att leda dig genom stegen – Distribuera MongoDB på Amazon VPC.

I resten av det här inlägget kommer jag att koncentrera mig på EC2-klassikern.

3 steg för att konfigurera Dual Firewall DMZ i AWS

1. Skapa en säkerhetsgrupp för dina MongoDB-servrar

En säkerhetsgrupp kan sträcka sig över en hel region – så även om du har en replikuppsättning kan du distribuera dina repliker över tillgänglighetszoner i regionen och fortfarande ha i samma säkerhetsgrupp . Skapa en säkerhetsgrupp för dina MongoDB-servrar och lägg bara till alla dina mongo-servrar i denna säkerhetsgrupp.

2. Skapa en säkerhetsgrupp för dina mellan- och främre servrar

Skapa en extra säkerhetsgrupp för dina MongoDB-servrar på mellan- och/eller frontnivå.

3. Konfigurera din MongoDB-säkerhetsgruppsåtkomst

Konfigurera din MongoDB-säkerhetsgrupp för att endast tillåta åtkomst till front tier-servrarna på MongoDB-portarna. Konfigurera din gränssnittssäkerhetsgrupp för att öppna webbportarna till internet.

Konfigurera Dual Firewall DMZ i AWS genom ScaleGrid

1. Skapa en säkerhetsgrupp i AWS

Logga in på din Amazon-konsol och skapa en säkerhetsgrupp för dina mellan-/frontservrar. Låt oss kalla säkerhetsgruppen för 'AppServerSG'. Konfigurera den här säkerhetsgruppen för att öppna http/https-porten vid behov. Placera dina mellannivå- och frontservrar i denna säkerhetsgrupp.

2. Skapa en ScaleGrid AWS-molnprofil

Logga in på ScaleGrid-konsolen och klicka på fliken Machine Pool. Skapa din egen anpassade maskinpool så att du kan distribuera och hantera mongo-instanser i ditt eget AWS-konto. Klicka på skapa-knappen på fliken Maskinpool. Ange din Amazon API-nyckel och hemliga nyckel och tryck på Nästa:

3. Välj din AWS-region för MongoDB

Välj den AWS-region du väljer för att distribuera MongoDB:

4. Konfigurera din åtkomstpolicy

Detta är huvudsteget för säkerhetskonfigurationen. Välj alternativet att endast tillåta maskiner i en viss säkerhetsgrupp att komma åt dina MongoDB-servrar. Välj sedan de säkerhetsgrupper som du vill ge åtkomst till. Ange ett namn för din maskinpool och klicka sedan på nästa:

5. Skapa ditt MongoDB-kluster

Navigera tillbaka till din MongoDB-implementeringssida i huvudkonsolen. Klicka på "Skapa" för att skapa ett nytt MongoDB-kluster. I urvalet Maskinpool, välj den maskinpool som du just skapade och skapa klustret.

Detta är bara en av teknikerna för att säkra din MongoDB-distribution på AWS. Om du har några andra förslag, använd kommentarsektionerna för att ge din feedback. För mer detaljerad säkerhetspraxis, se 10gen säkerhetspraxis. Som alltid om du har några frågor mailar du oss på [email protected].


  1. Mongodb, samlad fråga med $lookup

  2. Mongoose indexering i produktionskod

  3. Redis är långsam med att få stora strängar

  4. Mongodb Öka värde inuti kapslad array