Cassandra JMX autentifikacija i autorizacija: Stvorite korisnika
⚡ Pametni sažetak
Cassandra Sigurnost počiva na internoj autentifikaciji, dopuštenjima uloga, pravilima vatrozida i kontroli pristupa JMX-u. Ova stranica pokazuje kako omogućiti svaki sloj, stvoriti korisnike, dodijeliti dopuštenja i osigurati udaljeni pristup nodetool-u.

Postoje dvije vrste sigurnosti u Apache Cassandra i DataStax Enterprise.
- Interna provjera autentičnosti
- Autorizacija
Što je interna autentifikacija i autorizacija
Interna autentifikacija je u osnovi provjera valjanosti korisničke veze. Korisnik se autentificira prijavom i lozinkom. Svi korisnički računi se upravljaju u Cassandra interno.
Interna autorizacija se bavi korisničkim dopuštenjima. Odnosi se na radnje koje korisnik može izvršiti. Na primjer, možemo dati dopuštenja kao što je to koji korisnik ima samo dopuštenje za čitanje podataka, koji korisnik ima dopuštenje za pisanje podataka i koji korisnik ima dopuštenje za brisanje podataka.
Međutim, autentifikacija se može kontrolirati i izvana pomoću Kerberosa (Kerberos se koristi za sigurno upravljanje vjerodajnicama) i LDAP-a (LDAP se koristi za čuvanje autoritativnih informacija o računima, poput onoga čemu smiju pristupiti).
Vanjska provjera autentičnosti je provjera autentičnosti koju podržavaju Kerberos i LDAP. Apache Cassandra ne podržava vanjsku provjeru autentičnosti.
Samo DataStax Enterprise podržava vanjsku autentifikaciju s Kerberosom i LDAP-om, dok je interna autentifikacija podržana i u Apache Cassandra kao i DataStax Enterprise.
Konfigurirajte autentifikaciju i autorizaciju
In Cassandra, prema zadanim postavkama opcije autentifikacije i autorizacije su onemogućene. Morate konfigurirati datoteku cassandra.yaml za omogućavanje autentifikacije i autorizacije.
Otvorite cassandra.yaml i odkomentirajte retke koji se bave internom autentifikacijom i autorizacijom, kao što je prikazano dolje.
- U datoteci cassandra.yaml, prema zadanim postavkama, vrijednost autentifikatora je 'AllowAllAuthenticator'. Promijenite ovu vrijednost autentifikatora iz 'AllowAllAuthenticator' u 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator'.
- Slično tome, u datoteci cassandra.yaml, prema zadanim postavkama, vrijednost autorizatora bit će 'AllowAllAuthorizer'. Promijenite ovu vrijednost autorizatora iz 'AllowAllAuthorizer' u 'com.datastax.bdp.cassandra.auth'.CassandraAutorizator'.
Ta dva naziva klasa su vrijednosti DataStax Enterprise. Na otvorenom kodu Apache Cassandra iste postavke uzimaju PasswordAuthenticator i CassandraAuthorizer, a vjerodajnice se zatim nalaze u system_auth prostor ključeva, čiji faktor replikacije treba podići iznad jedan.
Prijavljivanje
Sada je autentifikacija omogućena, ako pokušate pristupiti bilo kojem prostoru ključeva, Cassandra će vratiti grešku.
Po defaultu, Cassandra dodjeljuje super računu korisničko ime 'cassandra' i lozinku 'cassandra'. Prijavom na račun 'cassandra' možete raditi što god želite.
Pogledajmo donju snimku zaslona za ovo, gdje vam neće dopustiti prijavu ako ne koristite zadanu Cassandra “korisničko ime” i “lozinka”.
Sada, na drugoj snimci zaslona, možete vidjeti nakon korištenja Cassandra zadana vjerodajnica za prijavu, možete se prijaviti.
Također možete stvoriti drugog korisnika s ovim računom. Preporučuje se promjena lozinke s zadane. Evo primjera prijave kao Cassandra korisnika i promjenu zadane lozinke.
alter user cassandra with password 'newpassword';
Stvorite novog korisnika
Novi računi mogu se kreirati s računom 'cassandra'.
Za stvaranje novog korisnika navode se prijava i lozinka, kao i je li korisnik superkorisnik ili ne. Samo superkorisnik može stvarati nove korisnike.
create user robin with password 'manager' superuser; create user robin with password 'newhire';
Popis svih korisnika možete dobiti sljedećom sintaksom.
list users;
Izlaz navodi svaki račun zajedno s njegovom zastavom superkorisnika.
Korisnici se mogu ispustiti sljedećom sintaksom.
drop user laura;
Autorizacija
Autorizacija je dodjeljivanje dopuštenja korisnicima, odlučujući koje radnje određeni korisnik može izvršiti.
Ovdje je generička sintaksa za dodjelu dopuštenja korisnicima.
GRANT permission ON resource TO user
Postoje sljedeće vrste dopuštenja koja se mogu dodijeliti korisniku.
- SVE
- IZMIJENI
- OVLASTITI
- STVORITI
- KAP
- IZMJENITI
- SELECT
Ovdje su primjeri dodjele dopuštenja korisniku.
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;
Novi korisnik 'laura' je kreiran sa lozinkom 'newhire'.
Evo primjera gdje korisnica 'laura' pokušava pristupiti tablici emp_bonus. Laura ima samo dopuštenje za pristup tablici dev.emp i nema dopuštenje za tablicu dev.emp_bonus, zbog čega je vraćena greška.
select* form emp_bonus;
Možete dobiti popis svih dopuštenja koja su dodijeljena korisniku. Evo primjera dobivanja informacija o dopuštenjima.
list all permissions of laura;
Također možete navesti sve dozvole za resurs. Evo primjera dobivanja dozvole iz tablice.
list all permissions on dev.emp;
Konfiguriranje vatrozida
Ako vatrozid radi, sljedeći priključci moraju biti otvoreni za komunikaciju između čvorova, uključujući neke Cassandra luke. Ako Cassandra luke se neće otvoriti, Cassandra čvorovi će djelovati kao samostalni poslužitelji baza podataka umjesto da se pridružuju klasteru baza podataka.
Cassandra Portovi za klijente
| Broj priključka | Description |
|---|---|
| 9042 | Cassandra Port za klijenta |
| 9160 | Cassandra Štedljivost porta klijenta |
Cassandra Internodijski priključci
| Broj priključka | Description |
|---|---|
| 7000 | Cassandra internode cluster komunikacija |
| 7001 | Cassandra SSL internode cluster komunikacija |
| 7199 | Cassandra JMX port za praćenje |
Javne luke
| Broj priključka | Description |
|---|---|
| 22 | SSH priključak |
| 8888 | OpsCenter web stranica. http zahtjev preglednika. |
Cassandra Priključci OpsCenter
| Broj priključka | Description |
|---|---|
| 61620 | Priključak za nadzor OpsCenter. |
| 61621 | Opscenter port agenta |
Trenutni upravljački programi koriste samo 9042; port 9160 služi naslijeđenom Thrift sučelju i može ostati zatvoren na novim klasterima.
Omogućavanje JMX provjere autentičnosti
Sa zadanim postavkama Cassandra, JMX-u se može pristupiti samo s lokalnog hosta. Ako želite pristupiti JMX-u daljinski, promijenite postavku LOCAL_JMX u cassandra-env.sh i omogućite autentifikaciju ili SSL.
Nakon što omogućite JMX autentifikaciju, provjerite OpsCenter i nodetool su konfigurirani za korištenje provjere autentičnosti.
Postupak
Postoje sljedeći koraci za omogućavanje JMX autentifikacije.
- U datoteci cassandra-env.sh dodajte ili ažurirajte sljedeće retke.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
Također, promijenite postavku LOCAL_JMX u cassandra-env.sh.
LOCAL_JMX=no
- Kopirajte jmxremote.password.template iz /jdk_install_location/lib/management/ u /etc/cassandra/ i preimenujte ga u jmxremote.password.
cp /jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password - Promijenite vlasništvo nad jmxremote.password na korisnika kojeg pokrećete Cassandra s promjenom dopuštenja na samo čitanje.
chown cassandra:cassandra /etc/cassandra/jmxremote.password chmod 400 /etc/cassandra/jmxremote.password
- Uredite jmxremote.password i dodajte korisnika i lozinku za JMX-kompatibilne uslužne programe:
monitorRole QED controlRole R&D cassandra cassandrapassword
- Dodaj Cassandra korisnik s dopuštenjem za čitanje i pisanje na /jdk_install_location/lib/management/jmxremote.access
monitorRole readonly cassandra readwrite controlRole readwrite \ create javax.management.monitor.,javax.management.timer. \ unregister
- Restart Cassandra.
- Pokrenite nodetool s Cassandra korisnika i lozinke.
$ nodetool status -u cassandra -pw cassandra







