Cassandra JMX hitelesítés és hitelesítés: Felhasználó létrehozása
⚡ Okos összefoglaló
Cassandra A biztonság a belső hitelesítésen, a szerepkör-engedélyeken, a tűzfalszabályokon és a JMX hozzáférés-vezérlésen alapul. Ez az oldal bemutatja, hogyan engedélyezhetők az egyes rétegek, hogyan hozhatók létre felhasználók, hogyan adhatnak engedélyeket, és hogyan biztosítható a távoli nodetool-hozzáférés.

Kétféle biztonság létezik Apache Cassandra és a DataStax Enterprise.
- Belső hitelesítés
- Meghatalmazás
Mi az a belső hitelesítés és engedélyezés?
A belső hitelesítés alapvetően a felhasználói kapcsolat érvényesítése. A felhasználó bejelentkezési nevével és jelszavával hitelesíthető. Minden felhasználói fiókot a Cassandra belsőleg.
A belső jogosultságkezelés a felhasználó engedélyeivel foglalkozik. Azt szabályozza, hogy milyen műveleteket hajthat végre a felhasználó. Például adhatunk olyan engedélyeket, hogy melyik felhasználónak csak adatolvasási jogosultsága van, melyik felhasználónak csak adatírási jogosultsága, és melyik felhasználónak csak adattörlési jogosultsága.
A hitelesítés azonban külsőleg is vezérelhető Kerberos (a Kerberos a hitelesítő adatok biztonságos kezelésére szolgál) és LDAP (az LDAP a fiókokkal kapcsolatos mérvadó információk tárolására szolgál, például hogy mire férhetnek hozzá) segítségével.
A külső hitelesítés a Kerberos és az LDAP által támogatott hitelesítés. Apache Cassandra nem támogatja a külső hitelesítést.
Csak a DataStax Enterprise támogatja a Kerberos és LDAP protokollokon keresztüli külső hitelesítést, míg a belső hitelesítés mindkettőben támogatott. Apache Cassandra valamint a DataStax Enterprise-t.
A hitelesítés és engedélyezés konfigurálása
In Cassandra, alapértelmezés szerint a hitelesítési és engedélyezési beállítások le vannak tiltva. A hitelesítés és az engedélyezés engedélyezéséhez konfigurálnia kell a cassandra.yaml fájlt.
Nyisd meg a cassandra.yaml fájlt, és vedd ki a megjegyzésből a belső hitelesítéssel és engedélyezéssel foglalkozó sorokat az alábbiak szerint.
- A cassandra.yaml fájlban a hitelesítő értéke alapértelmezés szerint „AllowAllAuthenticator”. Módosítsa ezt a hitelesítő értéket az „AllowAllAuthenticator” értékről a „com.datastax.bdp.cassandra.auth.PasswordAuthenticator” értékre.
- Hasonlóképpen, a cassandra.yaml fájlban alapértelmezés szerint az engedélyezési érték „AllowAllAuthorizer” lesz. Módosítsa ezt az engedélyezési értéket „AllowAllAuthorizer”-ről „com.datastax.bdp.cassandra.auth”-ra.CassandraEngedélyező”.
Ez a két osztálynév a DataStax Enterprise értékei. Nyílt forráskódú rendszereken Apache Cassandra ugyanazok a beállítások érvényesek PasswordAuthenticator és a CassandraAuthorizer, és a hitelesítő adatok ezután a system_auth kulcsterület, amelynek replikációs tényezőjét egy fölé kell emelni.
Bejelentkezés
A hitelesítés most engedélyezve van, ha megpróbál hozzáférni bármely billentyűtérhez, Cassandra hibát ad vissza.
Alapértelmezésben, Cassandra a „cassandra” felhasználónevet és a „cassandra” jelszót adja a szuperfióknak. A „cassandra” fiókba bejelentkezve azt csinálhatsz, amit csak akarsz.
Lássuk az alábbi képernyőképet, ahol nem engedélyezi a bejelentkezést, ha nem az alapértelmezett Cassandra "Felhasználónév és jelszó".
A második képernyőképen látható, hogyan működik a használata után Cassandra alapértelmezett bejelentkezési hitelesítő adatokkal, akkor bejelentkezhet.
Ezzel a fiókkal létrehozhat egy másik felhasználót is. Javasoljuk, hogy módosítsa az alapértelmezett jelszót. Íme egy példa a bejelentkezésre a következő felhasználóként: Cassandra felhasználó és az alapértelmezett jelszó módosítása.
alter user cassandra with password 'newpassword';
Új felhasználó létrehozása
Új fiókok létrehozhatók a „cassandra” fiókkal.
Új felhasználó létrehozásához meg kell adni a bejelentkezési nevet és a jelszót, valamint azt, hogy a felhasználó szuperfelhasználó-e vagy sem. Csak szuperfelhasználó hozhat létre új felhasználókat.
create user robin with password 'manager' superuser; create user robin with password 'newhire';
Az összes felhasználó listáját a következő szintaxissal kaphatja meg.
list users;
A kimenet felsorolja az összes fiókot a hozzájuk tartozó superuser jelzővel együtt.
A felhasználókat a következő szintaxissal lehet eldobni.
drop user laura;
Meghatalmazás
Az engedélyezés a felhasználókhoz rendelt engedélyek meghatározása, annak meghatározása, hogy egy adott felhasználó milyen műveletet hajthat végre.
Itt van az általános szintaxis az engedélyek felhasználókhoz való hozzárendeléséhez.
GRANT permission ON resource TO user
A következő típusú engedélyek adhatók a felhasználónak.
- MINDEN
- VÁLTOZTAT
- AUTORIZÁCIÓ
- TEREMT
- DROP
- MÓDOSÍT
- SELECT
Íme példák az engedélyek felhasználóhoz való hozzárendelésére.
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;
Létrejön egy új "laura" felhasználó "newhire" jelszóval.
Íme egy példa, ahol a 'laura' felhasználó megpróbál hozzáférni az emp_bonus táblához. Laurának csak a dev.emp táblához van hozzáférési jogosultsága, a dev.emp_bonus táblához pedig nincs, ezért hibaüzenetet kapott a rendszer.
select* form emp_bonus;
Lekérheti a felhasználóhoz rendelt összes engedély listáját. Íme egy példa az engedélyinformációk lekérésére.
list all permissions of laura;
Egy erőforrás összes jogosultságát is listázhatja. Íme egy példa arra, hogyan lehet jogosultságot lekérni egy táblázatból.
list all permissions on dev.emp;
Tűzfal konfigurálása
Ha a tűzfal fut, a következő portokat kell megnyitni a csomópontok közötti kommunikációhoz, beleértve néhányat is Cassandra portok. Ha Cassandra a portokat nem nyitják meg, Cassandra A csomópontok önálló adatbázis-kiszolgálóként fognak működni, ahelyett, hogy csatlakoznának az adatbázis-fürthöz.
Cassandra Kliens portok
| port száma | Leírás |
|---|---|
| 9042 | Cassandra Kliens port |
| 9160 | Cassandra Client Port Thrift |
Cassandra Internode portok
| port száma | Leírás |
|---|---|
| 7000 | Cassandra csomópontok közötti klaszter kommunikáció |
| 7001 | Cassandra SSL csomópontok közötti fürt kommunikáció |
| 7199 | Cassandra JMX megfigyelő port |
Nyilvános kikötők
| port száma | Leírás |
|---|---|
| 22 | SSH port |
| 8888 | OpsCenter webhely. Böngésző http kérése. |
Cassandra OpsCenter portok
| port száma | Leírás |
|---|---|
| 61620 | OpsCenter megfigyelő port. |
| 61621 | Opscenter ügynök port |
A jelenlegi illesztőprogramok csak a 9042-es portot használják; a 9160-as port a régi Thrift interfészt szolgálja ki, és az új klasztereken zárva maradhat.
JMX hitelesítés engedélyezése
Az alapértelmezett beállításokkal CassandraA JMX csak a localhostról érhető el. Ha távolról szeretné elérni a JMX-et, módosítsa a LOCAL_JMX beállítást a cassandra-env.sh fájlban, és engedélyezze a hitelesítést vagy az SSL-t.
A JMX hitelesítés engedélyezése után győződjön meg róla OpsCenter és a nodetool hitelesítés használatára van beállítva.
Eljárás
A következő lépések szükségesek a JMX hitelesítés engedélyezéséhez.
- Adja hozzá vagy frissítse a következő sorokat a cassandra-env.sh fájlban.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
Ezenkívül módosítsa a LOCAL_JMX beállítást a cassandra-env.sh fájlban.
LOCAL_JMX=no
- Másold át a jmxremote.password.template fájlt a /jdk_install_location/lib/management/ könyvtárból az /etc/cassandra/ könyvtárba, és nevezd át jmxremote.password névre.
cp /jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password - Módosítsa a jmxremote.password tulajdonjogát a futtatott felhasználóra Cassandra csak olvasásra jogosultsággal, és módosítsa azt.
chown cassandra:cassandra /etc/cassandra/jmxremote.password chmod 400 /etc/cassandra/jmxremote.password
- Szerkessze a jmxremote.password fájlt, és adja hozzá a felhasználót és a jelszót a JMX-kompatibilis segédprogramokhoz:
monitorRole QED controlRole R&D cassandra cassandrapassword
- Adjuk hozzá a Cassandra felhasználó írási és olvasási engedéllyel a /jdk_install_location/lib/management/jmxremote.access fájlhoz
monitorRole readonly cassandra readwrite controlRole readwrite \ create javax.management.monitor.,javax.management.timer. \ unregister
- Újraindítás Cassandra.
- Futtassa a nodetool-ot a Cassandra felhasználó és jelszó.
$ nodetool status -u cassandra -pw cassandra







