Cassandra Security: Create User & Autentifikácia pomocou JMX

Obsah:

Anonim

V podnikoch Apache Cassandra a Datastax existujú dva typy zabezpečenia.

  • Interná autentifikácia
  • Povolenie

V tomto návode sa dozviete,

  • Čo je interná autentifikácia a autorizácia
  • Nakonfigurujte autentifikáciu a autorizáciu
  • Prihlasovanie
  • Vytvoriť nového používateľa
  • Povolenie
  • Konfigurácia brány firewall
  • Povolenie autentifikácie JMX

Čo je interná autentifikácia a autorizácia

Interná autentifikácia je v podstate validácia pripojenia používateľa. Používateľ je autentifikovaný pomocou prihlasovacieho mena a hesla. Všetky používateľské účty sú v aplikácii Cassandra spravované interne.

Interná autorizácia sa zaoberá povolením používateľa. Zaoberá sa tým, aké akcie môže užívateľ vykonať. Môžeme napríklad udeliť povolenie používateľa, napríklad ktorý používateľ má povolenie iba na čítanie údajov, ktorý používateľ má povolenie na zápis údajov a ktorý používateľ má povolenie na mazanie údajov.

Autentifikáciu je však možné ovládať aj externe pomocou protokolu Kerberos (protokol Kerberos sa používa na bezpečnú správu poverení) a LDAP (protokol LDAP sa používa na uchovávanie smerodajných informácií o účtoch, napríklad o tom, k čomu majú povolený prístup).

Externá autentifikácia je autentifikácia, ktorá je podporovaná v protokole Kerberos a LDAP. Apache Cassandra nepodporuje externé overovanie.

Iba podnik datastax podporuje externú autentifikáciu pomocou protokolu Kerberos a LDAP. Zatiaľ čo interné overovanie je podporované ako v serveri Apache Cassandra, tak aj v serveri Datastax.

Nakonfigurujte autentifikáciu a autorizáciu

V Cassandre sú predvolene vypnuté možnosti autentifikácie a autorizácie. Musíte povoliť autentifikáciu a autorizáciu súboru Cassandra.yaml.

Otvorte súbor Cassandra.yaml a odkomentujte riadky, ktoré sa zaoberajú internou autentifikáciou a autorizáciou.

  • V súbore Cassandra.yaml je predvolene hodnota autentifikátora „AllowAllAuthenticator“. Zmeňte túto hodnotu autentifikátora z „AllowAllAuthenticator“ na „com.datastax.bdp.cassandra.auth.PasswordAuthenticator“.
  • Podobne v súbore Cassandra.yaml bude predvolene hodnota autorizátora „AllowAllAuthorizor“. Zmeňte hodnotu tohto autorizátora z „AllowAllAuthorizor“ na „com.datastax.bdp.cassandra.auth.CassandraAuthorizor“.

Prihlasovanie

Teraz je autentifikácia povolená, ak sa pokúsite získať prístup do ktoréhokoľvek priestoru kľúčov, vráti Cassandra chybu.

V predvolenom nastavení poskytuje Cassandra superkonto s používateľským menom „cassandra“ a heslom „cassandra“. Po prihlásení sa do účtu „Cassandra“ môžete robiť, čo chcete.

Pozrime sa na to nižšie, kde vám to neumožní prihlásiť sa, ak nepoužívate predvolené „užívateľské meno“ a „heslo“ Cassandra.

Teraz na druhej snímke obrazovky vidíte, že po použití predvolených prihlasovacích údajov Cassandry sa môžete prihlásiť.

Pomocou tohto účtu môžete tiež vytvoriť iného používateľa. Odporúča sa zmeniť predvolené heslo. Tu je príklad prihlásenia používateľa Cassandra a zmeny predvoleného hesla.

alter user cassandra with password 'newpassword';

Vytvoriť nového používateľa

Pomocou účtu „Cassandra“ je možné vytvoriť nové účty.

Pri vytváraní nového používateľa sa prihlasuje heslo, ktoré sa určuje spolu s tým, či je používateľ superužívateľom alebo nie. Iba Super užívateľ môže vytvárať nových používateľov.

create user robin with password 'manager' superuser;create user robin with password 'newhire';

Zoznam všetkých používateľov môžete získať pomocou nasledujúcej syntaxe.

list users;

Používateľov je možné vynechať pomocou nasledujúcej syntaxe.

drop user laura;

Povolenie

Autorizácia je pridelenie povolenia používateľom, ktoré činnosti môže konkrétny používateľ vykonať.

Tu uvádzame všeobecnú syntax na prideľovanie povolení používateľom.

GRANT permission ON resource TO user

Používateľ môže udeliť nasledujúce typy povolení.

  1. VŠETKY
  2. ALTER
  3. POVOLIŤ
  4. VYTVORIŤ
  5. POKLES
  6. ZMENIŤ
  7. VYBERTE

Tu sú príklady pridelenia povolenia používateľovi.

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;

Nový užívateľ 'laura' je vytvorený s heslom 'newhire'.

Tu je príklad, keď sa používateľ „laura“ pokúša získať prístup k tabuľke emp_bonus. Laura má iba povolenie na prístup k súboru dev.emp a žiadne povolenie k tejto tabuľke dev.emp_bonus, preto bola vrátená chyba.

select* form emp_bonus;

Môžete získať zoznam všetkých povolení, ktoré sú používateľovi pridelené. Tu je príklad získania informácií o povolení.

list all permissions of laura;

Môžete tiež uviesť zoznam všetkých povolení pre zdroj. Tu je príklad získania povolenia od tabuľky.

list all permissions on dev.emp;

Konfigurácia brány firewall

Ak je firewall spustený, musia byť otvorené nasledujúce porty pre komunikáciu medzi uzlami vrátane niektorých portov Cassandra. Ak sa porty Cassandra neotvoria, uzly Cassandra budú namiesto pripojenia k databázovému klastru fungovať ako samostatný databázový server.

Klientske porty Cassandra

Číslo portu

Popis

9042

Port klienta Cassandra

9160

Šetrnosť portov klienta Cassandra

Porty Cassandra Internode

Číslo portu

Popis

7000

Klastrová komunikácia medzikontinentálnej sondy Cassandra

7001

Komunikácia klastra medzikontinentálnej SSL Cassandra

7199

Monitorovací port Cassandra JMX

Verejné prístavy

Číslo portu

Popis

22

SSH port

8888

Web OpsCenter. Požiadavka http prehliadača.

Porty Cassandra OpsCenter

Číslo portu

Popis

61620

Monitorovací port OpsCenter.

61621

Port agenta Opscenter

Povolenie autentifikácie JMX

S predvoleným nastavením Cassandry je k aplikácii JMX prístup iba z miestneho hostiteľa. Ak chcete mať vzdialený prístup k JMX, zmeňte nastavenie LOCAL_JMX v Cassandra-env.sh a povoľte autentifikáciu alebo SSL.

Po povolení autentifikácie JMX sa uistite, že OpsCenter a nodetool sú nakonfigurované na používanie autentifikácie.

Postup

Existujú nasledujúce kroky na povolenie autentifikácie JMX.

  1. V súbore cassandra-env.sh pridajte alebo aktualizujte nasledujúce riadky.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"

Zmeňte tiež nastavenie LOCAL_JMX v Cassandra-env.sh

LOCAL_JMX=no
  1. Skopírujte šablónu jmxremote.password.template z / jdk_install_location / lib / management / do / etc / cassandra / a premenujte ju najmjmremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. Zmeňte vlastníctvo hesla jmxremote.password na používateľa, s ktorým spúšťate Cassandru, a zmeňte povolenie iba na čítanie
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
  1. Upravte heslo jmxremote.password a pridajte používateľa a heslo pre obslužné programy kompatibilné s JMX:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
  1. Pridajte používateľa Cassandra s povolením na čítanie a zápis do /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
  1. Reštartujte Cassandru
  2. Spustite nodetool s používateľom a heslom Cassandra.
$ nodetool status -u cassandra -pw cassandra

Zhrnutie:

V tomto výučbe sa dozviete viac o zabezpečení v aplikácii Cassandra a konfigurácii súboru Cassandra.yaml na povolenie zabezpečenia. Okrem toho tiež vysvetľuje, ako je možné vytvoriť nový používateľský účet, prideliť povolenie, nakonfigurovať bránu firewall atď.