MongoDB Ασφάλεια, παρακολούθηση και δημιουργία αντιγράφων ασφαλείας (Mongodump)
Μία από τις βασικές έννοιες σε MongoDB είναι η διαχείριση βάσεων δεδομένων. Σημαντικές πτυχές όπως η ασφάλεια, η δημιουργία αντιγράφων ασφαλείας, η πρόσβαση σε βάσεις δεδομένων είναι όλες σημαντικές έννοιες όταν πρόκειται για τη διαχείριση της βάσης δεδομένων.
MongoDB Επισκόπηση ασφάλειας
MongoDB έχει τη δυνατότητα να ορίζει μηχανισμούς ασφαλείας σε βάσεις δεδομένων. Από προεπιλογή δεν θα ήθελε κανείς να έχει ανοιχτή πρόσβαση σε κάθε βάση δεδομένων MongoDB, εξ ου και η απαίτηση για ύπαρξη κάποιου είδους μηχανισμού ασφαλείας MongoDB είναι σημαντικό.
Ακολουθούν οι βέλτιστες πρακτικές κατά την εφαρμογή ασφάλειας σε βάσεις δεδομένων
- Ενεργοποίηση ελέγχου πρόσβασης – Δημιουργήστε χρήστες έτσι ώστε όλες οι εφαρμογές και οι χρήστες να επιβάλλονται να διαθέτουν κάποιο είδος μηχανισμού ελέγχου ταυτότητας κατά την πρόσβαση σε βάσεις δεδομένων σε MongoDB.
- Διαμόρφωση ελέγχου πρόσβασης βάσει ρόλων – Μερικές φορές μπορεί να υπάρχει μια λογική ομαδοποίηση δικαιωμάτων που μπορεί να απαιτούνται, τα οποία μπορούν να ενσωματωθούν σε ρόλους. Οι χρήστες μπορούν στη συνέχεια να ανατεθούν σε αυτούς τους ρόλους.
- Προσπαθήστε να ρυθμίσετε τις παραμέτρους MongoDB για να χρησιμοποιήσετε κάποιο είδος πρωτοκόλλου κρυπτογράφησης όπως TLS ή SSL. Αυτά τα πρωτόκολλα μπορούν να χρησιμοποιηθούν για την κρυπτογράφηση της κίνησης που ρέει μεταξύ του πελάτη και του περιβάλλοντος DB mongo.
- Διαμόρφωση ελέγχου – Οι διαχειριστές συνήθως πρέπει να γνωρίζουν ποιος κάνει τι, κάτι που βοηθά στην ανάλυση προβλημάτων αργότερα. Ο καλύτερος τρόπος είναι να ενεργοποιήσετε τον έλεγχο MongoDB.
- Εκτελέστε την παρουσία διακομιστή MongDB με ένα ξεχωριστό αναγνωριστικό χρήστη που έχει πρόσβαση στους απαιτούμενους πόρους στο περιβάλλον διακομιστή.
Διαδικασίες δημιουργίας αντιγράφων ασφαλείας Mongodb – mongodump
Όταν εργάζεστε με το MongDB, είναι σημαντικό να διασφαλίζετε πάντα ότι υπάρχει μια διαδικασία δημιουργίας αντιγράφων ασφαλείας σε περίπτωση που τα δεδομένα βρίσκονται μέσα MongoDB αλλοιώνεται για οποιοδήποτε λόγο.
Παρακάτω είναι οι μηχανισμοί δημιουργίας αντιγράφων ασφαλείας που είναι διαθέσιμοι από μέσα MongoDB
- Δημιουργία αντιγράφων ασφαλείας με αντιγραφή υποκείμενων αρχείων δεδομένων – Αυτός είναι ίσως ο πιο εύκολος μηχανισμός, το μόνο που χρειάζεται να γίνει είναι να αντιγράψετε τα αρχεία δεδομένων στα οποία MongoDB βρίσκεται και αντιγράψτε το σε άλλη τοποθεσία που ιδανικά θα έπρεπε να είναι άλλος διακομιστής.
- Δημιουργήστε αντίγραφα ασφαλείας μιας βάσης δεδομένων με mongodump – Το εργαλείο mongodump διαβάζει δεδομένα από α MongoDB βάση δεδομένων και δημιουργεί αρχεία BSON υψηλής πιστότητας. Αυτό που πρέπει να ληφθεί υπόψη είναι ότι εάν το σύνολο δεδομένων είναι μεγάλο σε όγκο, τότε το mongodump μπορεί να απαιτεί πολύ πόρους, οπότε για να μετριαστεί αυτό το πρόβλημα, το βοηθητικό πρόγραμμα θα πρέπει να εκτελείται σε δευτερεύοντα διακομιστή.
- MongoDB Δημιουργία αντιγράφων ασφαλείας του Cloud Manager - MongoDB Το Cloud Manager δημιουργεί συνεχώς αντίγραφα ασφαλείας MongoDB σύνολα αντιγράφων και μοιρασμένα συμπλέγματα διαβάζοντας τα δεδομένα oplog από το MongoDB περιβάλλοντος. MongoDB Το Cloud Manager μπορεί να δημιουργήσει μια χρονική ανάκτηση αποθηκεύοντας δεδομένα oplog, έτσι ώστε να μπορεί να δημιουργήσει μια επαναφορά ανά πάσα στιγμή για ένα συγκεκριμένο σύνολο αντιγράφων ή μοιρασμένο σύμπλεγμα.
Παρακολούθηση Mongodb
Η παρακολούθηση είναι μια από τις πιο κρίσιμες διοικητικές δραστηριότητες MongoDB. Αυτό συμβαίνει επειδή μπορείτε να είστε πιο προληπτικοί παρακολουθώντας το περιβάλλον για πιθανά ζητήματα που θα μπορούσαν να εμφανιστούν.
Παρακάτω είναι μερικά από τα παραδείγματα εφαρμογής της παρακολούθησης
- mongostat θα σας πει πόσες φορές πραγματοποιούνται πραγματικά στον διακομιστή λειτουργίες βάσης δεδομένων, όπως εισαγωγή, ερώτημα, ενημέρωση, διαγραφή κ.λπ. Αυτό θα δώσει μια καλή ιδέα για το πόσο φορτίο χειρίζεται ο διακομιστής και θα υποδείξει εάν χρειάζεστε πρόσθετους πόρους στον διακομιστή ή ίσως επιπλέον διακομιστές για τη διανομή του φορτίου.
- mongotop παρακολουθεί και αναφέρει την τρέχουσα δραστηριότητα ανάγνωσης και εγγραφής του α MongoDB για παράδειγμα, και αναφέρει αυτά τα στατιστικά στοιχεία ανά συλλογή.
- MongoDB παρέχει μια διεπαφή ιστού που εκθέτει πληροφορίες διάγνωσης και παρακολούθησης σε μια απλή ιστοσελίδα. Μπορείτε να περιηγηθείτε στην παρακάτω διεύθυνση url στον τοπικό σας διακομιστή για να ανοίξετε το βοηθητικό πρόγραμμα διαχείρισης ιστού
http://localhost:28017
- Η εντολή serverStatus ή db.serverStatus() από το κέλυφος, επιστρέφει μια επισκόπηση της κατάστασης της βάσης δεδομένων, με λεπτομέρειες σχετικά με τη χρήση του δίσκου, τη χρήση της μνήμης, τις συνδέσεις που έχουν δημιουργηθεί στο MongoDB περιβάλλον κ.λπ.
MongoDB Θέματα ευρετηρίασης και απόδοσης
- Τα ευρετήρια είναι πολύ σημαντικά σε κάθε βάση δεδομένων και μπορούν να χρησιμοποιηθούν για τη βελτίωση της αποτελεσματικότητας των ερωτημάτων αναζήτησης MongoDB. Εάν εκτελείτε συνεχώς αναζητήσεις στο έγγραφό σας, τότε είναι προτιμότερο να προσθέσετε ευρετήρια στα πεδία του εγγράφου που χρησιμοποιούνται στα κριτήρια αναζήτησης.
- Προσπαθήστε να περιορίζετε πάντα τον αριθμό των αποτελεσμάτων ερωτημάτων που επιστρέφονται. Ας υποθέσουμε ότι έχετε 2 ονόματα πεδίων σε ένα έγγραφο, αλλά θέλετε απλώς να δείτε 2 πεδία από το έγγραφο. Στη συνέχεια, βεβαιωθείτε ότι το ερώτημά σας στοχεύει μόνο στην εμφάνιση των 2 πεδίων που χρειάζεστε και όχι όλα τα πεδία.
- Εάν θέλετε να προβάλετε συγκεκριμένες τιμές πεδίων, χρησιμοποιήστε μόνο αυτά τα πεδία στο ερώτημα. Μην κάνετε ερωτήσεις για όλα τα πεδία της συλλογής εάν δεν είναι απαραίτητα.
Διαμορφώστε MongoDB με τον έλεγχο ταυτότητας Kerberos
Ενώ η εξουσιοδότηση εξετάζει τη διασφάλιση της πρόσβασης του πελάτη στο σύστημα, ο έλεγχος ταυτότητας ελέγχει τον τύπο πρόσβασης που έχει ο πελάτης MongoDB, αφού έχουν εξουσιοδοτηθεί στο σύστημα.
Υπάρχουν διάφοροι μηχανισμοί ελέγχου ταυτότητας, παρακάτω είναι μόνο μερικοί από αυτούς.
MongoDB Έλεγχος ταυτότητας με χρήση πιστοποιητικών x.509
Χρησιμοποιήστε τα πιστοποιητικά x.509 για τον έλεγχο ταυτότητας του πελάτη – Ένα πιστοποιητικό είναι βασικά μια αξιόπιστη υπογραφή μεταξύ του πελάτη και του MongoDB Server.
Έτσι, αντί να εισαγάγετε ένα όνομα χρήστη και έναν κωδικό πρόσβασης για σύνδεση στον διακομιστή, ένα πιστοποιητικό μεταβιβάζεται μεταξύ του πελάτη και του MongoDB Υπηρέτης. Ο πελάτης θα έχει βασικά ένα πιστοποιητικό πελάτη το οποίο θα περάσει στον διακομιστή για έλεγχο ταυτότητας στον διακομιστή. Κάθε πιστοποιητικό πελάτη αντιστοιχεί σε ένα MongoDB χρήστης. Έτσι κάθε χρήστης από MongoDB πρέπει να έχουν το δικό τους πιστοποιητικό για να επικυρωθούν στο MongoDB διακομιστή.
Για να διασφαλιστεί ότι αυτό λειτουργεί, πρέπει να ακολουθηθούν τα ακόλουθα βήματα.
- Ένα έγκυρο πιστοποιητικό πρέπει να αγοραστεί από μια έγκυρη αρχή τρίτου μέρους και να το εγκαταστήσετε στο MongoDB Server.
- Το πιστοποιητικό πελάτη πρέπει να έχει τις ακόλουθες ιδιότητες (Μια μεμονωμένη αρχή έκδοσης πιστοποιητικών (CA) πρέπει να εκδίδει τα πιστοποιητικά τόσο για τον πελάτη όσο και για τον διακομιστή . Τα πιστοποιητικά πελάτη πρέπει να περιέχουν τα ακόλουθα πεδία – keyUsage και extendedKeyUsage.
- Κάθε χρήστης που συνδέεται στον διακομιστή MongDB πρέπει να έχει ξεχωριστό πιστοποιητικό.
Πώς να ρυθμίσετε τις παραμέτρους MongoDB με τον έλεγχο ταυτότητας Kerberos
Παρακάτω είναι τα βήματα για τη διαμόρφωση MongoDB με ενεργοποιημένο τον έλεγχο ταυτότητας Kerberos Windows:
Βήμα 1) Διαμορφώστε MongoDB με ενεργοποιημένο τον έλεγχο ταυτότητας Kerberos Windows
Το Kerberos είναι ένας μηχανισμός ελέγχου ταυτότητας που χρησιμοποιείται σε μεγάλα περιβάλλοντα πελάτη-διακομιστή.
Είναι ένας πολύ ασφαλής μηχανισμός όπου ο κωδικός πρόσβασης επιτρέπεται μόνο εάν είναι κρυπτογραφημένος. Καλά, MongoDB έχει τη δυνατότητα ελέγχου ταυτότητας έναντι ενός υπάρχοντος συστήματος που βασίζεται στο Kerberos.
Βήμα 2) Διαδικασία διακομιστή mongod.exe
Στη συνέχεια, ξεκινήστε τη διαδικασία διακομιστή mongod.exe.
Βήμα 3) διεργασία και σύνδεση πελάτη mongo.exe
Στη συνέχεια, ξεκινήστε τη διαδικασία πελάτη mongo.exe και συνδεθείτε στο MongoDB διακομιστή.
Βήμα 4) Προσθήκη χρήστη MongoDB
Το οποίο είναι βασικά ένα κύριο όνομα Kerberos για την εξωτερική βάση δεδομένων $. Η εξωτερική βάση δεδομένων $ είναι μια ειδική βάση δεδομένων που λέει MongoDB για τον έλεγχο ταυτότητας αυτού του χρήστη έναντι ενός συστήματος Kerberos αντί του δικού του εσωτερικού συστήματος.
use $external db.createUser( { user: "user1@example.NET", roles:[ { role: "read" , db:"Marketing"} } ] }
Βήμα 5) Ξεκινήστε να χρησιμοποιείτε την εντολή
Ξεκινήστε το mongod.exe με υποστήριξη Kerberos χρησιμοποιώντας την ακόλουθη εντολή
mongod.exe –auth –setParameter authenticationMechanisms=GSSAPI
Στη συνέχεια, μπορείτε πλέον να συνδεθείτε με τον χρήστη Kerberos και τον έλεγχο ταυτότητας Kerberos στη βάση δεδομένων.
Περίληψη
- Είναι πολύ σημαντικό να εφαρμοστεί η ασφάλεια στις βάσεις δεδομένων για να διασφαλιστεί ότι τα δεδομένα στη βάση δεδομένων διατηρούνται ασφαλή.
- Οι χρήστες μπορούν να δημιουργηθούν στη βάση δεδομένων με την εντολή createUser. Μπορούν να εκχωρηθούν συγκεκριμένοι ρόλοι στους χρήστες για να τους δώσουν συγκεκριμένα δικαιώματα στην ίδια τη βάση δεδομένων.
- Οι διαχειριστές μπορούν να προστεθούν για όλες τις βάσεις δεδομένων που αφορούν μόνο συγκεκριμένες βάσεις δεδομένων. Αυτό επιτυγχάνεται δίνοντας τον ρόλο είτε του userAdmin είτε του userAdminAnyDatabase.
- Να δημιουργείτε πάντα αντίγραφα ασφαλείας MongoDB περιβάλλον έτσι ώστε σε περίπτωση οποιασδήποτε καταστροφής, τα δεδομένα να είναι εύκολα ανακτήσιμα.
- Να παρακολουθείτε πάντα το δικό σας MongoDB περιβάλλον για να είστε πιο προνοητικοί και να βλέπετε προβλήματα πριν προκύψουν.
- Υπάρχουν διάφοροι μηχανισμοί ελέγχου ταυτότητας για την παροχή καλύτερης ασφάλειας στις βάσεις δεδομένων. Ένα παράδειγμα είναι η χρήση πιστοποιητικών για τον έλεγχο ταυτότητας των χρηστών αντί για τη χρήση ονομάτων χρήστη και κωδικών πρόσβασης.