У Apache Cassandra та Enterprisestax існує два типи захисту.
- Внутрішня автентифікація
- Авторизація
У цьому підручнику ви дізнаєтесь,
- Що таке внутрішня автентифікація та авторизація
- Налаштування автентифікації та авторизації
- Вхід
- Створити нового користувача
- Авторизація
- Налаштування брандмауера
- Увімкнення автентифікації JMX
Що таке внутрішня автентифікація та авторизація
Внутрішня автентифікація - це в основному перевірка підключення користувача. Користувач аутентифікується за допомогою логіна та пароля. Усі облікові записи користувачів управляються в Cassandra внутрішньо.
Внутрішня авторизація стосується дозволу користувача. Він стосується того, які дії може виконувати користувач. Наприклад, ми можемо надати дозвіл користувача, наприклад, який користувач має лише дозвіл на зчитування даних, який користувач має дозвіл на запис даних і який користувач має дозвіл на видалення даних.
Однак автентифікацією також можна керувати зовні за допомогою Kerberos (Kerberos використовується для надійного управління обліковими даними) та LDAP (LDAP використовується для зберігання достовірної інформації про облікові записи, наприклад, до того, до якого вони мають доступ).
Зовнішня автентифікація - це автентифікація, яка підтримується Kerberos та LDAP. Apache Cassandra не підтримує зовнішню аутентифікацію.
Тільки корпорація datastax підтримує зовнішню аутентифікацію за допомогою Kerberos та LDAP. Тоді як внутрішня автентифікація підтримується як в Apache Cassandra, так і в Datastax enterprise.
Налаштування автентифікації та авторизації
У Кассандрі за замовчуванням параметри автентифікації та авторизації відключені. Вам потрібно налаштувати файл 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 та зміни пароля за замовчуванням.
alter user cassandra with password 'newpassword';
Створити нового користувача
Нові акаунти можна створити за допомогою акаунта "Кассандра".
Для створення нового користувача, логіна, вказується пароль разом із тим, є користувач суперкористувачем чи ні. Тільки користувач 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
Існують такі типи дозволів, які можна надати користувачеві.
- ВСІ
- ЗМІНИ
- ДОЗВОЛИТИСЯ
- СТВОРИТИ
- КРАПЛЕННЯ
- ЗМІНИТИ
- ВИБЕРІТЬ
Ось приклади призначення дозволу користувачеві.
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;
Налаштування брандмауера
Якщо брандмауер працює, наступні порти повинні бути відкриті для зв'язку між вузлами, включаючи деякі порти Кассандри. Якщо порти Кассандри не будуть відкриті, вузли Кассандри будуть діяти як автономний сервер баз даних, а не приєднуватися до кластера баз даних.
Клієнтські порти Кассандри
Номер порту |
Опис |
9042 |
Клієнтський порт Кассандри |
9160 |
Касандра Клієнт Порт Бережливість |
Порти Cassandra Internode
Номер порту |
Опис |
7000 |
Кластерна комунікація міжвузлів Кассандри |
7001 |
Касандра SSL міжвузловий кластерний зв’язок |
7199 |
Порт моніторингу Cassandra JMX |
Громадські порти
Номер порту |
Опис |
22 |
Порт SSH |
8888 |
Веб-сайт OpsCenter. Запит http браузера. |
Порти Cassandra OpsCenter
Номер порту |
Опис |
61620 |
Порт моніторингу OpsCenter. |
61621 |
Порт агента Opscenter |
Увімкнення автентифікації JMX
За замовчуванням налаштування Cassandra, доступ до JMX можна отримати лише з локального хосту. Якщо ви хочете отримати віддалений доступ до 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 для користувача, з яким ви запускаєте Кассандру, та змініть дозвіл лише на читання
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 для забезпечення безпеки. Крім того, це також пояснює, як можна створити новий обліковий запис користувача, призначення дозволу, налаштування брандмауера тощо.