Cassandra Autentificare și autorizare JMX: Creați utilizator

Există două tipuri de securitate în Apache Cassandra și întreprinderea Datastax.

  • Autentificare internă
  • Autorizare

Ce este autentificarea și autorizarea internă

Autentificarea internă este practic validarea conexiunii utilizatorului. Utilizatorul este autentificat cu autentificare și parolă. Toate conturile de utilizator sunt gestionate în Cassandra intern.

Autorizarea internă se ocupă cu permisiunea utilizatorului. Se ocupă de ce acțiuni poate fi efectuată de utilizator. De exemplu, putem acorda permisiunea utilizatorului, cum ar fi care utilizator are numai permisiunea de citire a datelor, care utilizator are permisiunea de scriere a datelor și care utilizator are permisiunea de ștergere a datelor.

Cu toate acestea, autentificarea poate fi controlată și extern cu Kerberos (Kerberos este folosit pentru a gestiona acreditările în siguranță) și LDAP (LDAP este folosit pentru a deține informații autorizate despre conturi, cum ar fi ceea ce au voie să acceseze).

Autentificarea externă este autentificarea care este acceptată cu Kerberos și LDAP. Apache Cassandra nu acceptă autentificare externă.

Numai datastax enterprise acceptă autentificare externă cu Kerberos și LDAP. În timp ce autentificarea internă este acceptată atât în Apache Cassandra precum și întreprinderea Datastax.

Configurați autentificarea și autorizarea

In Cassandra, în mod implicit, opțiunile de autentificare și autorizare sunt dezactivate. Trebuie să configurați CassandraFișier .yaml pentru a activa autentificarea și autorizarea.

Operatii Deschise CassandraFișier .yaml și linii de decomentare care se ocupă de autentificarea și autorizarea internă.

Configurați autentificarea și autorizarea

  • In CassandraFișierul .yaml, în mod implicit, valoarea autentificatorului este „AllowAllAuthenticator”. Schimbați această valoare a autentificatorului din „AllowAllAuthenticator” în „com.datastax.bdp.cassandra.auth.PasswordAuthenticator”.
  • În mod similar, în CassandraFișierul .yaml, în mod implicit, valoarea autorizatorului va fi „AllowAllAuthorizor”. Schimbați această valoare de autorizare din „AllowAllAuthorizor” la „com.datastax.bdp.cassandra.auth.CassandraAutorizatorul'.

Logare

Acum autentificarea este activată, dacă încercați să accesați orice spațiu de taste, Cassandra va returna o eroare.

În mod implicit, Cassandra furnizează super-contului numele de utilizator „cassandra” și parola „cassandra”. Conectându-te la 'Cassandracont, poți face ce vrei.

Să vedem captura de ecran de mai jos pentru aceasta, unde nu vă va permite să vă autentificați dacă nu utilizați implicit Cassandra „nume de utilizator” și „parolă”.

Logare

Acum, în a doua captură de ecran, puteți vedea după utilizare Cassandra autentificare implicită, 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ă un exemplu de conectare Cassandra utilizator și modificați parola implicită.

Logare

alter user cassandra with password 'newpassword';

Creați un utilizator nou

Pot fi create conturi noi cu „Cassandra' cont.

Pentru a crea un utilizator nou, autentificare, parola este specificată împreună cu dacă utilizatorul este super utilizator sau nu. Numai Super User poate crea utilizatori noi.

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

Puteți obține o listă cu toți utilizatorii după următoarea sintaxă.

list users;

Creați un utilizator nou

Utilizatorii pot fi abandonați după următoarea sintaxă.

drop user laura;

Autorizare

Autorizarea este alocarea permisiunii utilizatorilor asupra acțiunii pe care le poate efectua un anumit utilizator.

Iată sintaxa generică pentru alocarea permisiunii utilizatorilor.

GRANT permission ON resource TO user

Există următoarele tipuri de permisiuni care pot fi acordate utilizatorului.

  1. Toate colectiile
  2. MODIFICA
  3. AUTORIZAȚI
  4. CREATE
  5. CĂDERE BRUSCA
  6. MODIFICA
  7. SELECT

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 nicio permisiune pentru acest tabel dev.emp_bonus, de aceea a fost returnată o eroare.

Autorizare

select* form emp_bonus;

Puteți obține o listă cu toate permisiunile care sunt atribuite utilizatorului. Iată un exemplu de obținere a informațiilor privind permisiunea.

Autorizare

list all permissions of laura;

De asemenea, puteți enumera toate permisiunile de pe resursă. Iată un exemplu de obținere a permisiunii de la un tabel.

Autorizare

list all permissions on dev.emp;

Configurarea paravanului de protecție

Dacă firewall-ul rulează, următoarele porturi trebuie să fie deschise pentru comunicarea între noduri, inclusiv unele Cassandra porturi. Dacă Cassandra porturile nu vor fi deschise, Cassandra nodurile vor acționa ca server de bază de date autonom, mai degrabă decât să se alăture clusterului de baze de date.

Cassandra Porturi client

Numarul portului Descriere
9042 Cassandra Port client
9160 Cassandra Client Port Thrift

Cassandra Porturi internod

Numarul portului Descriere
7000 Cassandra Comunicarea clusterului internod
7001 Cassandra Comunicare cluster SSL internod
7199 Cassandra Port de monitorizare JMX

Porturile publice

Numarul portului Descriere
22 Port SSH
8888 Site-ul OpsCenter. Solicitare http de browser.

Cassandra Porturile OpsCenter

Numarul portului Descriere
61620 Port de monitorizare OpsCenter.
61621 Port agent 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 în Cassandra-env.sh și activați autentificarea sau SSL.

După ce activați autentificarea JMX, asigurați-vă OpsCenter și nodetool sunt configurate pentru a utiliza autentificarea.

Procedură

Există următorii pași pentru a activa autentificarea JMX.

  1. Î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
  1. Copiați jmxremote.password.template din /jdk_install_location/lib/management/ în /etc/cassandra/ și redenumiți-l tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. Schimbați dreptul de proprietate asupra jmxremote.password la utilizatorul pe care îl executați Cassandra cu și modificați permisiunea de numai citire
chown cassandra:cassandra /etc/cassandra/jmxremote.password 
chmod 400 /etc/cassandra/jmxremote.password
  1. Editați jmxremote.password și adăugați utilizatorul și parola pentru utilitarele compatibile cu JMX:
monitorRole QED 
controlRole R&D 
cassandra cassandrapassword
  1. Adauga Cassandra utilizator cu permisiunea de citire și scriere la /jdk_install_location/lib/management/jmxremote.access
monitorRole readonly
cassandra readwrite
controlRole readwrite \
create javax.management.monitor.,javax.management.timer. \ 
unregister
  1. Repornire Cassandra
  2. Rulați nodetool cu Cassandra utilizator și parolă.
$ nodetool status -u cassandra -pw cassandra

Rezumat

Acest tutorial explică despre securitatea în Cassandra si configurarea CassandraFișier .yaml pentru activarea securității. Pe lângă aceasta, explică și modul în care poate fi creat un nou cont de utilizator, atribuirea permisiunii, configurarea firewall-ului și așa mai departe.