Cassandra JMX Authentication & Authorization: Create User

Existujรญ dva typy zabezpeฤenรญ Apache Cassandra a spoleฤnost Datastax.

  • Internรญ ovฤ›ล™ovรกnรญ
  • Povolenรญ

Co je internรญ ovฤ›ล™ovรกnรญ a autorizace

Internรญ autentizace je v podstatฤ› ovฤ›ล™enรญ uลพivatelskรฉho pล™ipojenรญ. Uลพivatel je autentizovรกn pomocรญ pล™ihlaลกovacรญho jmรฉna a hesla. Vลกechny uลพivatelskรฉ รบฤty jsou spravovรกny v Cassandra vnitล™nฤ›.

Internรญ autorizace se zabรฝvรก oprรกvnฤ›nรญm uลพivatele. Zabรฝvรก se tรญm, jakรฉ akce mลฏลพe uลพivatel provรกdฤ›t. Mลฏลพeme napล™รญklad udฤ›lit oprรกvnฤ›nรญ uลพivatele, napล™รญklad kterรฝ uลพivatel mรก oprรกvnฤ›nรญ pouze ke ฤtenรญ dat, kterรฝ uลพivatel mรก oprรกvnฤ›nรญ k zรกpisu dat a kterรฝ uลพivatel mรก oprรกvnฤ›nรญ k mazรกnรญ dat.

Autentizaci vลกak lze ovlรกdat takรฉ externฤ› pomocรญ Kerberos (Kerberos se pouลพรญvรก k bezpeฤnรฉ sprรกvฤ› pล™ihlaลกovacรญch รบdajลฏ) a LDAP (LDAP se pouลพรญvรก k uchovรกvรกnรญ autoritativnรญch informacรญ o รบฤtech, napล™รญklad k tomu, k ฤemu majรญ povolen pล™รญstup).

Externรญ ovฤ›ล™ovรกnรญ je ovฤ›ล™ovรกnรญ podporovanรฉ protokoly Kerberos a LDAP. Apache Cassandra nepodporuje externรญ ovฤ›ล™ovรกnรญ.

Externรญ autentizaci pomocรญ Kerberos a LDAP podporuje pouze podnik datastax. Zatรญmco internรญ autentizace je podporovรกna jak v Apache Cassandra stejnฤ› jako Datastax enterprise.

Nakonfigurujte ovฤ›ล™ovรกnรญ a autorizaci

In Cassandra, ve vรฝchozรญm nastavenรญ jsou moลพnosti ovฤ›ล™ovรกnรญ a autorizace zakรกzรกny. Musรญte nakonfigurovat Cassandra.yaml pro povolenรญ autentizace a autorizace.

Otevล™enรก Cassandra.yaml a ล™รกdky pro odkomentovรกnรญ, kterรฉ se zabรฝvajรญ internรญ autentizacรญ a autorizacรญ.

Nakonfigurujte ovฤ›ล™ovรกnรญ a autorizaci

  • In Cassandra.yaml, ve vรฝchozรญm nastavenรญ je hodnota ovฤ›ล™ovรกnรญ 'AllowAllAuthenticator'. Zmฤ›ลˆte tuto hodnotu autentizรกtora z โ€žAllowAllAuthenticatorโ€œ na โ€žcom.datastax.bdp.cassandra.auth.PasswordAuthenticatorโ€œ.
  • Podobnฤ› v roce XNUMX Cassandra.yaml, ve vรฝchozรญm nastavenรญ bude hodnota autorizรกtoru 'AllowAllAuthorizor'. Zmฤ›ลˆte tuto hodnotu autorizace z โ€žAllowAllAuthorizorโ€œ na โ€žcom.datastax.bdp.cassandra.auth.CassandraAutorizรกtor'.

pล™ihlรกลกenรญ

Nynรญ je autentizace povolena, pokud se pokusรญte zรญskat pล™รญstup k libovolnรฉmu prostoru klรญฤลฏ, Cassandra vrรกtรญ chybu.

Ve vรฝchozรญm nastavenรญ Cassandra poskytuje superรบฤtu uลพivatelskรฉ jmรฉno 'cassandra' a heslo 'cassandra'. Pล™ihlรกลกenรญm do 'Cassandra' รบฤet, mลฏลพete si dฤ›lat, co chcete.

Podรญvejme se na to na nรญลพe uvedenรฝ snรญmek obrazovky, kde vรกm neumoลพnรญ pล™ihlรกsit se, pokud nepouลพรญvรกte vรฝchozรญ nastavenรญ Cassandra "uลพivatelskรฉ jmรฉno a heslo".

pล™ihlรกลกenรญ

Nynรญ, na druhรฉm snรญmku obrazovky, mลฏลพete vidฤ›t po pouลพitรญ Cassandra vรฝchozรญ pล™ihlaลกovacรญ รบdaje, mลฏลพete se pล™ihlรกsit.

S tรญmto รบฤtem mลฏลพete takรฉ vytvoล™it dalลกรญho uลพivatele. Doporuฤuje se zmฤ›nit heslo z vรฝchozรญho nastavenรญ. Zde je pล™รญklad pล™ihlรกลกenรญ Cassandra uลพivatele a zmฤ›ลˆte vรฝchozรญ heslo.

pล™ihlรกลกenรญ

alter user cassandra with password 'newpassword';

Vytvoล™it novรฉho uลพivatele

Novรฉ รบฤty lze vytvoล™it pomocรญ 'Cassandra' รบฤet.

Pro vytvoล™enรญ novรฉho uลพivatele, login, je zadรกno heslo spolu s tรญm, zda je uลพivatel superuลพivatelem nebo ne. Novรฉ uลพivatele mลฏลพe vytvรกล™et pouze Super uลพivatel.

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

Seznam vลกech uลพivatelลฏ mลฏลพete zรญskat pomocรญ nรกsledujรญcรญ syntaxe.

list users;

Vytvoล™it novรฉho uลพivatele

Uลพivatelรฉ mohou bรฝt vyล™azeni pomocรญ nรกsledujรญcรญ syntaxe.

drop user laura;

Povolenรญ

Autorizace je pล™iล™azenรญ oprรกvnฤ›nรญ uลพivatelลฏm k tomu, jakou akci mลฏลพe konkrรฉtnรญ uลพivatel provรฉst.

Zde je obecnรก syntaxe pro pล™idฤ›lovรกnรญ oprรกvnฤ›nรญ uลพivatelลฏm.

GRANT permission ON resource TO user

Uลพivateli lze udฤ›lit nรกsledujรญcรญ typy oprรกvnฤ›nรญ.

  1. Vล ECHNO
  2. ALTER
  3. AUTORIZOVAT
  4. CREATE
  5. DROP
  6. MODIFIKOVAT
  7. SELECT

Zde jsou pล™รญklady pล™iล™azenรญ oprรกvnฤ›nรญ uลพivateli.

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;

Vytvoล™รญ se novรฝ uลพivatel 'laura' s heslem 'newhire'.

Zde je pล™รญklad, kdy se uลพivatel 'laura' pokouลกรญ o pล™รญstup k tabulce emp_bonus. Laura mรก pouze oprรกvnฤ›nรญ k pล™รญstupu k dev.emp a ลพรกdnรฉ oprรกvnฤ›nรญ k tรฉto tabulce dev.emp_bonus, proto byla vrรกcena chyba.

Povolenรญ

select* form emp_bonus;

Mลฏลพete zรญskat seznam vลกech oprรกvnฤ›nรญ, kterรก jsou uลพivateli pล™iล™azena. Zde je pล™รญklad zรญskรกnรญ informacรญ o oprรกvnฤ›nรญ.

Povolenรญ

list all permissions of laura;

Mลฏลพete takรฉ uvรฉst vลกechna oprรกvnฤ›nรญ ke zdroji. Zde je pล™รญklad zรญskรกnรญ povolenรญ z tabulky.

Povolenรญ

list all permissions on dev.emp;

Konfigurace brรกny firewall

Pokud je firewall spuลกtฤ›n, musรญ bรฝt pro komunikaci mezi uzly vฤetnฤ› nฤ›kterรฝch otevล™eny nรกsledujรญcรญ porty Cassandra porty. Li Cassandra porty nebudou otevล™eny, Cassandra uzly budou fungovat jako samostatnรฝ databรกzovรฝ server mรญsto toho, aby se pล™ipojovaly k databรกzovรฉmu klastru.

Cassandra Klientskรฉ porty

ฤŒรญslo portu Description
9042 Cassandra Klientskรฝ port
9160 Cassandra Klient Port Thrift

Cassandra Internodovรฉ porty

ฤŒรญslo portu Description
7000 Cassandra internode cluster komunikace
7001 Cassandra SSL internode cluster komunikace
7199 Cassandra Monitorovacรญ port JMX

Veล™ejnรฉ pล™รญstavy

ฤŒรญslo portu Description
22 Port SSH
8888 Web OpsCenter. http poลพadavek prohlรญลพeฤe.

Cassandra Porty OpsCenter

ฤŒรญslo portu Description
61620 Monitorovacรญ port OpsCenter.
61621 Port agenta operaฤnรญho centra

Povolenรญ ovฤ›ล™ovรกnรญ JMX

S vรฝchozรญm nastavenรญm Cassandra, JMX je pล™รญstupnรฝ pouze z localhost. Pokud chcete k JMX pล™istupovat vzdรกlenฤ›, zmฤ›ลˆte nastavenรญ LOCAL_JMX v Cassandra-env.sh a povolit ovฤ›ล™ovรกnรญ nebo SSL.

Po povolenรญ ovฤ›ล™ovรกnรญ JMX se ujistฤ›te OpsCenter a nodetool jsou nakonfigurovรกny pro pouลพitรญ ovฤ›ล™ovรกnรญ.

Postup

Pro povolenรญ ovฤ›ล™ovรกnรญ JMX existujรญ nรกsledujรญcรญ kroky.

  1. V souboru cassandra-env.sh pล™idejte nebo aktualizujte nรกsledujรญcรญ ล™รกdky.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"

Zmฤ›ลˆte takรฉ nastavenรญ LOCAL_JMX v Cassandra-env.sh

LOCAL_JMX=no
  1. Zkopรญrujte ลกablonu jmxremote.password.template z /jdk_install_location/lib/management/ do /etc/cassandra/ a pล™ejmenujte ji na tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. Zmฤ›ลˆte vlastnictvรญ jmxremote.password na uลพivatele, kterรฉho spouลกtรญte Cassandra s a zmฤ›nit oprรกvnฤ›nรญ pouze ke ฤtenรญ
chown cassandra:cassandra /etc/cassandra/jmxremote.password 
chmod 400 /etc/cassandra/jmxremote.password
  1. Upravte jmxremote.password a pล™idejte uลพivatele a heslo pro nรกstroje kompatibilnรญ s JMX:
monitorRole QED 
controlRole R&D 
cassandra cassandrapassword
  1. Pล™idat Cassandra uลพivatel s oprรกvnฤ›nรญm ke ฤtenรญ a zรกpisu do /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. Spusลฅte nรกstroj nodetool pomocรญ Cassandra uลพivatele a heslo.
$ nodetool status -u cassandra -pw cassandra

Shrnutรญ

Tento tutoriรกl vysvฤ›tluje bezpeฤnost v Cassandra a konfiguraci Cassandra.yaml pro povolenรญ zabezpeฤenรญ. Kromฤ› toho takรฉ vysvฤ›tluje, jak lze vytvoล™it novรฝ uลพivatelskรฝ รบฤet, pล™idฤ›lovat oprรกvnฤ›nรญ, konfigurovat firewall a tak dรกle.

Shrลˆte tento pล™รญspฤ›vek takto: