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ă.
- 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ă”.
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ă.
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;
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.
- Toate colectiile
- MODIFICA
- AUTORIZAȚI
- CREATE
- CĂDERE BRUSCA
- MODIFICA
- 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.
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.
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.
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.
- Î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 tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- 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
- Editați jmxremote.password și adăugați utilizatorul și parola pentru utilitarele compatibile cu JMX:
monitorRole QED controlRole R&D cassandra cassandrapassword
- 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
- Repornire Cassandra
- 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.