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.
- VSE
- SPREMINJATI
- DOVOLJENJE
- USTVARI
- POPUST
- SPREMENI
- 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.
- 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
- 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
- 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
- Uredite jmxremote.password in dodajte uporabnika in geslo za pripomočke, skladne z JMX:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
- 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
- Znova zaženite Cassandro
- 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.