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í.
- 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".
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.
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;
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í.
- VŠECHNO
- ALTER
- AUTORIZOVAT
- CREATE
- DROP
- MODIFIKOVAT
- 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.
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í.
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 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.
- 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
- 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
- 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
- Upravte jmxremote.password a přidejte uživatele a heslo pro nástroje kompatibilní s JMX:
monitorRole QED controlRole R&D cassandra cassandrapassword
- 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
- Restart Cassandra
- 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.