Cassandra Security: Create User & Ověřování pomocí JMX

V podnikových aplikacích Apache Cassandra a Datastax existují dva typy zabezpečení.

  • Interní autentizace
  • Oprávnění

V tomto výukovém programu se naučíte,

  • Co je interní ověřování a autorizace
  • Nakonfigurujte ověřování a autorizaci
  • Přihlašování
  • Vytvořit nového uživatele
  • Oprávnění
  • Konfigurace brány firewall
  • Povolení ověřování JMX

Co je interní ověřování a autorizace

Interní ověřování je v podstatě ověření připojení uživatele. Uživatel je ověřen pomocí přihlašovacího jména a hesla. Všechny uživatelské účty jsou v Cassandře spravovány interně.

Interní autorizace se zabývá svolením uživatele. Zabývá se tím, jaké akce může uživatel provádět. Například můžeme uživateli udělit svolení, například který uživatel má oprávnění pouze ke čtení dat, který uživatel má oprávnění k zápisu dat a který uživatel má oprávnění k mazání dat.

Ověření však lze také externě ovládat pomocí protokolu Kerberos (protokol Kerberos se používá k zabezpečené správě pověření) a LDAP (protokol LDAP se používá k uchovávání autoritativních informací o účtech, například o tom, k čemu mají povolen přístup).

Externí ověřování je ověřování, které je podporováno protokoly Kerberos a LDAP. Apache Cassandra nepodporuje externí ověřování.

Pouze datastax Enterprise podporuje externí ověřování pomocí protokolu Kerberos a LDAP. Zatímco interní ověřování je podporováno jak v Apache Cassandra, tak i v Datastaxu.

Nakonfigurujte ověřování a autorizaci

Ve službě Cassandra jsou ve výchozím nastavení možnosti ověřování a autorizace zakázány. Musíte povolit ověřování a autorizaci souboru Cassandra.yaml.

Otevřete soubor Cassandra.yaml a odkomentujte řádky, které se zabývají interním ověřováním a autorizací.

  • V souboru Cassandra.yaml je ve výchozím nastavení hodnota ověřovatele „AllowAllAuthenticator“. Změňte tuto hodnotu ověřovatele z „AllowAllAuthenticator“ na „com.datastax.bdp.cassandra.auth.PasswordAuthenticator“.
  • Podobně v souboru Cassandra.yaml bude ve výchozím nastavení hodnota autorizátoru „AllowAllAuthorizor“. Změňte tuto hodnotu autorizátoru z „AllowAllAuthorizor“ na „com.datastax.bdp.cassandra.auth.CassandraAuthorizor“.

Přihlašování

Nyní je ověřování povoleno, pokud se pokusíte o přístup do libovolného prostoru klíčů, Cassandra vrátí chybu.

Ve výchozím nastavení poskytuje Cassandra super účet s uživatelským jménem „cassandra“ a heslem „cassandra“. Po přihlášení k účtu „Cassandra“ můžete dělat, co chcete.

Podívejme se na níže uvedený snímek obrazovky, kde vám neumožní přihlášení, pokud nepoužíváte výchozí „uživatelské jméno“ a „heslo“ Cassandra.

Nyní na druhém snímku obrazovky můžete vidět po použití výchozího přihlašovacího pověření Cassandry, že se můžete přihlásit.

S tímto účtem můžete také vytvořit jiného uživatele. Doporučuje se změnit výchozí heslo. Zde je příklad přihlášení uživatele Cassandra a změny výchozího hesla.

alter user cassandra with password 'newpassword';

Vytvořit nového uživatele

S účtem „Cassandra“ lze vytvořit nové účty.

Pro vytvoření nového uživatele, přihlášení, je zadáno heslo spolu s tím, zda je uživatel superuživatelem či nikoli. Pouze Super uživatel může vytvářet nové uživatele.

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

Seznam všech uživatelů můžete získat pomocí následující syntaxe.

list users;

Uživatelé mohou být zrušeni následující syntaxí.

drop user laura;

Oprávnění

Autorizace je přiřazení oprávnění uživatelům k tomu, jakou akci může konkrétní uživatel provést.

Tady je obecná syntaxe pro přidělování oprávnění uživatelům.

GRANT permission ON resource TO user

Uživateli lze udělit následující typy oprávnění.

  1. VŠECHNO
  2. ZMĚNIT
  3. POVOLIT
  4. VYTVOŘIT
  5. POKLES
  6. UPRAVIT
  7. VYBRAT

Zde jsou příklady přiřazení oprávnění uživateli.

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;

Je vytvořen nový uživatel „laura“ s heslem „newhire“.

Zde je příklad, kdy se uživatel „laura“ pokusí získat přístup k tabulce emp_bonus. Laura má pouze oprávnění pro přístup k dev.emp a žádné oprávnění k této tabulce dev.emp_bonus, proto byla vrácena chyba.

select* form emp_bonus;

Můžete získat seznam všech oprávnění, která jsou uživateli přiřazena. Zde je příklad získání informací o povolení.

list all permissions of laura;

Můžete také uvést všechna oprávnění ke zdroji. Zde je příklad získání povolení z tabulky.

list all permissions on dev.emp;

Konfigurace brány firewall

Pokud je spuštěná brána firewall, je třeba otevřít následující porty pro komunikaci mezi uzly, včetně některých portů Cassandra. Pokud se porty Cassandra neotevřou, uzly Cassandry budou fungovat spíše jako samostatný databázový server, než aby se připojily k databázovému klastru.

Porty klienta Cassandra

Číslo portu

Popis

9042

Port klienta Cassandra

9160

Cassandra Client Port Thrift

Porty Cassandra Internode

Číslo portu

Popis

7000

Klastrová komunikace mezi uzly Cassandry

7001

Komunikace klastru internandové SSL Cassandra SSL

7199

Monitorovací port Cassandra JMX

Veřejné přístavy

Číslo portu

Popis

22

SSH port

8888

Web OpsCenter. Požadavek http prohlížeče.

Porty Cassandra OpsCenter

Číslo portu

Popis

61620

Monitorovací port OpsCenter.

61621

Port agenta Opscenter

Povolení ověřování JMX

S výchozím nastavením Cassandry lze k JMX přistupovat pouze z místního hostitele. Pokud chcete přistupovat k JMX vzdáleně, změňte nastavení LOCAL_JMX v Cassandra-env.sh a povolte ověřování nebo SSL.

Po povolení ověřování JMX se ujistěte, že OpsCenter a nodetool jsou nakonfigurovány pro použití ověřování.

Postup

K povolení ověřování JMX existují následující kroky.

  1. V souboru cassandra-env.sh přidejte nebo aktualizujte následující řádky.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"

Změňte také nastavení LOCAL_JMX v souboru Cassandra-env.sh

LOCAL_JMX=no
  1. Zkopírujte šablonu jmxremote.password.template z / jdk_install_location / lib / management / do / etc / cassandra / a přejmenujte ji najmjmremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. Změňte vlastnictví jmxremote.password na uživatele, se kterým spustíte Cassandru, a změňte oprávnění pouze pro čtení
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
  1. Upravte heslo jmxremote.password a přidejte uživatele a heslo pro nástroje kompatibilní s JMX:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
  1. Přidejte uživatele Cassandra s oprávněním ke čtení a zápisu do /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
  1. Restartujte Cassandru
  2. Spusťte nodetool s uživatelem a heslem Cassandry.
$ nodetool status -u cassandra -pw cassandra

Souhrn:

Tento kurz vysvětluje zabezpečení v Cassandře a konfiguraci souboru Cassandra.yaml pro povolení zabezpečení. Kromě toho také vysvětluje, jak lze vytvořit nový uživatelský účet, přiřazení oprávnění, konfiguraci brány firewall atd.

Zajímavé články...