Ασφάλεια Cassandra: Δημιουργία χρήστη & Έλεγχος ταυτότητας με JMX

Πίνακας περιεχομένων:

Anonim

Υπάρχουν δύο τύποι ασφάλειας στην επιχείρηση Apache Cassandra και Datastax.

  • Εσωτερικός έλεγχος ταυτότητας
  • Εξουσιοδότηση

Σε αυτό το σεμινάριο, θα μάθετε,

  • Τι είναι ο εσωτερικός έλεγχος ταυτότητας και η εξουσιοδότηση
  • Ρύθμιση παραμέτρων ελέγχου ταυτότητας και εξουσιοδότησης
  • Σύνδεση
  • Δημιουργία νέου χρήστη
  • Εξουσιοδότηση
  • Διαμόρφωση τείχους προστασίας
  • Ενεργοποίηση ελέγχου ταυτότητας JMX

Τι είναι ο εσωτερικός έλεγχος ταυτότητας και η εξουσιοδότηση

Ο εσωτερικός έλεγχος ταυτότητας επικυρώνει βασικά τη σύνδεση χρήστη. Ο χρήστης πιστοποιείται με σύνδεση και κωδικό πρόσβασης. Η διαχείριση όλων των λογαριασμών χρηστών γίνεται στην Κασσάνδρα εσωτερικά.

Η εσωτερική εξουσιοδότηση αφορά την άδεια του χρήστη. Ασχολείται με τις ενέργειες που μπορεί να εκτελέσει ο χρήστης. Για παράδειγμα, μπορούμε να δώσουμε άδεια χρήστη, όπως ποιος χρήστης έχει μόνο άδεια ανάγνωσης δεδομένων, ποιος χρήστης έχει άδεια εγγραφής δεδομένων και ποιος χρήστης έχει άδεια διαγραφής δεδομένων.

Ωστόσο, ο έλεγχος ταυτότητας μπορεί επίσης να ελεγχθεί εξωτερικά με το Kerberos (το Kerberos χρησιμοποιείται για τη διαχείριση των διαπιστευτηρίων με ασφάλεια) και το LDAP (το LDAP χρησιμοποιείται για τη διατήρηση έγκυρων πληροφοριών σχετικά με τους λογαριασμούς, όπως σε τι επιτρέπεται η πρόσβαση τους).

Ο εξωτερικός έλεγχος ταυτότητας είναι ο έλεγχος ταυτότητας που υποστηρίζεται με Kerberos και LDAP. Το Apache Cassandra δεν υποστηρίζει εξωτερικό έλεγχο ταυτότητας.

Μόνο το datastax enterprise υποστηρίζει εξωτερικό έλεγχο ταυτότητας με Kerberos και LDAP. Ενώ ο εσωτερικός έλεγχος ταυτότητας υποστηρίζεται τόσο στην Apache Cassandra όσο και στην εταιρεία Datastax.

Ρύθμιση παραμέτρων ελέγχου ταυτότητας και εξουσιοδότησης

Στην Κασσάνδρα, από προεπιλογή οι επιλογές ελέγχου ταυτότητας και εξουσιοδότησης είναι απενεργοποιημένες. Πρέπει να ρυθμίσετε το αρχείο Cassandra.yaml για να ενεργοποιήσετε τον έλεγχο ταυτότητας και την εξουσιοδότηση.

Ανοίξτε το αρχείο Cassandra.yaml και τις γραμμές αποσπασμάτων που ασχολούνται με τον εσωτερικό έλεγχο ταυτότητας και την εξουσιοδότηση.

  • Στο αρχείο Cassandra.yaml, από προεπιλογή, η τιμή ελέγχου ταυτότητας είναι "AllowAllAuthenticator". Αλλάξτε αυτήν την τιμή ελέγχου ταυτότητας από "AllowAllAuthenticator" σε "com.datastax.bdp.cassandra.auth.PasswordAuthenticator".
  • Ομοίως, στο αρχείο Cassandra.yaml, από προεπιλογή, η τιμή του δημιουργού θα είναι «AllowAllAuthorizor». Αλλάξτε αυτήν την τιμή του συντάκτη από "AllowAllAuthorizor" σε "com.datastax.bdp.cassandra.auth.CassandraAuthorizor".

Σύνδεση

Τώρα ο έλεγχος ταυτότητας είναι ενεργοποιημένος, εάν προσπαθήσετε να αποκτήσετε πρόσβαση σε οποιοδήποτε χώρο πλήκτρων, η Cassandra θα επιστρέψει ένα σφάλμα.

Από προεπιλογή, η Cassandra παρέχει στον σούπερ λογαριασμό το όνομα χρήστη «cassandra» και τον κωδικό πρόσβασης «cassandra». Με τη σύνδεση στο λογαριασμό «Cassandra», μπορείτε να κάνετε ό, τι θέλετε.

Ας δούμε το παρακάτω στιγμιότυπο οθόνης για αυτό, όπου δεν θα σας επιτρέψει να συνδεθείτε εάν δεν χρησιμοποιείτε τα προεπιλεγμένα "όνομα χρήστη" και "κωδικός πρόσβασης" Cassandra

Τώρα, στο δεύτερο στιγμιότυπο οθόνης, μπορείτε να δείτε αφού χρησιμοποιήσετε το προεπιλεγμένο διαπιστευτήριο σύνδεσης Cassandra, μπορείτε να συνδεθείτε.

Μπορείτε επίσης να δημιουργήσετε έναν άλλο χρήστη με αυτόν τον λογαριασμό. Συνιστάται να αλλάξετε τον κωδικό πρόσβασης από την προεπιλογή. Εδώ είναι το παράδειγμα του χρήστη σύνδεσης Cassandra και αλλαγής προεπιλεγμένου κωδικού πρόσβασης.

alter user cassandra with password 'newpassword';

Δημιουργία νέου χρήστη

Μπορούν να δημιουργηθούν νέοι λογαριασμοί με το λογαριασμό «Cassandra».

Για τη δημιουργία ενός νέου χρήστη, σύνδεση, ο κωδικός πρόσβασης καθορίζεται μαζί με το αν ο χρήστης είναι σούπερ χρήστης ή όχι. Μόνο ο Super χρήστης μπορεί να δημιουργήσει νέους χρήστες.

create user robin with password 'manager' superuser;create user robin with password 'newhire';

Μπορείτε να λάβετε μια λίστα με όλους τους χρήστες με την ακόλουθη σύνταξη.

list users;

Οι χρήστες μπορούν να απορριφθούν με την ακόλουθη σύνταξη.

drop user laura;

Εξουσιοδότηση

Εξουσιοδότηση είναι η άδεια εκχώρησης στους χρήστες για την ενέργεια που μπορεί να εκτελέσει ένας συγκεκριμένος χρήστης.

Εδώ είναι η γενική σύνταξη για την εκχώρηση άδειας στους χρήστες.

GRANT permission ON resource TO user

Υπάρχουν οι ακόλουθοι τύποι δικαιωμάτων που μπορούν να εκχωρηθούν στον χρήστη.

  1. ΟΛΑ
  2. ΑΛΛΑΖΩ
  3. ΕΓΚΡΙΣΗ
  4. ΔΗΜΙΟΥΡΓΩ
  5. ΠΤΩΣΗ
  6. ΤΡΟΠΟΠΟΙΩ
  7. ΕΠΙΛΕΓΩ

Ακολουθούν παραδείγματα εκχώρησης άδειας στον χρήστη.

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

Αριθμός θύρας

Περιγραφή

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.

  1. Στο αρχείο 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
  1. Αντιγράψτε το jmxremote.password.template από / jdk_install_location / lib / management / to / etc / cassandra / και μετονομάστε το σε tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. Αλλάξτε την κυριότητα του jmxremote.password στον χρήστη με τον οποίο χρησιμοποιείτε το Cassandra και αλλάξτε την άδεια μόνο για ανάγνωση
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
  1. Επεξεργαστείτε το jmxremote.password και προσθέστε τον χρήστη και τον κωδικό πρόσβασης για βοηθητικά προγράμματα συμβατά με το JMX:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
  1. Προσθέστε το χρήστη της Κασσάνδρας με άδεια ανάγνωσης και εγγραφής στο /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
  1. Επανεκκινήστε την Κασσάνδρα
  2. Εκτελέστε nodetool με τον χρήστη και τον κωδικό πρόσβασης της Cassandra
$ nodetool status -u cassandra -pw cassandra

Περίληψη:

Αυτό το σεμινάριο εξηγεί σχετικά με την ασφάλεια στην Κασσάνδρα και τη διαμόρφωση του αρχείου Cassandra.yaml για ενεργοποίηση της ασφάλειας. Εκτός αυτού εξηγεί επίσης πώς μπορεί να δημιουργηθεί νέος λογαριασμός χρήστη, εκχώρηση άδειας, διαμόρφωση του τείχους προστασίας και ούτω καθεξής.