In het eerste deel van de blog 'Een overzicht van MongoDB Atlas' hebben we gekeken naar hoe aan de slag te gaan met MongoDB Atlas, de eerste installatie en migratie van een bestaand MongoDB-cluster naar MongoDB Atlas. In dit deel gaan we verder met het verkennen van verschillende beheerelementen die nodig zijn voor elk MongoDB-productiesysteem, zoals beveiliging en bedrijfscontinuïteit.
Databasebeveiliging in MongoDB Atlas
Beveiliging staat altijd voorop. Hoewel het belangrijk is voor alle databases, heeft het voor MongoDB een speciale betekenis. Medio 2017 stond het internet vol met nieuws over ransomware-aanvallen die specifiek gericht waren op kwetsbaarheden in MongoDB-systemen. Hackers kapen MongoDB-instanties en vroegen om losgeld in ruil voor het teruggeven van de opgeslagen gegevens. Er waren waarschuwingen. Voorafgaand aan deze ransomware-aanvallen schreven bloggers en experts over hoeveel productie-instanties kwetsbaar bleken te zijn. Het zorgde nog lange tijd voor levendige discussies over MongoDB-beveiliging.
We zijn nu in 2019 en MongoDB wordt nog populairder. De nieuwe hoofdversie (4.0) is onlangs uitgebracht en we hebben meer stabiliteit gezien in MongoDB Atlas. Maar wat is er gedaan om de beveiliging van de NoSQL-databases in de cloud te vergroten.
De ransomware en de constante pers moeten een impact hebben gehad op MongoDB, aangezien we duidelijk kunnen zien dat beveiliging nu centraal staat in het MongoDB-ecosysteem. MongoDB Atlas is geen uitzondering, want het wordt nu geleverd met ingebouwde beveiligingscontroles voor de verwerking van productiegegevens en veel bedrijfsbeveiligingsfuncties uit de doos. De standaardbenadering (die de kwetsbaarheid veroorzaakte) van de oudere versie is verdwenen en de database is nu standaard beveiligd (netwerk, ruwe autorisaties etc). Het wordt ook geleverd met functies die u zou verwachten in een moderne productieomgeving (auditing, tijdelijke gebruikerstoegang, enz.).
Maar daar stopt het niet. Aangezien Atlas een online oplossing is, kunt u nu integraties met derde partijen gebruiken, zoals LDAP-authenticatie of moderne MongoDB-internetdiensten zoals MongoDB-kaarten. MongoDB Atlas is gebouwd bovenop Amazon WebServices (AWS), Microsoft Azure en Google Cloud Platform (GCP), die ook zelf hoge beveiligingsmaatregelen bieden. Deze geweldige combinatie zorgt ervoor dat de beveiligingsnormen van MongoDB Atlas zijn wat we zouden verwachten. Laten we eens kijken naar enkele van deze belangrijke functies.
MongoDB Atlas en netwerkbeveiliging
MongoDB Atlas bouwt clusters bovenop uw bestaande cloudinfrastructuur. Wanneer men voor AWS kiest, worden de klantgegevens opgeslagen in MongoDB Atlas-systemen. Deze systemen zijn single-tenant, dedicated, AWS EC2 virtuele servers die uitsluitend voor een Atlas-klant zijn gemaakt. Amazon AWS-datacenters voldoen aan verschillende fysieke beveiligings- en informatiebeveiligingsnormen, maar aangezien we een open netwerk nodig hebben, kan dit aanleiding geven tot bezorgdheid.
Toegewezen MongoDB Atlas-clusters worden geïmplementeerd in een Virtual Private Cloud (VPC) met speciale firewalls. Toegang moet worden verleend via een IP-whitelist of via VPC-peering. Standaard is alle toegang uitgeschakeld.
MongoDB vereist de volgende netwerkpoorten voor Atlas...
- 27016 voor scherven
- 27015 voor de BI-connector
- 27017 voor server
- Als LDAP is ingeschakeld, vereist MongoDB dat LDAP-netwerk 636 aan de kant van de klant open staat voor 0.0.0.0 (volledig internet) verkeer.
De netwerkpoorten kunnen niet worden gewijzigd en TLS kan niet worden uitgeschakeld. Toegang kan ook worden geïsoleerd door IP-whitelist.
Bovendien kunt u ervoor kiezen om toegang te krijgen tot MongoDB Atlas via Bastion-hosts. Bastion-hosts zijn geconfigureerd om SSH-sleutels (geen wachtwoorden) te vereisen. Ze vereisen ook multi-factor authenticatie en gebruikers moeten bovendien worden goedgekeurd door het senior management voor backend-toegang.
Op rollen gebaseerd toegangsbeheer op MongoDB Atlas
U kunt geavanceerde, op rollen gebaseerde toegangsregels configureren om te bepalen welke gebruikers (en teams) gegevens in uw databases kunnen openen, manipuleren en/of verwijderen. Standaard zijn er geen gebruikers aangemaakt, dus u wordt gevraagd er een aan te maken.
MongoDB Atlas stelt beheerders in staat om machtigingen voor een gebruiker of applicatie te definiëren, evenals tot welke gegevens toegang kunnen worden verkregen bij het opvragen van MongoDB. MongoDB Atlas biedt de mogelijkheid om gebruikers te voorzien van rollen die specifiek zijn voor een project of database, waardoor het mogelijk wordt om een scheiding van taken te realiseren tussen verschillende entiteiten die toegang hebben tot de gegevens en deze beheren. Het proces is eenvoudig en volledig interactief.
Om een nieuwe gebruiker aan te maken, gaat u naar het tabblad Beveiliging aan de linkerkant en kiest u tussen MongoDB-gebruikers en MongoDB-rollen.
MongoDB-rollen
End-to-end databaseversleuteling in MongoDB Atlas
Alle MongoDB Atlas-gegevens in transit worden versleuteld met Transport Layer Security (TLS). U hebt de flexibiliteit om de minimale TLS-protocolversie te configureren. Versleuteling voor data-in-rest is geautomatiseerd met behulp van versleutelde opslagvolumes.
U kunt ook uw bestaande beveiligingspraktijken en -processen integreren met MongoDB Atlas om extra controle te bieden over hoe u uw omgeving beveiligt.
Voor het MongoDB Atlas Cluster zelf wordt authenticatie standaard automatisch ingeschakeld via SCRAM om direct een veilig systeem te garanderen.
Met Encryption Key Management kunt u uw eigen encryptiesleutels naar uw speciale clusters brengen voor een extra coderingslaag op de databasebestanden, inclusief back-up snapshots.
Auditing in MongoDB Atlas
Granulaire database-audit beantwoordt gedetailleerde vragen over systeemactiviteit voor implementaties met meerdere gebruikers door alle opdrachten in de database te volgen. Auditing in MongoDB is alleen beschikbaar in MongoDB Enterprise. U kunt auditgebeurtenissen naar de console, naar de syslog, naar een JSON-bestand of naar een BSON-bestand schrijven. U configureert de auditoptie met behulp van de -auditDestination-kwalificatie. Als u bijvoorbeeld auditgebeurtenissen als JSON-gebeurtenissen naar syslog-gebruik wilt sturen...
mongod --dbpath data/db --auditDestination syslog
MongoDB onderhoudt een gecentraliseerd logbeheersysteem voor het verzamelen, opslaan en analyseren van loggegevens voor productieomgevingen. Deze informatie kan worden gebruikt voor gezondheidsbewaking, probleemoplossing en voor beveiligingsdoeleinden. Waarschuwingen worden in het systeem geconfigureerd om SRE's op de hoogte te stellen van operationele problemen.
MongoDB Atlas LDAP-integratie
Gebruikersauthenticatie en autorisatie tegen MongoDB Atlas-clusters kunnen worden beheerd via de LDAP-server (Lightweight Directory Access Protocol) van een klant via TLS. Een enkele LDAP-configuratie is van toepassing op alle databaseclusters binnen een Atlas-project. LDAP-servers worden gebruikt om de toegangscontrole te vereenvoudigen en het beheer van machtigingen gedetailleerder te maken.
Voor klanten die hun LDAP-server in een AWS Virtual Private Cloud (VPC) gebruiken, wordt een peering-verbinding aanbevolen tussen die omgeving en de VPC die hun Atlas-databases bevat.
MongoDB bedrijfscontinuïteit en noodherstel
MongoDB Atlas maakt en configureert speciale clusters op infrastructuur die wordt geleverd door AWS, Azure en/of Google GCP. De beschikbaarheid van gegevens is onderhevig aan de processen voor Business Continuity Plans (BCP) en Disaster Recovery (DR) van de serviceprovider van de infrastructuur. MongoDB Atlas-infrastructuurserviceproviders beschikken over een aantal certificeringen en auditrapporten voor deze controles.
Databaseback-ups in MongoDB Atlas
MongoDB Atlas maakt back-ups van gegevens, meestal slechts enkele seconden achter een besturingssysteem. MongoDB Atlas zorgt voor continue back-up van replicasets, consistente, clusterbrede snapshots van Sharded-clusters en herstel op een bepaald tijdstip. Deze volledig beheerde back-upservice maakt gebruik van Amazon S3 in de regio die het dichtst bij de database-implementatie van de klant ligt.
Back-upgegevens worden beveiligd met versleuteling aan de serverzijde. Amazon S3 codeert back-upgegevens op objectniveau terwijl het deze naar schijven in zijn datacenters schrijft en decodeert deze voor u wanneer u ze herstelt. Alle sleutels worden volledig beheerd door AWS.
Atlasclusters die zijn geïmplementeerd in Amazon Web Services en Microsoft Azure kunnen profiteren van snapshots van cloudproviders die gebruikmaken van de native snapshot-mogelijkheden van de onderliggende cloudprovider. Back-ups worden opgeslagen in dezelfde cloudregio als het bijbehorende cluster. Voor clusters met meerdere regio's worden momentopnamen opgeslagen in de voorkeursregio van het cluster.
Atlas biedt de volgende methoden om een back-up van uw gegevens te maken...
Continue databaseback-ups
Continue back-ups zijn beschikbaar in M10+ Clusters en versies lager dan serverversie 4.2. Dit is een oude methode om MongoDB-back-ups uit te voeren. Atlas gebruikt incrementele snapshots om continu een back-up van uw gegevens te maken. Doorlopende snapshots van back-ups zijn meestal slechts een paar seconden achter op het besturingssysteem. Atlas zorgt zelf voor back-up op een bepaald moment van replicasets en consistente, clusterbrede snapshots van shard-clusters, waarvoor het S3 gebruikt.
Full-Copy Snapshots
Atlas gebruikt de native snapshot-mogelijkheden van uw cloudprovider om volledige snapshots en gelokaliseerde snapshot-opslag te ondersteunen.
MongoDB Atlas Data Lake
Als u Atlas Data Lake gebruikt om uw S3-gegevens op te nemen in Atlas-clusters, kunt u snel gegevens opvragen die zijn opgeslagen in uw AWS S3-buckets met behulp van de Mongo Shell, MongoDB Compass en een willekeurig MongoDB-stuurprogramma.
Wanneer u een Data Lake maakt, geeft u Atlas alleen-lezen toegang tot S3-buckets in uw AWS-account en maakt u een gegevensconfiguratiebestand dat gegevens van uw S3-buckets toewijst aan uw MongoDB-databases en -verzamelingen. Atlas ondersteunt het gebruik van elk M10+-cluster, inclusief Global Clusters, om verbinding te maken met Data Lakes in hetzelfde.
Op het moment van schrijven van deze blog worden de volgende formaten ondersteund.
- Avro
- Parket
- JSON
- JSON/Gzipped
- BSON
- CSV (vereist koprij)
- TSV (vereist koprij)
Conclusie
Dat was alles voor nu, ik hoop dat je genoten hebt van mijn tweedelige overzicht van MongoDB Atlas. Onthoud dat ClusterControl ook end-to-end beheer van MongoDB-clusters biedt en een geweldig, goedkoper alternatief is voor MongoDB Atlas, dat ook in de cloud kan worden geïmplementeerd.