Има два вида сигурност в Apache Cassandra и Datastax enterprise.
- Вътрешно удостоверяване
- Разрешение
В този урок ще научите,
- Какво е вътрешно удостоверяване и упълномощаване
- Конфигурирайте удостоверяване и упълномощаване
- Влизане
- Създаване на нов потребител
- Разрешение
- Конфигуриране на защитна стена
- Активиране на JMX удостоверяване
Какво е вътрешно удостоверяване и упълномощаване
Вътрешното удостоверяване по същество е валидиране на потребителска връзка. Потребителят се удостоверява с потребителско име и парола. Всички потребителски акаунти се управляват вътрешно в Cassandra.
Вътрешното оторизиране се занимава с разрешението на потребителя. Той се занимава с това, какви действия може да извърши потребителят. Например можем да дадем разрешение на потребителя, като например кой потребител има само разрешение за четене на данни, кой потребител има разрешение за запис на данни и кой потребител има разрешение за изтриване на данни.
Удостоверяването обаче може да се контролира и външно с Kerberos (Kerberos се използва за безопасно управление на идентификационните данни) и LDAP (LDAP се използва за съхраняване на достоверна информация за акаунтите, като например до какво им е разрешен достъп).
Външно удостоверяване е удостоверяването, което се поддържа с Kerberos и LDAP. Apache Cassandra не поддържа външно удостоверяване.
Само datastax Enterprise поддържа външно удостоверяване с Kerberos и LDAP. Докато вътрешното удостоверяване се поддържа както в Apache Cassandra, така и в Datastax Enterprise.
Конфигурирайте удостоверяване и упълномощаване
В Cassandra по подразбиране опциите за удостоверяване и оторизация са деактивирани. Трябва да конфигурирате файла Cassandra.yaml за разрешаване на удостоверяване и упълномощаване.
Отворете Cassandra.yaml файл и линии за коментар, който се занимава с вътрешно удостоверяване и упълномощаване.
- Във файла Cassandra.yaml по подразбиране стойността на удостоверителя е „AllowAllAuthenticator“. Променете тази стойност за удостоверяване от „AllowAllAuthenticator“ на „com.datastax.bdp.cassandra.auth.PasswordAuthenticator“.
- По същия начин във файла Cassandra.yaml по подразбиране стойността на оторизатора ще бъде „AllowAllAuthorizor“. Променете стойността на този упълномощител от „AllowAllAuthorizor“ на „com.datastax.bdp.cassandra.auth.CassandraAuthorizor“.
Влизане
Сега удостоверяването е активирано, ако се опитате да осъществите достъп до произволно пространство от ключове, Касандра ще върне грешка.
По подразбиране Cassandra предоставя супер акаунта с потребителско име „cassandra“ и парола „cassandra“. Влизайки в акаунта на „Касандра“, можете да правите каквото искате.
Нека да видим скрийншота по-долу за това, където няма да ви позволи да влезете, ако не използвате по подразбиране Cassandra "потребителско име" и "парола".
Сега, във втората екранна снимка, можете да видите, след като използвате идентификационните данни за вход по подразбиране на Cassandra, можете да влезете.
Можете също да създадете друг потребител с този акаунт. Препоръчително е да промените паролата от настройката по подразбиране. Ето примера за вход на потребител Cassandra и промяна на паролата по подразбиране.
alter user cassandra with password 'newpassword';
Създаване на нов потребител
Новите акаунти могат да бъдат създадени с акаунта „Cassandra“.
За създаване на нов потребител, вход, паролата се посочва заедно с това дали потребителят е супер потребител или не. Само Super потребител може да създава нови потребители.
create user robin with password 'manager' superuser;create user robin with password 'newhire';
Можете да получите списък с всички потребители чрез следния синтаксис.
list users;
Потребителите могат да бъдат отхвърлени от следния синтаксис.
drop user laura;
Разрешение
Упълномощаването е присвояване на разрешение на потребителите какво действие може да извърши даден потребител.
Ето общия синтаксис за присвояване на разрешение на потребителите.
GRANT permission ON resource TO user
Има следните видове разрешения, които могат да бъдат предоставени на потребителя.
- ВСИЧКО
- ALTER
- РАЗРЕШЕТЕ
- СЪЗДАЙТЕ
- ИЗПУСКАЙТЕ
- МОДИФИЦИРАЙТЕ
- ИЗБЕРЕТЕ
Ето примери за присвояване на разрешение на потребителя.
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;
Създава се нов потребител 'laura' с парола 'newhire'.
Ето примера, когато потребител 'laura' се опитва да получи достъп до таблицата emp_bonus. Лора има само разрешение за достъп до dev.emp и няма разрешение за тази таблица dev.emp_bonus, поради което е върната грешка.
select* form emp_bonus;
Можете да получите списък с всички разрешения, които са зададени на потребителя. Ето примера за получаване на информация за разрешение.
list all permissions of laura;
Можете също да изброите всички разрешения на ресурса. Ето примера за получаване на разрешение от таблица.
list all permissions on dev.emp;
Конфигуриране на защитна стена
Ако защитната стена работи, трябва да се отворят следните портове за комуникация между възли, включително някои портове Cassandra. Ако портовете на Cassandra не бъдат отворени, възлите на Cassandra ще действат като самостоятелен сървър на база данни, вместо да се присъединяват към клъстера на базата данни.
Клиентски пристанища на Касандра
Номер на пристанище |
Описание |
9042 |
Клиентско пристанище на Касандра |
9160 |
Cassandra Client Port Thrift |
Пристанища Cassandra Internode
Номер на пристанище |
Описание |
7000 |
Касандра междувъзлова клъстерна комуникация |
7001 |
Касандра SSL междувъзловна клъстерна комуникация |
7199 |
Порт за наблюдение на Cassandra JMX |
Обществени пристанища
Номер на пристанище |
Описание |
22. |
SSH порт |
8888 |
Уебсайт на OpsCenter. Http заявка на браузъра. |
Пристанища на Cassandra OpsCenter
Номер на пристанище |
Описание |
61620 |
Порт за наблюдение на OpsCenter. |
61621 |
Порт за агент на Opscenter |
Активиране на JMX удостоверяване
С настройките по подразбиране на Cassandra, JMX може да бъде достъпен само от localhost. Ако искате да получите достъп до JMX отдалечено, променете настройката LOCAL_JMX в Cassandra-env.sh и активирайте удостоверяването или SSL.
След като активирате JMX удостоверяване, уверете се, че OpsCenter и nodetool са конфигурирани да използват удостоверяване.
Процедура
Има следните стъпки за активиране на JMX удостоверяване.
- Във файла cassandra-env.sh добавете или актуализирайте следните редове.
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
Също така променете настройката LOCAL_JMX в Cassandra-env.sh
LOCAL_JMX=no
- Копирайте jmxremote.password.template от / jdk_install_location / lib / management / в / etc / cassandra / и го преименувайте на tojmxremote.password.
cp />jdk_install_dir/lib/management/jmxremote.password.template /etc/cassandra/jmxremote.password
- Променете собствеността на jmxremote.password на потребителя, с когото стартирате Cassandra, и променете разрешението само за четене
chown cassandra:cassandra /etc/cassandra/jmxremote.passwordchmod 400 /etc/cassandra/jmxremote.password
- Редактирайте jmxremote.password и добавете потребител и парола за JMX-съвместими помощни програми:
monitorRole QEDcontrolRole R&Dcassandra cassandrapassword
- Добавете потребителя на Cassandra с разрешение за четене и запис към /jdk_install_location/lib/management/jmxremote.access
monitorRole readonlycassandra readwritecontrolRole readwrite \create javax.management.monitor.,javax.management.timer. \unregister
- Рестартирайте Касандра
- Стартирайте nodetool с потребителя и паролата на Cassandra.
$ nodetool status -u cassandra -pw cassandra
Резюме:
Този урок обяснява за сигурността в Cassandra и конфигурирането на файла Cassandra.yaml за активиране на защитата. Освен това той също обяснява как може да се създаде нов потребителски акаунт, присвояване на разрешение, конфигуриране на защитната стена и т.н.