Postoje dvije vrste sigurnosti u Apache Cassandri i Datastaxu.
- Interna provjera autentičnosti
- Odobrenje
U ovom ćete tutorijalu naučiti,
- Što je unutarnja autentifikacija i autorizacija
- Konfigurirajte autentifikaciju i autorizaciju
- Prijavljivanje
- Stvori novog korisnika
- Odobrenje
- Konfiguriranje vatrozida
- Omogućavanje JMX provjere autentičnosti
Što je unutarnja autentifikacija i autorizacija
Interna provjera autentičnosti u osnovi potvrđuje vezu korisnika. Korisnik je autentificiran s prijavom i lozinkom. Svim korisničkim računima interno se upravlja u Cassandri.
Interna autorizacija bavi se korisničkim dopuštenjem. Bavi se onim radnjama koje korisnik može izvršiti. Na primjer, možemo dati korisničko dopuštenje, poput toga koji korisnik ima samo dopuštenje za čitanje podataka, koji korisnik ima dopuštenje za upisivanje podataka i koji korisnik ima odobrenje za brisanje podataka.
Međutim, provjerom vjerodostojnosti također se može kontrolirati izvana s Kerberosom (Kerberos se koristi za sigurno upravljanje vjerodajnicama) i LDAP-om (LDAP se koristi za čuvanje mjerodavnih podataka o računima, poput onoga što 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 Cassandri i u Datastaxu.
Konfigurirajte autentifikaciju i autorizaciju
U Cassandri su zadane mogućnosti autentifikacije i autorizacije onemogućene. Morate konfigurirati datoteku Cassandra.yaml za omogućavanje provjere autentičnosti i autorizacije.
Otvorite datoteku Cassandra.yaml i uklonite komentare koji se bave unutarnjom autentifikacijom i autorizacijom.
- 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 autorizacije bit će "AllowAllAuthorizor". Promijenite vrijednost ove ovlasti iz "AllowAllAuthorizor" u "com.datastax.bdp.cassandra.auth.CassandraAuthorizor".
Prijavljivanje
Sada je autentifikacija omogućena, ako pokušate pristupiti bilo kojem prostoru ključeva, Cassandra će vratiti pogrešku.
Prema zadanim postavkama, Cassandra pruža super račun s korisničkim imenom 'cassandra' i lozinkom 'cassandra'. Prijavom na račun 'Cassandra' možete raditi što god želite.
Pogledajmo snimku zaslona u nastavku za ovo, gdje vam neće omogućiti prijavu ako ne koristite zadane Cassandrine "korisničko ime" i "lozinku".
Sada, na drugom snimku zaslona, možete vidjeti da ste nakon upotrebe zadanih vjerodajnica za prijavu Cassandre u mogućnosti da se prijavite.
Ovim računom možete stvoriti i drugog korisnika. Preporučuje se promjena zadane lozinke. Evo primjera prijave korisnika Cassandre i promjene zadane lozinke.
alter user cassandra with password 'newpassword';
Stvori novog korisnika
Novi računi mogu se stvoriti pomoću računa 'Cassandra'.
Za stvaranje novog korisnika, prijave, navedena je lozinka zajedno s tim je li korisnik super korisnik ili ne. Samo Super korisnik može stvoriti nove korisnike.
create user robin with password 'manager' superuser;create user robin with password 'newhire';
Popis svih korisnika možete dobiti prema sljedećoj sintaksi.
list users;
Korisnike može ispustiti sljedeća sintaksa.
drop user laura;
Odobrenje
Ovlaštenje je dodjeljivanje dozvole korisnicima za radnju koju određeni korisnik može izvršiti.
Ovdje je generička sintaksa za dodjeljivanje dopuštenja korisnicima.
GRANT permission ON resource TO user
Postoje sljedeće vrste dozvola koje se mogu dodijeliti korisniku.
- SVI
- ALTER
- OVLAŠTITI
- STVORITI
- PAD
- IZMJENITI
- IZABERI
Evo primjera dodjeljivanja 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;
Nova korisnica 'laura' kreira se s lozinkom 'newhire'.
Evo primjera kada 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, zato je vraćena pogreška.
select* form emp_bonus;
Možete dobiti popis svih dozvola dodijeljenih korisniku. Evo primjera dobivanja podataka o dopuštenju.
list all permissions of laura;
Također možete navesti sva dopuštenja na resursu. Evo primjera dobivanja dozvole iz tablice.
list all permissions on dev.emp;
Konfiguriranje vatrozida
Ako je vatrozid pokrenut, moraju se otvoriti sljedeći portovi za komunikaciju između čvorova, uključujući neke Cassandrine portove. Ako se Cassandrine luke ne otvore, čvorovi Cassandre radit će kao samostalni poslužitelj baze podataka, umjesto da se pridruže klasteru baze podataka.
Klijentske luke Cassandre
Broj priključka |
Opis |
9042 |
Klijentska luka Cassandra |
9160 |
Cassandra Client Port Thrift |
Luke Cassandra Internode
Broj priključka |
Opis |
7000 |
Komunikacija klaster internodija Cassandra |
7001 |
Cassandra SSL internode klaster komunikacija |
7199 |
Cassandra JMX nadzorni priključak |
Javne luke
Broj luke |
Opis |
22 |
SSH priključak |
8888 |
Web stranica OpsCenter. Http zahtjev za preglednik. |
Luke Cassandra OpsCenter
Broj priključka |
Opis |
61620 |
OpsCenter nadzorni priključak. |
61621 |
Opscenter agent port |
Omogućavanje JMX provjere autentičnosti
Uz zadane postavke Cassandre, JMX-u se može pristupiti samo s lokalnog hosta. Ako želite pristupiti JMX-u na daljinu, promijenite postavku LOCAL_JMX u Cassandra-env.sh i omogućite provjeru autentičnosti ili SSL.
Nakon omogućavanja JMX provjere autentičnosti, provjerite jesu li OpsCenter i nodetool konfigurirani za upotrebu provjere autentičnosti.
Postupak
Sljedeći su koraci za omogućavanje JMX provjere autentičnosti.
- U datoteku 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 tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Promijenite vlasništvo jmxremote.password korisniku s kojim pokrećete Cassandru i promijenite dopuštenje samo za čitanje
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
- Uredite jmxremote.password i dodajte korisnika i lozinku za JMX kompatibilne uslužne programe:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
- Dodajte korisnika Cassandre s dopuštenjem za čitanje i pisanje na /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
- Ponovno pokrenite Cassandru
- Pokrenite nodetool s korisnikom Cassandre i lozinkom.
$ nodetool status -u cassandra -pw cassandra
Sažetak:
Ovaj vodič objašnjava sigurnost u Cassandri i konfiguriranje datoteke Cassandra.yaml za omogućavanje sigurnosti. Osim toga, također objašnjava kako se može stvoriti novi korisnički račun, dodjela dozvole, konfiguriranje vatrozida itd.