Cassandra Security: Ustvari uporabnika & Preverjanje pristnosti z JMX

Kazalo:

Anonim

V podjetjih Apache Cassandra in Datastax obstajata dve vrsti zaščite.

  • Notranja overitev
  • Pooblastilo

V tej vadnici boste izvedeli,

  • Kaj je notranja overitev in avtorizacija
  • Konfigurirajte overjanje in avtorizacijo
  • Prijavljanje
  • Ustvari novega uporabnika
  • Pooblastilo
  • Konfiguriranje požarnega zidu
  • Omogočanje overjanja JMX

Kaj je notranja overitev in avtorizacija

Notranja overitev v bistvu potrjuje uporabniško povezavo. Uporabnik je overjen z uporabniškim imenom in geslom. Vsi uporabniški računi se v Cassandri upravljajo interno.

Notranje pooblastilo obravnava uporabnikovo dovoljenje. Ukvarja se s tem, katera dejanja lahko izvede uporabnik. Uporabniku lahko na primer damo dovoljenje, na primer kateri uporabnik ima samo dovoljenje za branje podatkov, kateri uporabnik ima dovoljenje za zapisovanje podatkov in kateri uporabnik ima dovoljenje za brisanje podatkov.

Preverjanje pristnosti pa je mogoče nadzorovati tudi zunaj s pomočjo Kerberos (Kerberos se uporablja za varno upravljanje poverilnic) in LDAP (LDAP se uporablja za hranjenje verodostojnih informacij o računih, na primer do tega, do česa lahko dostopajo).

Zunanja avtentikacija je avtentikacija, ki jo podpirata Kerberos in LDAP. Apache Cassandra ne podpira zunanje overitve.

Samo datastax Enterprise podpira zunanjo overjanje s Kerberosom in LDAP. Medtem ko je notranja overitev podprta tako v Apache Cassandri kot tudi v podjetju Datastax.

Konfigurirajte overjanje in avtorizacijo

V Cassandri so možnosti avtentikacije in avtorizacije privzeto onemogočene. Datoteko Cassandra.yaml morate konfigurirati za omogočanje avtentikacije in avtorizacije.

Odprite datoteko Cassandra.yaml in razkomentirajte vrstice, ki se ukvarjajo z notranjo overitvijo in avtorizacijo.

  • V datoteki Cassandra.yaml je privzeto vrednost overitelja »AllowAllAuthenticator«. Spremenite to vrednost overitelja iz »AllowAllAuthenticator« v »com.datastax.bdp.cassandra.auth.PasswordAuthenticator«.
  • Podobno bo v datoteki Cassandra.yaml privzeto vrednost pooblastila »AllowAllAuthorizor«. Spremenite vrednost tega pooblastila iz »AllowAllAuthorizor« v »com.datastax.bdp.cassandra.auth.CassandraAuthorizor«.

Prijavljanje

Zdaj je preverjanje pristnosti omogočeno. Če poskusite dostopati do katerega koli prostora tipk, bo Cassandra vrnila napako.

Cassandra privzeto ponuja superračun z uporabniškim imenom 'cassandra' in geslom 'cassandra'. Če se prijavite v račun 'Cassandra', lahko počnete, kar želite.

Oglejmo si spodnji posnetek zaslona za to, kjer vam ne bo omogočil prijave, če ne uporabljate privzetih Cassandrine "uporabniškega imena" in "gesla".

Na drugem posnetku zaslona lahko po uporabi privzetih poverilnic za prijavo Cassandre vidite, da se lahko prijavite.

S tem računom lahko ustvarite tudi drugega uporabnika. Priporočljivo je spremeniti privzeto geslo. Tu je primer prijave uporabnika Cassandra in spremembe privzetega gesla.

alter user cassandra with password 'newpassword';

Ustvari novega uporabnika

Nove račune lahko ustvarite z računom 'Cassandra'.

Za ustvarjanje novega uporabnika, prijave, je določeno geslo skupaj s tem, ali je uporabnik super uporabnik ali ne. Samo uporabnik Super lahko ustvari nove uporabnike.

create user robin with password 'manager' superuser;create user robin with password 'newhire';

Seznam vseh uporabnikov lahko dobite po naslednji sintaksi.

list users;

Uporabnike lahko izpusti naslednja skladnja.

drop user laura;

Pooblastilo

Pooblastilo je dodelitev dovoljenja uporabnikom, kaj lahko določen uporabnik izvede.

Tu je splošna sintaksa za dodeljevanje dovoljenj uporabnikom.

GRANT permission ON resource TO user

Uporabniku lahko damo naslednje vrste dovoljenj.

  1. VSE
  2. SPREMINJATI
  3. DOVOLJENJE
  4. USTVARI
  5. POPUST
  6. SPREMENI
  7. IZBERI

Tu so primeri dodelitve dovoljenja uporabniku.

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 uporabnica 'laura' je ustvarjena z geslom 'newhire'.

Tu je primer, ko uporabnica 'laura' poskuša dostopati do tabele emp_bonus. Laura ima samo dovoljenje za dostop do dev.emp in nima dovoljenja za to tabelo dev.emp_bonus, zato je bila vrnjena napaka.

select* form emp_bonus;

Dobite lahko seznam vseh dovoljenj, ki so dodeljena uporabniku. Tu je primer pridobivanja informacij o dovoljenju.

list all permissions of laura;

V viru lahko navedete tudi vsa dovoljenja. Tu je primer pridobivanja dovoljenja iz tabele.

list all permissions on dev.emp;

Konfiguriranje požarnega zidu

Če požarni zid deluje, je treba za komunikacijo med vozlišči, vključno z nekaterimi vrati Cassandra, odpreti naslednja vrata. Če vrat Cassandra ne bodo odprta, bodo vozlišča Cassandra delovala kot samostojni strežnik baz podatkov, namesto da bi se pridružili gruči baz podatkov.

Naročniška pristanišča Cassandra

Številka vrat

Opis

9042

Cassandra Client Port

9160

Cassandra Client Port Thrift

Pristanišča Cassandra Internode

Številka vrat

Opis

7000

Komunikacija grozdov Cassandra internode

7001

Cassandra SSL internode cluster komunikacija

7199

Nadzorna vrata Cassandra JMX

Javna pristanišča

Številka vrat

Opis

22.

Vrata SSH

8888

Spletno mesto OpsCenter. Zahteva http brskalnika.

Pristanišča Cassandra OpsCenter

Številka vrat

Opis

61620

Vrata za nadzor OpsCenter.

61621

Vrata agenta Opscenter

Omogočanje overjanja JMX

S privzetimi nastavitvami Cassandre je do JMX mogoče dostopati samo z lokalnega gostitelja. Če želite oddaljeno dostopati do JMX, spremenite nastavitev LOCAL_JMX v Cassandra-env.sh in omogočite preverjanje pristnosti ali SSL.

Po omogočanju overjanja JMX preverite, ali sta OpsCenter in nodetool konfigurirana za uporabo preverjanja pristnosti.

Postopek

Naslednji koraki omogočajo preverjanje pristnosti JMX.

  1. V datoteko cassandra-env.sh dodajte ali posodobite naslednje vrstice.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"

Spremenite tudi nastavitev LOCAL_JMX v Cassandra-env.sh

LOCAL_JMX=no
  1. Kopirajte jmxremote.password.template iz / jdk_install_location / lib / management / v / etc / cassandra / in jo preimenujte v tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. Spremenite lastništvo jmxremote.password uporabniku, s katerim zaženete Cassandro, in spremenite dovoljenje samo za branje
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
  1. Uredite jmxremote.password in dodajte uporabnika in geslo za pripomočke, skladne z JMX:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
  1. Uporabnika Cassandre z dovoljenjem za branje in pisanje dodajte v /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
  1. Znova zaženite Cassandro
  2. Zaženite nodetool z uporabnikom in geslom Cassandra.
$ nodetool status -u cassandra -pw cassandra

Povzetek:

Ta vadnica pojasnjuje varnost v Cassandri in konfiguriranje datoteke Cassandra.yaml za omogočanje varnosti. Poleg tega pojasnjuje tudi, kako je mogoče ustvariti nov uporabniški račun, dodelitev dovoljenja, konfiguriranje požarnega zidu itd.