Cassandra Security: Felhasználó létrehozása & Hitelesítés a JMX-szel

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.

  1. ÖSSZES
  2. VÁLTOZTAT
  3. Engedélyezze
  4. TEREMT
  5. CSEPP
  6. MÓDOSÍT
  7. 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.

  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. Indítsa újra a Cassandrát
  2. 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.

érdekes cikkek...