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.

Konfigurirajte autentifikaciju i autorizaciju

  • 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”.

Prijavljivanje

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.

Prijavljivanje

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;

Stvorite novog korisnika

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.

  1. SVE
  2. IZMIJENI
  3. OVLAŠTITI
  4. STVORITI
  5. KAP
  6. IZMJENITI
  7. 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.

Autorizacija

select* form emp_bonus;

Možete dobiti popis svih dopuštenja koja su dodijeljena korisniku. Evo primjera dobivanja informacija o dopuštenju.

Autorizacija

list all permissions of laura;

Također možete navesti sva dopuštenja na resursu. Evo primjera dobivanja dopuštenja od tablice.

Autorizacija

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.

  1. 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
  1. 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
  1. 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
  1. Uredite jmxremote.password i dodajte korisnika i lozinku za JMX-kompatibilne uslužne programe:
monitorRole QED 
controlRole R&D 
cassandra cassandrapassword
  1. 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
  1. Restart Cassandra
  2. 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.