Az Apache Cassandra és a Datastax Enterprise kétféle típusú biztonságot kínál.
- Belső hitelesítés
- Engedélyezés
Ebben az oktatóanyagban megtanulod,
- Mi a belső hitelesítés és engedélyezés
- Konfigurálja a hitelesítést és az engedélyezést
- Bejelentkezés
- Új felhasználó létrehozása
- Engedélyezés
- A tűzfal konfigurálása
- A JMX hitelesítés engedélyezése
Mi a belső hitelesítés és engedélyezés
A belső hitelesítés alapvetően a felhasználói kapcsolat érvényesítését jelenti. A felhasználót bejelentkezéssel és jelszóval hitelesítik. Az összes felhasználói fiókot a Cassandra belsőleg kezeli.
A belső engedélyezés a felhasználó engedélyével foglalkozik. Arról szól, hogy a felhasználó milyen műveleteket hajthat végre. Például megadhatjuk a felhasználó engedélyét, például, hogy melyik felhasználónak van csak adatolvasási engedélye, melyik felhasználónak adatírás-engedélye és melyik felhasználónak adattörlési engedélye van.
Azonban a hitelesítés kívülről is vezérelhető a Kerberos- szal (a Kerberos a hitelesítő adatok biztonságos kezelésére szolgál) és az LDAP-val (az LDAP a hiteles információk tárolására szolgál a fiókokról, például arról, hogy mihez férhetnek hozzá).
A külső hitelesítés az az azonosítás, amelyet a Kerberos és az LDAP támogat. Az Apache Cassandra nem támogatja a külső hitelesítést.
Csak a datastax Enterprise támogatja a Kerberos és az LDAP külső hitelesítését. Míg a belső hitelesítést mind az Apache Cassandra, mind a Datastax Enterprise támogatja.
Konfigurálja a hitelesítést és az engedélyezést
Cassandrában alapértelmezés szerint a hitelesítési és engedélyezési lehetőségek le vannak tiltva. Be kell állítania a Cassandra.yaml fájlt a hitelesítés és az engedélyezés engedélyezéséhez.
Nyissa meg a Cassandra.yaml fájlt és a megjegyzés nélküli sorokat, amelyek a belső hitelesítéssel és az engedélyezéssel foglalkoznak.
- A Cassandra.yaml fájlban az hitelesítő értéke alapértelmezés szerint „AllowAllAuthenticator”. Ezt a hitelesítő értéket állítsa "AllowAllAuthenticator" -ról "com.datastax.bdp.cassandra.auth.PasswordAuthenticator" -ra.
- Hasonlóképpen, a Cassandra.yaml fájlban alapértelmezés szerint az engedélyező értéke „AllowAllAuthorizor” lesz. Változtassa meg az engedélyező értékét az „AllowAllAuthorizor” értékről „com.datastax.bdp.cassandra.auth.CassandraAuthorizor” értékre.
Bejelentkezés
Mostantól engedélyezve van a hitelesítés. Ha megpróbál hozzáférni bármely kulcsterülethez, a Cassandra hibát ad vissza.
Alapértelmezés szerint a Cassandra megadja a szuper fiókot a „cassandra” felhasználónévvel és a „cassandra” jelszóval. A „Cassandra” fiókba való bejelentkezéssel bármit megtehet.
Lássuk erről az alábbi képernyőképet, ahol nem engedi meg a bejelentkezést, ha nem az alapértelmezett Cassandra "felhasználónév" és "jelszó" szót használja.
Most, a második képernyőképen, láthatja, hogy a Cassandra alapértelmezett bejelentkezési hitelesítő adatait használva bejelentkezhet.
Ezzel a fiókkal létrehozhat egy másik felhasználót is. Javasoljuk, hogy a jelszót alapértelmezettként módosítsa. Itt található a bejelentkezés Cassandra felhasználó példája és az alapértelmezett jelszó módosítása.
alter user cassandra with password 'newpassword';
Új felhasználó létrehozása
Új számlák hozhatók létre a 'Cassandra' számlával.
Új felhasználó, bejelentkezés létrehozásához meg kell adni a jelszót, valamint azt, hogy a felhasználó szuperfelhasználó-e vagy sem. Csak a Super felhasználók hozhatnak létre új felhasználókat.
create user robin with password 'manager' superuser;create user robin with password 'newhire';
A következő szintaxissal megkaphatja az összes felhasználó listáját.
list users;
A felhasználókat a következő szintaxissal lehet elvetni.
drop user laura;
Engedélyezés
Az engedélyezés a felhasználók hozzárendelésének engedélye arra vonatkozóan, hogy egy adott felhasználó milyen műveletet hajthat végre.
Itt található az általános szintaxis az engedélyek hozzárendeléséhez a felhasználókhoz.
GRANT permission ON resource TO user
Az alábbi típusú engedélyek adhatók a felhasználónak.
- ÖSSZES
- VÁLTOZTAT
- Engedélyezze
- TEREMT
- CSEPP
- MÓDOSÍT
- SELECT
Íme néhány példa az engedély hozzárendeléséhez a felhasználóhoz.
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;
Új felhasználó, „laura”, „newhire” jelszóval jön létre.
Itt van a példa, ahol a 'laura' felhasználó megpróbálja elérni az emp_bonus táblázatot. Laurának csak a dev.emp eléréséhez van engedélye, és ehhez a dev.emp_bonus táblához nincs engedélye, ezért hibát adtak vissza.
select* form emp_bonus;
Megkaphatja a felhasználóhoz rendelt összes engedély listáját. Itt van a példa az engedélyekkel kapcsolatos információk beszerzésére.
list all permissions of laura;
Az erőforrás összes engedélyét felsorolhatja. Itt van a példa arra, hogy engedélyt szerezzen egy táblától.
list all permissions on dev.emp;
A 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ány Cassandra portot is. Ha a Cassandra portok nem nyílnak meg, akkor a Cassandra csomópontok önálló adatbázis-kiszolgálóként működnek, 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 internode fürt kommunikáció |
7001 |
Cassandra SSL internode fürt kommunikáció |
7199 |
Cassandra JMX figyelő 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 figyelő port. |
61621 |
Opscenter ügynök port |
A JMX hitelesítés engedélyezése
A Cassandra alapértelmezett beállításaival a JMX csak a localhostról érhető el. Ha távolról szeretne hozzáférni a JMX-hez, 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 ellenőrizze, hogy az OpsCenter és a nodetool be vannak-e állítva a hitelesítés használatára.
Eljárás
A JMX hitelesítés engedélyezéséhez a következő lépéseket kell végrehajtani.
- A cassandra-env.sh fájlban adja hozzá vagy frissítse a következő sorokat.
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ásolja a jmxremote.password.template fájlt a / jdk_install_location / lib / management / könyvtárba az / etc / cassandra / fájlba, és nevezze át tojmxremote.password névre.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Módosítsa a jmxremote.password tulajdonjogát annak a felhasználónak, akivel a Cassandra programot futtatja, és módosítsa az engedélyt az írásvédelemhez
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 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 QEDcontrolRole R&Dcassandra cassandrapassword
- Adja hozzá a Cassandra felhasználót olvasási és írási engedéllyel a /jdk_install_location/lib/management/jmxremote.access címre.
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
- Indítsa újra a Cassandrát
- Futtassa a csomópontot a Cassandra felhasználóval és jelszóval.
$ nodetool status -u cassandra -pw cassandra
Összegzés:
Ez az oktatóanyag elmagyarázza a Cassandra biztonságát és a Cassandra.yaml fájl konfigurálását a biztonság engedélyezéséhez. Emellett elmagyarázza, hogyan hozható létre új felhasználói fiók, engedélyek kiosztása, a tűzfal beállítása stb.