Cassandra turvalisus: looge kasutaja & Autentimine JMX-iga

Lang L: none (table-of-contents):

Anonim

Apache Cassandra ja Datastaxi ettevõttes on kahte tüüpi turbe.

  • Sisemine autentimine
  • Volitamine

Selles õpetuses saate teada,

  • Mis on sisemine autentimine ja autoriseerimine
  • Konfigureerige autentimine ja autoriseerimine
  • Sisse logima
  • Loo uus kasutaja
  • Volitamine
  • Tulemüüri konfigureerimine
  • JMX-i autentimise lubamine

Mis on sisemine autentimine ja autoriseerimine

Sisemine autentimine on põhimõtteliselt kasutaja ühenduse valideerimine. Kasutaja autentimine toimub sisselogimise ja parooliga. Kõiki kasutajakontosid hallatakse Cassandras sisemiselt.

Sisemine autoriseerimine käsitleb kasutaja luba. See käsitleb, milliseid toiminguid saab kasutaja teha. Näiteks võime anda kasutajale loa, näiteks millisel kasutajal on ainult andmete lugemise luba, millisel kasutajal andmete kirjutamise luba ja kellel kasutajal andmete kustutamise luba.

Autentimist saab aga kontrollida ka väliselt Kerberose abil (Kerberost kasutatakse mandaatide turvaliseks haldamiseks) ja LDAP-ga (LDAP-d kasutatakse kontode kohta autoriteetse teabe hoidmiseks, näiteks sellele, millele neil on juurdepääs).

Väline autentimine on autentimine, mida Kerberos ja LDAP toetavad. Apache Cassandra ei toeta välist autentimist.

Ainult datastax-ettevõte toetab välist autentimist Kerberose ja LDAP-ga. Sisemist autentimist toetatakse nii Apache Cassandras kui ka Datastaxi ettevõttes.

Konfigureerige autentimine ja autoriseerimine

Cassandras on vaikimisi autentimis- ja autoriseerimisvalikud keelatud. Autentimise ja autoriseerimise lubamiseks peate konfigureerima faili Cassandra.yaml.

Avage fail Cassandra.yaml ja kommenteerimata read, mis käsitlevad sisemist autentimist ja autoriseerimist.

  • Cassandra.yaml-failis on autentija väärtus vaikimisi 'AllowAllAuthenticator'. Muutke selle autentija väärtus väärtuselt „AllowAllAuthenticator” väärtusele „com.datastax.bdp.cassandra.auth.PasswordAuthenticator”.
  • Samamoodi on failis Cassandra.yaml vaikimisi autoriseerija väärtus „AllowAllAuthorizor”. Muutke selle autoriseerija väärtus väärtuselt „AllowAllAuthorizor” väärtusele „com.datastax.bdp.cassandra.auth.CassandraAuthorizor”.

Sisse logima

Nüüd on autentimine lubatud, kui proovite pääseda juurde mis tahes võtmeruumile, tagastab Cassandra tõrke.

Vaikimisi pakub Cassandra superkontot kasutajanimega 'cassandra' ja parooliga 'cassandra'. Cassandra kontole sisse logides saate teha mida iganes soovite.

Vaatame selle allolevat ekraanipilti, kus see ei võimalda teil sisse logida, kui te ei kasuta Cassandra vaikimisi "kasutajanime" ja "parooli".

Nüüd näete teises ekraanipildis pärast Cassandra vaikimisi sisselogimismandaadi kasutamist sisselogimist.

Selle kontoga saate luua ka teise kasutaja. Parooli on soovitatav muuta vaikimisi. Siin on Cassandra sisselogimis kasutaja näide ja vaikeparooli muutmine.

alter user cassandra with password 'newpassword';

Loo uus kasutaja

Uusi kontosid saab luua 'Cassandra' kontoga.

Uue kasutaja, sisselogimise loomiseks määratakse parool koos sellega, kas kasutaja on superkasutaja või mitte. Ainult Super-kasutaja saab luua uusi kasutajaid.

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

Kõigi kasutajate loendi saate järgmise süntaksiga.

list users;

Kasutajad saab loobuda järgmise süntaksiga.

drop user laura;

Volitamine

Autoriseerimine on kasutajatele loa määramine selle kohta, milliseid toiminguid konkreetne kasutaja saab teha.

Siin on üldine süntaks kasutajatele loa määramiseks.

GRANT permission ON resource TO user

Kasutajale saab anda järgmist tüüpi lube.

  1. KÕIK
  2. ALTER
  3. LUBA
  4. LOE
  5. Tilk
  6. MUUTMA
  7. VALI

Siin on näited kasutajale loa määramisest.

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;

Luuakse uus kasutaja 'laura' parooliga 'newhire'.

Siin on näide, kus kasutaja 'laura' üritab pääseda juurde emp_bonus tabelile. Laural on ainult luba juurdepääsuks dev.emp-le ja luba sellele tabelile dev.emp_bonus puudub, seetõttu tagastati viga.

select* form emp_bonus;

Võite saada loendi kõigist kasutajale määratud õigustest. Siin on näide loateabe saamiseks.

list all permissions of laura;

Samuti saate loetleda kõik ressursi õigused. Siin on näide loa saamiseks tabelist.

list all permissions on dev.emp;

Tulemüüri konfigureerimine

Kui tulemüür töötab, tuleb sõlmede, sealhulgas mõne Cassandra pordi, suhtlemiseks avada järgmised pordid. Kui Cassandra porte ei avata, toimivad Cassandra sõlmed pigem iseseisva andmebaasiserverina kui andmebaasiklastriga liitumise eest.

Cassandra kliendipordid

Pordi number

Kirjeldus

9042

Cassandra kliendisadam

9160

Cassandra kliendi sadama kokkuhoid

Cassandra Internode pordid

Pordi number

Kirjeldus

7000

Cassandra internode klastrisuhtlus

7001

Cassandra SSL-internoodi klastriühendus

7199

Cassandra JMX jälgimisport

Avalikud sadamad

Pordi number

Kirjeldus

22

SSH-port

8888

OpsCenteri veebisait. Brauseri http-taotlus.

Cassandra OpsCenteri sadamad

Pordi number

Kirjeldus

61620

OpsCenteri jälgimisport.

61621

Opscenteri agendi port

JMX-i autentimise lubamine

Cassandra vaikeseadetega saab JMX-ile juurde pääseda ainult kohalikust hostist. Kui soovite JMX-ile juurde pääseda eemalt, muutke jaotises Cassandra-env.sh sätet LOCAL_JMX ja lubage autentimine või SSL.

Pärast JMX-i autentimise lubamist veenduge, et OpsCenter ja nodetool oleksid konfigureeritud autentimist kasutama.

Menetlus

JMX-i autentimise lubamiseks toimige järgmiselt.

  1. Lisage või värskendage failis cassandra-env.sh järgmisi ridu.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"

Samuti muutke sätet LOCAL_JMX saidil Cassandra-env.sh

LOCAL_JMX=no
  1. Kopeerige jmxremote.password.template kataloogist / jdk_install_location / lib / management / kausta / etc / cassandra / ja nimetage see ümber tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. Muutke jmxremote.passwordi omanikku kasutajale, kellega Cassandrat käitate, ja muutke luba ainult lugemiseks
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
  1. Muutke jmxremote.password ja lisage JMX-iga ühilduvate utiliitide kasutaja ja parool:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
  1. Lisage Cassandra kasutaja lugemis- ja kirjutamisloaga saidile /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
  1. Taaskäivitage Cassandra
  2. Käivitage nodetool Cassandra kasutaja ja parooliga.
$ nodetool status -u cassandra -pw cassandra

Kokkuvõte:

Selles õpetuses selgitatakse Cassandra turvalisust ja faili Cassandra.yaml konfigureerimist turvalisuse lubamiseks. Lisaks selgitab see ka seda, kuidas saab luua uut kasutajakontot, loa määramist, tulemüüri konfigureerimist ja nii edasi.