Există două tipuri de securitate în Apache Cassandra și Datastax enterprise.
- Autentificare internă
- Autorizare
În acest tutorial, veți învăța,
- Ce este autentificarea și autorizarea internă
- Configurați autentificarea și autorizarea
- Autentificare
- Creați un utilizator nou
- Autorizare
- Configurarea paravanului de protecție
- Activarea autentificării JMX
Ce este autentificarea și autorizarea internă
Autentificarea internă este în principiu validarea conexiunii utilizatorului. Utilizatorul este autentificat cu autentificare și parolă. Toate conturile de utilizator sunt gestionate intern în Cassandra.
Autorizarea internă se referă la permisiunea utilizatorului. Se ocupă cu acțiunile pe care le poate efectua utilizatorul. De exemplu, putem acorda permisiunea utilizatorului, cum ar fi ce utilizator are numai permisiunea de citire a datelor, ce utilizator are permisiunea de scriere a datelor și ce utilizator are permisiunea de ștergere a datelor.
Cu toate acestea, autentificarea poate fi controlată și extern cu Kerberos (Kerberos este utilizat pentru a gestiona acreditările în siguranță) și LDAP (LDAP este utilizat pentru a deține informații autorizate despre conturi, cum ar fi la ce li se permite accesul).
Autentificarea externă este autentificarea care este acceptată cu Kerberos și LDAP. Apache Cassandra nu acceptă autentificarea externă.
Numai întreprinderea datastax acceptă autentificarea externă cu Kerberos și LDAP. În timp ce autentificarea internă este acceptată atât în Apache Cassandra, cât și în întreprinderea Datastax.
Configurați autentificarea și autorizarea
În Cassandra, opțiunile implicite de autentificare și autorizare sunt dezactivate. Trebuie să configurați fișierul Cassandra.yaml pentru a permite autentificarea și autorizarea.
Deschideți fișierul Cassandra.yaml și liniile de comentarii care se ocupă cu autentificarea și autorizarea internă.
- În fișierul Cassandra.yaml, în mod implicit, valoarea autentificatorului este „AllowAllAuthenticator”. Schimbați această valoare de autentificare din „AllowAllAuthenticator” în „com.datastax.bdp.cassandra.auth.PasswordAuthenticator”.
- În mod similar, în fișierul Cassandra.yaml, în mod implicit, valoarea autorizatorului va fi „AllowAllAuthorizor”. Schimbați această valoare a autorizatorului din „AllowAllAuthorizor” în „com.datastax.bdp.cassandra.auth.CassandraAuthorizor”.
Autentificare
Acum autentificarea este activată, dacă încercați să accesați orice spațiu de taste, Cassandra va returna o eroare.
În mod implicit, Cassandra oferă super-contului cu numele de utilizator „cassandra” și parola „cassandra”. Conectându-vă la contul „Cassandra”, puteți face orice doriți.
Să vedem captura de ecran de mai jos pentru aceasta, unde nu vă va permite să vă conectați dacă nu utilizați „numele de utilizator” și „parola” implicite Cassandra.
Acum, în a doua captură de ecran, puteți vedea după ce utilizați datele de conectare implicite Cassandra, vă puteți autentifica.
De asemenea, puteți crea un alt utilizator cu acest cont. Este recomandat să schimbați parola din valoarea implicită. Iată exemplul de conectare utilizator Cassandra și schimbarea parolei implicite.
alter user cassandra with password 'newpassword';
Creați un utilizator nou
Conturile noi pot fi create cu contul „Cassandra”.
Pentru crearea unui nou utilizator, autentificare, parola este specificată împreună cu dacă utilizatorul este super utilizator sau nu. Numai Super utilizator poate crea utilizatori noi.
create user robin with password 'manager' superuser;create user robin with password 'newhire';
Puteți obține o listă a tuturor utilizatorilor după următoarea sintaxă.
list users;
Utilizatorii pot fi renunțați la următoarea sintaxă.
drop user laura;
Autorizare
Autorizarea este permisiunea de atribuire a utilizatorilor cu privire la ce acțiune poate efectua un anumit utilizator.
Iată sintaxa generică pentru atribuirea permisiunii utilizatorilor.
GRANT permission ON resource TO user
Există următoarele tipuri de permisiuni care pot fi acordate utilizatorului.
- TOATE
- MODIFICA
- AUTORIZAȚI
- CREA
- CĂDERE BRUSCA
- MODIFICA
- SELECTAȚI
Iată exemple de atribuire a permisiunii utilizatorului.
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;
Un nou utilizator „Laura” este creat cu parola „Newhire”.
Iată exemplul în care utilizatorul „Laura” încearcă să acceseze tabelul emp_bonus. Laura are doar permisiunea de a accesa dev.emp și nu are permisiunea pentru acest tabel dev.emp_bonus de aceea a fost returnată o eroare.
select* form emp_bonus;
Puteți obține o listă cu toate permisiunile care sunt atribuite utilizatorului. Iată exemplul de obținere a informațiilor privind permisiunea.
list all permissions of laura;
De asemenea, puteți lista toate permisiunile pentru resursă. Iată exemplul de a obține permisiunea de la un tabel.
list all permissions on dev.emp;
Configurarea paravanului de protecție
Dacă paravanul de protecție rulează, următoarele porturi trebuie deschise pentru comunicarea între noduri, inclusiv unele porturi Cassandra. Dacă porturile Cassandra nu vor fi deschise, nodurile Cassandra vor acționa ca server de baze de date independente, mai degrabă decât să se alăture clusterului de baze de date.
Porturi Client Cassandra
Numarul portului |
Descriere |
9042 |
Portul Client Cassandra |
9160 |
Cassandra Client Port Thrift |
Porturi internod Cassandra
Numarul portului |
Descriere |
7000 |
Comunicare cluster internod Cassandra |
7001 |
Comunicare cluster internode Cassandra SSL |
7199 |
Portul de monitorizare Cassandra JMX |
Porturi publice
Numarul portului |
Descriere |
22 |
Port SSH |
8888 |
Site-ul web OpsCenter. Cerere http browser. |
Porturile Cassandra OpsCenter
Numarul portului |
Descriere |
61620 |
Port de monitorizare OpsCenter. |
61621 |
Portul agentului Opscenter |
Activarea autentificării JMX
Cu setările implicite ale Cassandra, JMX poate fi accesat numai de la localhost. Dacă doriți să accesați JMX de la distanță, modificați setarea LOCAL_JMX din Cassandra-env.sh și activați autentificarea sau SSL.
După activarea autentificării JMX, asigurați-vă că OpsCenter și nodetool sunt configurate pentru a utiliza autentificarea.
Procedură
Urmează pașii următori pentru activarea autentificării JMX.
- În fișierul cassandra-env.sh, adăugați sau actualizați următoarele rânduri.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
De asemenea, modificați setarea LOCAL_JMX în Cassandra-env.sh
LOCAL_JMX=no
- Copiați jmxremote.password.template din / jdk_install_location / lib / management / în / etc / cassandra / și redenumiți-l în jmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Schimbați proprietatea jmxremote.password către utilizatorul cu care rulați Cassandra și modificați permisiunea de a citi numai
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
- Editați jmxremote.password și adăugați utilizatorul și parola pentru utilitarele compatibile JMX:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
- Adăugați utilizatorul Cassandra cu permisiunea de citire și scriere la /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
- Reporniți Cassandra
- Rulați nodetool cu utilizatorul și parola Cassandra.
$ nodetool status -u cassandra -pw cassandra
Rezumat:
Acest tutorial explică despre securitatea din Cassandra și configurarea fișierului Cassandra.yaml pentru activarea securității. În afară de aceasta, explică și modul în care poate fi creat un cont de utilizator nou, atribuirea permisiunii, configurarea firewallului și așa mai departe.