Cassandra JMX-Authentifizierung und -Autorisierung: Benutzer erstellen

Es gibt zwei Arten von Sicherheit Apache Cassandra und Datastax-Unternehmen.

  • Interne Authentifizierung
  • Genehmigung

Was ist interne Authentifizierung und Autorisierung?

Bei der internen Authentifizierung wird grundsätzlich die Benutzerverbindung validiert. Der Benutzer wird mit Login und Passwort authentifiziert. Alle Benutzerkonten werden in verwaltet Cassandra im Inneren.

Bei der internen Autorisierung geht es um die Erlaubnis des Benutzers. Es geht darum, welche Aktionen der Benutzer ausführen kann. Beispielsweise können wir Benutzerberechtigungen erteilen, z. B. welcher Benutzer nur die Berechtigung zum Lesen von Daten hat, welcher Benutzer die Berechtigung zum Schreiben von Daten hat und welcher Benutzer die Berechtigung zum Löschen von Daten hat.

Die Authentifizierung kann jedoch auch extern gesteuert werden Kerberos (Kerberos wird zum sicheren Verwalten von Anmeldeinformationen verwendet) und LDAP (LDAP wird zum Speichern maßgeblicher Informationen über die Konten verwendet, z. B. darauf, worauf sie zugreifen dürfen).

Bei der externen Authentifizierung handelt es sich um die Authentifizierung, die mit Kerberos und LDAP unterstützt wird. Apache Cassandra unterstützt keine externe Authentifizierung.

Nur datastax Enterprise unterstützt die externe Authentifizierung mit Kerberos und LDAP. Während die interne Authentifizierung sowohl in als auch in unterstützt wird Apache Cassandra sowie Datastax Enterprise.

Konfigurieren Sie Authentifizierung und Autorisierung

In Cassandra, standardmäßig sind Authentifizierungs- und Autorisierungsoptionen deaktiviert. Sie müssen konfigurieren Cassandra.yaml-Datei zum Aktivieren der Authentifizierung und Autorisierung.

Öffnen Cassandra.yaml-Datei und entkommentieren Sie Zeilen, die sich mit der internen Authentifizierung und Autorisierung befassen.

Konfigurieren Sie Authentifizierung und Autorisierung

  • In Cassandra.yaml-Datei, standardmäßig lautet der Authentifizierungswert „AllowAllAuthenticator“. Ändern Sie diesen Authentifizierungswert von „AllowAllAuthenticator“ in „com.datastax.bdp.cassandra.auth.PasswordAuthenticator“.
  • Ähnlich, in Cassandra.yaml-Datei, standardmäßig ist der Autorisierungswert „AllowAllAuthorizor“. Ändern Sie diesen Autorisierungswert von „AllowAllAuthorizor“ in „com.datastax.bdp.cassandra.auth“.CassandraAutorisierer‘.

Protokollierung in

Jetzt ist die Authentifizierung aktiviert. Wenn Sie versuchen, auf einen Schlüsselraum zuzugreifen, Cassandra wird einen Fehler zurückgeben.

Standardmäßig Cassandra stellt den Superaccount mit dem Benutzernamen 'cassandra' und dem Passwort 'cassandra' bereit. Durch die Anmeldung bei 'Cassandra'Konto können Sie tun und lassen, was Sie wollen.

Sehen wir uns dazu den folgenden Screenshot an, in dem Sie sich nicht anmelden können, wenn Sie nicht die Standardeinstellung verwenden Cassandra "Benutzername und Passwort".

Protokollierung in

Im zweiten Screenshot können Sie nun nach der Verwendung sehen Cassandra Mit den Standard-Anmeldedaten können Sie sich anmelden.

Sie können mit diesem Konto auch einen weiteren Benutzer erstellen. Es wird empfohlen, das Standardkennwort zu ändern. Hier ist das Beispiel für die Anmeldung Cassandra Benutzer eingeben und Standardkennwort ändern.

Protokollierung in

alter user cassandra with password 'newpassword';

Neuen Benutzer erstellen

Neue Konten können mit dem ' erstellt werdenCassandra' Konto.

Um einen neuen Benutzer zu erstellen, müssen Sie sich anmelden, das Passwort angeben und angeben, ob der Benutzer ein Superuser ist oder nicht. Nur Superuser können neue Benutzer erstellen.

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

Mit der folgenden Syntax können Sie eine Liste aller Benutzer erhalten.

list users;

Neuen Benutzer erstellen

Benutzer können mit der folgenden Syntax gelöscht werden.

drop user laura;

Genehmigung

Bei der Autorisierung handelt es sich um die Zuweisung der Berechtigung an Benutzer, welche Aktion ein bestimmter Benutzer ausführen kann.

Hier ist die generische Syntax zum Zuweisen von Berechtigungen an Benutzer.

GRANT permission ON resource TO user

Es gibt die folgenden Arten von Berechtigungen, die dem Benutzer gewährt werden können.

  1. ALLER
  2. ALTER
  3. AUTORISIEREN
  4. CREATE
  5. DROP
  6. ÄNDERN
  7. SELECT

Hier finden Sie Beispiele für die Zuweisung von Berechtigungen an den Benutzer.

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;

Ein neuer Benutzer „Laura“ wird mit dem Passwort „newhire“ erstellt.

Hier ist das Beispiel, in dem der Benutzer „laura“ versucht, auf die emp_bonus-Tabelle zuzugreifen. Laura hat nur die Berechtigung, auf dev.emp zuzugreifen, aber keine Berechtigung für die Tabelle dev.emp_bonus. Deshalb wurde ein Fehler zurückgegeben.

Genehmigung

select* form emp_bonus;

Sie können eine Liste aller Berechtigungen abrufen, die dem Benutzer zugewiesen sind. Hier ist das Beispiel für das Abrufen von Berechtigungsinformationen.

Genehmigung

list all permissions of laura;

Sie können auch alle Berechtigungen für die Ressource auflisten. Hier ist das Beispiel für das Einholen der Erlaubnis von einer Tabelle.

Genehmigung

list all permissions on dev.emp;

Firewall konfigurieren

Wenn die Firewall läuft, müssen folgende Ports für die Kommunikation zwischen Knoten geöffnet werden, darunter einige Cassandra Häfen. Wenn Cassandra Ports werden nicht geöffnet, Cassandra Knoten fungieren als eigenständige Datenbankserver, anstatt dem Datenbankcluster beizutreten.

Cassandra Client-Ports

Port-Nummer Beschreibung
9042 Cassandra Client-Port
9160 Cassandra Client-Port-Sparsamkeit

Cassandra Internode-Ports

Port-Nummer Beschreibung
7000 Cassandra Internodenclusterkommunikation
7001 Cassandra SSL-Kommunikation zwischen Knotenclustern
7199 Cassandra JMX-Überwachungsport

Öffentliche Häfen

Port-Nummer Beschreibung
22 SSH-Anschluss
8888 OpsCenter-Website. HTTP-Anfrage des Browsers.

Cassandra OpsCenter-Ports

Port-Nummer Beschreibung
61620 OpsCenter-Überwachungsport.
61621 Opscenter-Agent-Port

Aktivieren der JMX-Authentifizierung

Mit den Standardeinstellungen von Cassandra, Auf JMX kann nur vom lokalen Host aus zugegriffen werden. Wenn Sie remote auf JMX zugreifen möchten, ändern Sie die LOCAL_JMX-Einstellung in Cassandra-env.sh und aktivieren Sie die Authentifizierung oder SSL.

Stellen Sie sicher, dass Sie die JMX-Authentifizierung aktiviert haben OpsCenter und nodetool sind für die Verwendung der Authentifizierung konfiguriert.

Ablauf

Zum Aktivieren der JMX-Authentifizierung sind die folgenden Schritte erforderlich.

  1. Fügen Sie in der Datei cassandra-env.sh die folgenden Zeilen hinzu oder aktualisieren Sie sie.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"

Ändern Sie außerdem die LOCAL_JMX-Einstellung in Cassandra-env.sh

LOCAL_JMX=no
  1. Kopieren Sie die Datei jmxremote.password.template von /jdk_install_location/lib/management/ nach /etc/cassandra/ und benennen Sie sie in jmxremote.password um.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. Ändern Sie den Besitz von jmxremote.password auf den von Ihnen ausgeführten Benutzer Cassandra mit und ändern Sie die Berechtigung, nur zu lesen
chown cassandra:cassandra /etc/cassandra/jmxremote.password 
chmod 400 /etc/cassandra/jmxremote.password
  1. Bearbeiten Sie jmxremote.password und fügen Sie den Benutzer und das Passwort für JMX-kompatible Dienstprogramme hinzu:
monitorRole QED 
controlRole R&D 
cassandra cassandrapassword
  1. Fügen Sie Cassandra Benutzer mit Lese- und Schreibberechtigung für /jdk_install_location/lib/management/jmxremote.access
monitorRole readonly
cassandra readwrite
controlRole readwrite \
create javax.management.monitor.,javax.management.timer. \ 
unregister
  1. Wiederaufnahme Cassandra
  2. Führen Sie nodetool mit dem aus Cassandra Benutzer und Passwort.
$ nodetool status -u cassandra -pw cassandra

Zusammenfassung

In diesem Tutorial wird die Sicherheit erläutert Cassandra und konfigurieren Cassandra.yaml-Datei zum Aktivieren der Sicherheit. Darüber hinaus wird erläutert, wie ein neues Benutzerkonto erstellt, Berechtigungen zugewiesen, die Firewall konfiguriert usw. werden.