Cassandra Security: Stvori korisnika & Autentifikacija pomoću JMX-a

Sadržaj:

Anonim

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.

  1. SVI
  2. ALTER
  3. OVLAŠTITI
  4. STVORITI
  5. PAD
  6. IZMJENITI
  7. 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.

  1. 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
  1. 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
  1. 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
  1. Uredite jmxremote.password i dodajte korisnika i lozinku za JMX kompatibilne uslužne programe:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
  1. 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
  1. Ponovno pokrenite Cassandru
  2. 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.