Cassandra JMX Authentication & Authorization: Create User

Existují dva typy zabezpečení Apache Cassandra a společnost Datastax.

  • Interní ověřování
  • Povolení

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

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

Interní autorizace se zabývá oprávněním uživatele. Zabývá se tím, jaké akce může uživatel provádět. Můžeme například udělit oprávnění uživatele, 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.

Autentizaci však lze ovládat také externě pomocí Kerberos (Kerberos se používá k bezpečné správě přihlašovacích údajů) a LDAP (LDAP se používá k uchovávání autoritativních informací o účtech, například k tomu, k čemu mají povolen přístup).

Externí ověřování je ověřování podporované protokoly Kerberos a LDAP. Apache Cassandra nepodporuje externí ověřování.

Externí autentizaci pomocí Kerberos a LDAP podporuje pouze podnik datastax. Zatímco interní autentizace je podporována jak v Apache Cassandra stejně jako Datastax enterprise.

Nakonfigurujte ověřování a autorizaci

In Cassandra, ve výchozím nastavení jsou možnosti ověřování a autorizace zakázány. Musíte nakonfigurovat Cassandra.yaml pro povolení autentizace a autorizace.

Otevřená Cassandra.yaml a řádky pro odkomentování, které se zabývají interní autentizací a autorizací.

Nakonfigurujte ověřování a autorizaci

  • In Cassandra.yaml, ve výchozím nastavení je hodnota ověřování 'AllowAllAuthenticator'. Změňte tuto hodnotu autentizátora z „AllowAllAuthenticator“ na „com.datastax.bdp.cassandra.auth.PasswordAuthenticator“.
  • Podobně v roce XNUMX Cassandra.yaml, ve výchozím nastavení bude hodnota autorizátoru 'AllowAllAuthorizor'. Změňte tuto hodnotu autorizace z „AllowAllAuthorizor“ na „com.datastax.bdp.cassandra.auth.CassandraAutorizátor'.

přihlášení

Nyní je autentizace povolena, pokud se pokusíte získat přístup k libovolnému prostoru klíčů, Cassandra vrátí chybu.

Ve výchozím nastavení Cassandra poskytuje superúčtu uživatelské jméno 'cassandra' a heslo 'cassandra'. Přihlášením do 'Cassandra' účet, můžete si dělat, co chcete.

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

přihlášení

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

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

přihlášení

alter user cassandra with password 'newpassword';

Vytvořit nového uživatele

Nové účty lze vytvořit pomocí 'Cassandra' účet.

Pro vytvoření nového uživatele, login, je zadáno heslo spolu s tím, zda je uživatel superuživatelem nebo ne. Nové uživatele může vytvářet pouze Super uživatel.

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;

Vytvořit nového uživatele

Uživatelé mohou být vyřazeni pomocí následující syntaxe.

drop user laura;

Povolení

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

Zde 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. ALTER
  3. AUTORIZOVAT
  4. CREATE
  5. DROP
  6. MODIFIKOVAT
  7. SELECT

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;

Vytvoří se nový uživatel 'laura' s heslem 'newhire'.

Zde je příklad, kdy se uživatel 'laura' pokouší o přístup k tabulce emp_bonus. Laura má pouze oprávnění k přístupu k dev.emp a žádné oprávnění k této tabulce dev.emp_bonus, proto byla vrácena chyba.

Povolení

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 oprávnění.

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.

Povolení

list all permissions on dev.emp;

Konfigurace brány firewall

Pokud je firewall spuštěn, musí být pro komunikaci mezi uzly včetně některých otevřeny následující porty Cassandra porty. Li Cassandra porty nebudou otevřeny, Cassandra uzly budou fungovat jako samostatný databázový server místo toho, aby se připojovaly k databázovému klastru.

Cassandra Klientské porty

Číslo portu Description
9042 Cassandra Klientský port
9160 Cassandra Klient Port Thrift

Cassandra Internodové porty

Číslo portu Description
7000 Cassandra internode cluster komunikace
7001 Cassandra SSL internode cluster komunikace
7199 Cassandra Monitorovací port JMX

Veřejné přístavy

Číslo portu Description
22 Port SSH
8888 Web OpsCenter. http požadavek prohlížeče.

Cassandra Porty OpsCenter

Číslo portu Description
61620 Monitorovací port OpsCenter.
61621 Port agenta operačního centra

Povolení ověřování JMX

S výchozím nastavením Cassandra, JMX je přístupný pouze z localhost. Pokud chcete k JMX přistupovat vzdáleně, změňte nastavení LOCAL_JMX v Cassandra-env.sh a povolit ověřování nebo SSL.

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

Postup

Pro 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 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 na tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
  1. Změňte vlastnictví jmxremote.password na uživatele, kterého spouštíte Cassandra s a změnit oprávnění pouze ke čtení
chown cassandra:cassandra /etc/cassandra/jmxremote.password 
chmod 400 /etc/cassandra/jmxremote.password
  1. Upravte jmxremote.password a přidejte uživatele a heslo pro nástroje kompatibilní s JMX:
monitorRole QED 
controlRole R&D 
cassandra cassandrapassword
  1. Přidat Cassandra uživatel s oprávněním ke čtení a zápisu do /jdk_install_location/lib/management/jmxremote.access
monitorRole readonly
cassandra readwrite
controlRole readwrite \
create javax.management.monitor.,javax.management.timer. \ 
unregister
  1. Restart Cassandra
  2. Spusťte nástroj nodetool pomocí Cassandra uživatele a heslo.
$ nodetool status -u cassandra -pw cassandra

Shrnutí

Tento tutoriál vysvětluje bezpečnost v Cassandra a konfiguraci Cassandra.yaml pro povolení zabezpečení. Kromě toho také vysvětluje, jak lze vytvořit nový uživatelský účet, přidělovat oprávnění, konfigurovat firewall a tak dále.