Cassandra JMX autentifikacija i autorizacija: Stvorite korisnika
Postoje dvije vrste sigurnosti u Apache Cassandra i Datastax poduzeće.
- Interna provjera autentičnosti
- Autorizacija
Što je interna autentifikacija i autorizacija
Interna provjera autentičnosti u osnovi je provjera valjanosti korisničke veze. Korisnik se autentificira s prijavom i lozinkom. Upravlja se svim korisničkim računima Cassandra interno.
Interna autorizacija bavi se dopuštenjem korisnika. Bavi se radnjama koje korisnik može izvesti. Na primjer, možemo dati dopuštenje korisnika kao što je koji korisnik ima dopuštenje samo za čitanje podataka, koji korisnik ima dopuštenje za pisanje podataka i koji korisnik ima dopuštenje za brisanje podataka.
Međutim, Autentifikacijom se također može upravljati izvana Kerberos (Kerberos se koristi za sigurno upravljanje vjerodajnicama) i LDAP (LDAP se koristi za čuvanje vjerodostojnih informacija o računima, kao što je ono čemu im je dopušten pristup).
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 provjeru autentičnosti s Kerberosom i LDAP-om. Dok je interna provjera autentičnosti podržana i u Apache Cassandra kao i poduzeće Datastax.
Konfigurirajte autentifikaciju i autorizaciju
In Cassandra, opcije provjere autentičnosti i autorizacije su prema zadanim postavkama onemogućene. Morate konfigurirati Cassandra.yaml datoteka za omogućavanje provjere autentičnosti i autorizacije.
Otvoren Cassandra.yaml datoteku i retke za uklanjanje komentara koji se bave internom provjerom autentičnosti i autorizacijom.
- In Cassandra.yaml datoteka, prema zadanim postavkama vrijednost autentifikatora je 'AllowAllAuthenticator'. Promijenite ovu vrijednost autentifikatora iz 'AllowAllAuthenticator' u 'com.datastax.bdp.cassandra.auth.PasswordAuthenticator'.
- Slično je u Cassandra.yaml datoteku, prema zadanim postavkama vrijednost autorizatora bit će 'AllowAllAuthorizor'. Promijenite ovu vrijednost autorizatora iz 'AllowAllAuthorizor' u 'com.datastax.bdp.cassandra.auth.CassandraAutorizator'.
Prijavljivanje
Sada je autentifikacija omogućena, ako pokušate pristupiti bilo kojem prostoru ključeva, Cassandra će vratiti grešku.
Po defaultu, Cassandra daje super račun s korisničkim imenom 'cassandra' i lozinkom 'cassandra'. Prijavom na 'Cassandra' račun, 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ča se promijeniti zadanu lozinku. Evo primjera prijave Cassandra korisnika i promijeniti zadanu lozinku.
alter user cassandra with password 'newpassword';
Stvorite novog korisnika
Novi računi mogu se kreirati s 'Cassandra' račun.
Za kreiranje novog korisnika, prijava, lozinka je navedena zajedno s tim da li je korisnik super korisnik ili ne. Samo Super korisnik 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;
Korisnici se mogu ispustiti sljedećom sintaksom.
drop user laura;
Autorizacija
Autorizacija je dodjeljivanje dopuštenja korisnicima za radnju koju 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
- OVLAŠTITI
- 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'.
Ovdje je primjer gdje korisnik 'laura' pokušava pristupiti tablici emp_bonus. Laura ima samo dopuštenje za pristup dev.emp i nema dopuštenje za ovu tablicu dev.emp_bonus i zato je vraćena pogreška.
select* form emp_bonus;
Možete dobiti popis svih dopuštenja koja su dodijeljena korisniku. Evo primjera dobivanja informacija o dopuštenju.
list all permissions of laura;
Također možete navesti sva dopuštenja na resursu. Evo primjera dobivanja dopuštenja od 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žitelj baze podataka, a ne pridružiti se klasteru baze 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 |
Omogućavanje JMX provjere autentičnosti
Sa zadanim postavkama Cassandra, JMX-u se može pristupiti samo s lokalnog hosta. Ako želite daljinski pristupiti JMX-u, promijenite postavku LOCAL_JMX 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 Cassandra-env.sh
LOCAL_JMX=no
- Kopirajte jmxremote.password.template iz /jdk_install_location/lib/management/ u /etc/cassandra/ i preimenujte ga tojmxremote.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 i promijeni dopuštenje samo za č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
Rezime
Ovaj vodič objašnjava sigurnost u Cassandra i konfiguriranje Cassandra.yaml datoteka za omogućavanje sigurnosti. Osim toga, također objašnjava kako se može kreirati novi korisnički račun, dodjeljivanje dopuštenja, konfiguriranje vatrozida itd.