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.
- 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ó".
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.
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;
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.
- MINDEN
- VÁLTOZTAT
- ENGEDÉLYEZÉS
- 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.
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.
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.
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.
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.
- 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
- 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
- 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
- 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
Ö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.