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รญ.
- 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".
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.
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;
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รญ.
- Vล ECHNO
- ALTER
- AUTORIZOVAT
- CREATE
- DROP
- MODIFIKOVAT
- 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.
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รญ.
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.
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.
- 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
- 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
- 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
- Upravte jmxremote.password a pลidejte uลพivatele a heslo pro nรกstroje kompatibilnรญ s JMX:
monitorRole QED controlRole R&D cassandra cassandrapassword
- 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
- Restart Cassandra
- 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.







