Cassandra JMX Authentication & Authorization: Δημιουργία χρήστη
Υπάρχουν δύο τύποι ασφάλειας σε Apache Cassandra και την επιχείρηση Datastax.
- Εσωτερικός έλεγχος ταυτότητας
- εξουσιοδότηση
Τι είναι ο εσωτερικός έλεγχος ταυτότητας και η εξουσιοδότηση
Ο εσωτερικός έλεγχος ταυτότητας ουσιαστικά επικυρώνει τη σύνδεση χρήστη. Ο χρήστης ελέγχεται με login και κωδικό πρόσβασης. Η διαχείριση όλων των λογαριασμών χρηστών γίνεται Cassandra εσωτερικώς.
Η εσωτερική εξουσιοδότηση αφορά την άδεια του χρήστη. Ασχολείται με τις ενέργειες που μπορεί να πραγματοποιήσει ο χρήστης. Για παράδειγμα, μπορούμε να δώσουμε άδεια χρήστη, όπως ποιος χρήστης έχει μόνο άδεια ανάγνωσης δεδομένων, ποιος χρήστης έχει άδεια εγγραφής δεδομένων και ποιος χρήστης έχει άδεια διαγραφής δεδομένων.
Ωστόσο, ο έλεγχος ταυτότητας μπορεί επίσης να ελεγχθεί εξωτερικά με Kerberos (Το Kerberos χρησιμοποιείται για την ασφαλή διαχείριση των διαπιστευτηρίων) και το LDAP (το LDAP χρησιμοποιείται για τη διατήρηση έγκυρων πληροφοριών σχετικά με τους λογαριασμούς, όπως αυτά που επιτρέπεται να έχουν πρόσβαση).
Ο εξωτερικός έλεγχος ταυτότητας είναι ο έλεγχος ταυτότητας που υποστηρίζεται με Kerberos και LDAP. Apache Cassandra δεν υποστηρίζει εξωτερικό έλεγχο ταυτότητας.
Μόνο η επιχείρηση datastax υποστηρίζει εξωτερικό έλεγχο ταυτότητας με Kerberos και LDAP. Ενώ ο εσωτερικός έλεγχος ταυτότητας υποστηρίζεται και στα δύο Apache Cassandra καθώς και η επιχείρηση Datastax.
Διαμόρφωση ελέγχου ταυτότητας και εξουσιοδότησης
In Cassandra, από προεπιλογή οι επιλογές ελέγχου ταυτότητας και εξουσιοδότησης είναι απενεργοποιημένες. Πρέπει να ρυθμίσετε CassandraΑρχείο .yaml για ενεργοποίηση ελέγχου ταυτότητας και εξουσιοδότησης.
Ανοικτό Cassandraαρχείο .yaml και γραμμές uncomment που ασχολούνται με τον εσωτερικό έλεγχο ταυτότητας και την εξουσιοδότηση.
- In CassandraΤο αρχείο .yaml, από προεπιλογή, η τιμή ελέγχου ταυτότητας είναι "AllowAllAuthenticator". Αλλάξτε αυτήν την τιμή ελέγχου ταυτότητας από "AllowAllAuthenticator" σε "com.datastax.bdp.cassandra.auth.PasswordAuthenticator".
- Ομοίως, στο CassandraΤο αρχείο .yaml, από προεπιλογή, η τιμή εξουσιοδοτητή θα είναι "AllowAllAuthorizor". Αλλάξτε αυτήν την τιμή εξουσιοδοτητή από "AllowAllAuthorizor" σε "com.datastax.bdp.cassandra.auth.CassandraΕξουσιοδότης».
Σύνδεση στο
Τώρα ο έλεγχος ταυτότητας είναι ενεργοποιημένος, εάν προσπαθήσετε να αποκτήσετε πρόσβαση σε οποιοδήποτε χώρο κλειδιών, Cassandra θα επιστρέψει ένα σφάλμα.
Από προεπιλογή, Cassandra παρέχει στον υπερλογαριασμό το όνομα χρήστη «cassandra» και τον κωδικό πρόσβασης «cassandra». Με σύνδεση στο 'Cassandra'λογαριασμός, μπορείς να κάνεις ό,τι θέλεις.
Ας δούμε το παρακάτω στιγμιότυπο οθόνης για αυτό, όπου δεν θα σας επιτρέψει να συνδεθείτε εάν δεν χρησιμοποιείτε την προεπιλεγμένη Cassandra "όνομα χρήστη και κωδικός".
Τώρα, στο δεύτερο στιγμιότυπο οθόνης, μπορείτε να δείτε μετά τη χρήση Cassandra προεπιλεγμένο διαπιστευτήριο σύνδεσης, μπορείτε να συνδεθείτε.
Μπορείτε επίσης να δημιουργήσετε έναν άλλο χρήστη με αυτόν τον λογαριασμό. Συνιστάται να αλλάξετε τον κωδικό πρόσβασης από τον προεπιλεγμένο. Εδώ είναι το παράδειγμα σύνδεσης Cassandra χρήστη και αλλαγή προεπιλεγμένου κωδικού πρόσβασης.
alter user cassandra with password 'newpassword';
Δημιουργία νέου χρήστη
Μπορούν να δημιουργηθούν νέοι λογαριασμοί με το 'Cassandra' λογαριασμός.
Για τη δημιουργία νέου χρήστη, συνδεθείτε, καθορίζεται ο κωδικός πρόσβασης μαζί με το αν ο χρήστης είναι σούπερ χρήστης ή όχι. Μόνο ο Super user μπορεί να δημιουργήσει νέους χρήστες.
create user robin with password 'manager' superuser; create user robin with password 'newhire';
Μπορείτε να λάβετε μια λίστα με όλους τους χρήστες με την ακόλουθη σύνταξη.
list users;
Οι χρήστες μπορούν να διαγραφούν με την ακόλουθη σύνταξη.
drop user laura;
εξουσιοδότηση
Εξουσιοδότηση είναι η εκχώρηση άδειας στους χρήστες για το ποια ενέργεια μπορεί να εκτελέσει ένας συγκεκριμένος χρήστης.
Εδώ είναι η γενική σύνταξη για την εκχώρηση άδειας στους χρήστες.
GRANT permission ON resource TO user
Υπάρχουν οι ακόλουθοι τύποι αδειών που μπορούν να παραχωρηθούν στον χρήστη.
- ΌΛΟΙ
- ALTER
- ΕΞΟΥΣΙΟΔΟΤΗΣΗ
- ΔΗΜΙΟΥΡΓΩ
- DROP
- ΤΡΟΠΟΠΟΙΩ
- SELECT
Ακολουθούν παραδείγματα εκχώρησης άδειας στον χρήστη.
Create user laura with password 'newhire'; grant all on dev.emp to laura; revoke all on dev.emp to laura; grant select on dev.emp to laura;
Δημιουργείται ένας νέος χρήστης "laura" με κωδικό πρόσβασης "newhire".
Εδώ είναι το παράδειγμα όπου ο χρήστης 'laura' προσπαθεί να αποκτήσει πρόσβαση στον πίνακα emp_bonus. Η Laura έχει μόνο άδεια πρόσβασης στο dev.emp και καμία άδεια σε αυτόν τον πίνακα dev.emp_bonus, γι' αυτό επιστράφηκε ένα σφάλμα.
select* form emp_bonus;
Μπορείτε να λάβετε μια λίστα με όλα τα δικαιώματα που έχουν εκχωρηθεί στον χρήστη. Ακολουθεί το παράδειγμα λήψης πληροφοριών άδειας.
list all permissions of laura;
Μπορείτε επίσης να παραθέσετε όλα τα δικαιώματα στον πόρο. Εδώ είναι το παράδειγμα λήψης άδειας από έναν πίνακα.
list all permissions on dev.emp;
Διαμόρφωση τείχους προστασίας
Εάν το τείχος προστασίας εκτελείται, οι ακόλουθες θύρες πρέπει να ανοίξουν για επικοινωνία μεταξύ κόμβων, συμπεριλαμβανομένων ορισμένων Cassandra λιμάνια. Αν Cassandra οι θύρες δεν θα ανοίξουν, Cassandra Οι κόμβοι θα λειτουργούν ως αυτόνομος διακομιστής βάσης δεδομένων αντί να εντάσσονται στο σύμπλεγμα βάσεων δεδομένων.
Cassandra Client Ports
Αριθμός θύρας | Τεχνικές Περιγραφές |
---|---|
9042 | Cassandra Λιμάνι πελατών |
9160 | Cassandra Client Port Thrift |
Cassandra Internode λιμάνια
Αριθμός θύρας | Τεχνικές Περιγραφές |
---|---|
7000 | Cassandra επικοινωνία συμπλέγματος μεσογονάτου |
7001 | Cassandra Επικοινωνία συμπλέγματος μεσογονιδίων SSL |
7199 | Cassandra Θύρα παρακολούθησης JMX |
Δημόσια λιμάνια
Αριθμός θύρας | Τεχνικές Περιγραφές |
---|---|
22 | Θύρα SSH |
8888 | Ιστοσελίδα OpsCenter. Αίτημα προγράμματος περιήγησης http. |
Cassandra Θύρες OpsCenter
Αριθμός θύρας | Τεχνικές Περιγραφές |
---|---|
61620 | Θύρα παρακολούθησης OpsCenter. |
61621 | Θύρα πράκτορα Opscenter |
Ενεργοποίηση ελέγχου ταυτότητας JMX
Με τις προεπιλεγμένες ρυθμίσεις του Cassandra, το JMX είναι προσβάσιμο μόνο από τον localhost. Εάν θέλετε να αποκτήσετε απομακρυσμένη πρόσβαση στο JMX, αλλάξτε τη ρύθμιση LOCAL_JMX Cassandra-env.sh και ενεργοποιήστε τον έλεγχο ταυτότητας ή το SSL.
Αφού ενεργοποιήσετε τον έλεγχο ταυτότητας JMX, βεβαιωθείτε OpsCenter και το nodetool έχουν ρυθμιστεί να χρησιμοποιούν έλεγχο ταυτότητας.
Διαδικασία
Ακολουθούν τα παρακάτω βήματα για την ενεργοποίηση του ελέγχου ταυτότητας JMX.
- Στο αρχείο cassandra-env.sh, προσθέστε ή ενημερώστε τις ακόλουθες γραμμές.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
Επίσης, αλλάξτε τη ρύθμιση LOCAL_JMX Cassandra-env.sh
LOCAL_JMX=no
- Αντιγράψτε το jmxremote.password.template από /jdk_install_location/lib/management/ στο /etc/cassandra/ και μετονομάστε το σε tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Αλλάξτε την ιδιοκτησία του jmxremote.password στον χρήστη που εκτελείτε Cassandra με και αλλαγή άδειας για ανάγνωση μόνο
chown cassandra:cassandra /etc/cassandra/jmxremote.password chmod 400 /etc/cassandra/jmxremote.password
- Επεξεργαστείτε το jmxremote.password και προσθέστε τον χρήστη και τον κωδικό πρόσβασης για βοηθητικά προγράμματα συμβατά με JMX:
monitorRole QED controlRole R&D cassandra cassandrapassword
- Προσθέστε το Cassandra χρήστης με άδεια ανάγνωσης και εγγραφής στο /jdk_install_location/lib/management/jmxremote.access
monitorRole readonly cassandra readwrite controlRole readwrite \ create javax.management.monitor.,javax.management.timer. \ unregister
- επανεκκίνηση Cassandra
- Εκτελέστε το nodetool με το Cassandra χρήστη και κωδικό πρόσβασης.
$ nodetool status -u cassandra -pw cassandra
Περίληψη
Αυτό το σεμινάριο εξηγεί σχετικά με την ασφάλεια στο Cassandra και διαμόρφωση Cassandraαρχείο .yaml για την ενεργοποίηση της ασφάλειας. Εκτός από αυτό, εξηγεί επίσης πώς μπορεί να δημιουργηθεί νέος λογαριασμός χρήστη, εκχώρηση άδειας, διαμόρφωση του τείχους προστασίας και ούτω καθεξής.