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.
- 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".
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.
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;
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.
- ALLER
- ALTER
- AUTORISIEREN
- CREATE
- DROP
- ÄNDERN
- 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.
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.
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.
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.
- 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
- 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
- Ä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
- 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
- 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
- Wiederaufnahme Cassandra
- 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.