Cassandra JMX hitelesítés és hitelesítés: Felhasználó létrehozása

Kétféle biztonság létezik Apache Cassandra és Datastax vállalkozás.

  • 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ését jelenti. A felhasználó hitelesítése bejelentkezési névvel és jelszóval történik. Az összes felhasználói fiókot a rendszer kezeli Cassandra belsőleg.

A belső engedélyezés a felhasználó engedélyével foglalkozik. Azzal foglalkozik, hogy a felhasználó milyen műveleteket hajthat végre. Például megadhatunk engedélyt a felhasználónak, például, hogy melyik felhasználónak csak adatolvasási, melyik felhasználó adatírási és melyik felhasználónak adattörlési engedélye van.

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 az LDAP (az LDAP a fiókokkal kapcsolatos hiteles információk tárolására szolgál, például, hogy mihez férhetnek hozzá).

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 külső hitelesítést Kerberos és LDAP segítségével. Míg a belső hitelesítés mindkettőben támogatott Apache Cassandra valamint a Datastax vállalat.

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 lehetőségek le vannak tiltva. Konfigurálni kell Cassandra.yaml fájl a hitelesítés és az engedélyezés engedélyezéséhez.

Nyisd ki Cassandra.yaml fájl és megjegyzés nélküli sorok, amelyek a belső hitelesítéssel és engedélyezéssel foglalkoznak.

A hitelesítés és engedélyezés konfigurálása

  • In Cassandra.yaml fájl, alapértelmezés szerint a hitelesítő értéke „AllowAllAuthenticator”. Módosítsa ezt a hitelesítő értéket „AllowAllAuthenticator” értékről „com.datastax.bdp.cassandra.auth.PasswordAuthenticator” értékre.
  • Hasonlóképpen a Cassandra.yaml fájl, alapértelmezés szerint az engedélyezési érték „AllowAllAuthorizor” lesz. Módosítsa ezt a jogosultsági értéket „AllowAllAuthorizor” értékről „com.datastax.bdp.cassandra.auth.CassandraEngedélyező”.

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 biztosítja a szuper fiókot „cassandra” felhasználónévvel és „cassandra” jelszóval. bejelentkezve a 'Cassandra' fiókot, azt csinálhat, amit csak akar.

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ó".

Bejelentkezés

Most a második képernyőképen láthatja a használat után Cassandra alapértelmezett bejelentkezési hitelesítő adatokkal, akkor bejelentkezhet.

Ezzel a fiókkal egy másik felhasználót is létrehozhat. Javasoljuk, hogy módosítsa a jelszót az alapértelmezettről. Itt van egy példa a bejelentkezésre Cassandra felhasználót, és módosítsa az alapértelmezett jelszót.

Bejelentkezés

alter user cassandra with password 'newpassword';

Új felhasználó létrehozása

Új fiókok hozhatók létre a következővel:Cassandra' fiókot.

Új felhasználó létrehozásához, bejelentkezéskor a jelszó megadásra kerül, valamint, hogy a felhasználó szuperfelhasználó-e vagy sem. Csak szuper felhaszná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;

Új felhasználó létrehozása

A felhasználókat a következő szintaxissal lehet eldobni.

drop user laura;

Meghatalmazás

Az engedélyezés az engedély hozzárendelése a felhasználókhoz, 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.

  1. MINDEN
  2. VÁLTOZTAT
  3. ENGEDÉLYEZÉS
  4. TEREMT
  5. DROP
  6. MÓDOSÍT
  7. 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.

Itt van egy példa, amikor a 'laura' felhasználó megpróbál hozzáférni az emp_bonus táblához. Laurának csak a dev.emp eléréséhez van engedélye, és nincs engedélye ehhez a dev.emp_bonus táblához, ezért hibaüzenetet küldtek vissza.

Meghatalmazás

select* form emp_bonus;

Megtekintheti a felhasználóhoz rendelt összes engedély listáját. Íme egy példa az engedélyinformációk megszerzésére.

Meghatalmazás

list all permissions of laura;

Felsorolhatja az erőforrás összes engedélyét is. Íme egy példa az engedélyek beszerzésére egy táblázatból.

Meghatalmazás

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 működnek ahelyett, hogy csatlakoznának az adatbázis-fürthöz.

Cassandra Kliens portok

port száma Description
9042 Cassandra Kliens port
9160 Cassandra Client Port Thrift

Cassandra Internode portok

port száma Description
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 Description
22 SSH port
8888 OpsCenter webhely. Böngésző http kérése.

Cassandra OpsCenter portok

port száma Description
61620 OpsCenter megfigyelő port.
61621 Opscenter ügynök port

JMX hitelesítés engedélyezése

Az alapértelmezett beállításokkal Cassandra, A JMX csak a localhost-ról érhető el. Ha távolról szeretné elérni a JMX-et, módosítsa a LOCAL_JMX beállítást Cassandra-env.sh é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.

  1. 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 Cassandra-env.sh

LOCAL_JMX=no
  1. Másolja a jmxremote.password.template fájlt a /jdk_install_location/lib/management/ fájlból az /etc/cassandra/ mappába, és nevezze át a következőre: jmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. Módosítsa a jmxremote.password tulajdonjogát a futtatott felhasználóra Cassandra csak olvasási engedéllyel és módosítsa azt
chown cassandra:cassandra /etc/cassandra/jmxremote.password 
chmod 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 QED 
controlRole R&D 
cassandra cassandrapassword
  1. 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
  1. Újraindítás Cassandra
  2. Futtassa a nodetool-ot a Cassandra felhasználó és jelszó.
$ nodetool status -u cassandra -pw cassandra

Összegzésként

Ez az oktatóanyag a biztonságról szól Cassandra és konfigurálása Cassandra.yaml fájl a biztonság engedélyezéséhez. Ezen túlmenően azt is elmagyarázza, hogyan hozható létre új felhasználói fiók, hogyan hozható létre engedély, hogyan konfigurálható a tűzfal, és így tovább.