По умолчанию Cassandra устанавливается без включенной аутентификации. Это означает, что любой может получить доступ к Кассандре. Вы можете включить аутентификацию после установки Edge или в рамках процесса установки.
Внимание: Apigee рекомендует использовать пользователя Cassandra не по умолчанию (пользователя, отличного от cassandra ), чтобы включить аутентификацию Cassandra для использования в рабочей среде. См. раздел Включение аутентификации Cassandra после установки . Использование пользователя Cassandra по умолчанию ( cassandra ) требует поддержания согласованности кворума во всем кластере. Это означает, что для успешной аутентификации запроса Cassandra требуется активный кворум узлов в кластере. Если один центр обработки данных Cassandra не работает, кворум узлов может быть недоступен для успешной аутентификации запроса в рабочем центре обработки данных. Чтобы избежать этой проблемы, используйте пользователя Cassandra не по умолчанию .
Вы можете добавлять, удалять и изменять роли с помощью операторов Cassandra CREATE
/ ALTER
/ DROP ROLES
. Для получения дополнительной информации см. следующее:
Некоторые общие соображения В тот момент, когда вы включаете аутентификацию Cassandra, Cassandra автоматически создает суперпользователя cassandra по умолчанию (с паролем cassandra ). Это широко известный суперпользователь, и вам не следует использовать этого пользователя для своих производственных нужд. Кроме того, аутентификация через этого суперпользователя требует согласованности кворума. Таким образом, все подключения к Cassandra, аутентифицирующиеся через этого пользователя, требуют более строгой согласованности, что приводит к снижению производительности и снижению отказоустойчивости. Типичный рабочий процесс включает в себя включение аутентификации в Cassandra с передачей пользовательского имени пользователя и пароля через файл конфигурации. При этом будут созданы пользовательские пользователь и пароль, которые вы сможете безопасно использовать для своих нужд, а аутентификация через таких пользователей не имеет ограничений согласованности кворума. Помните, что даже если был создан пользовательский пользователь, Cassandra по-прежнему создает суперпользователя cassandra по умолчанию, и ваш кластер Cassandra доступен через суперпользователя. Обычно вам следует использовать команду ALTER ROLE , чтобы изменить пароль этого пользователя cassandra на пароль, отличный от cassandra по умолчанию, после того, как аутентификация Cassandra была успешно включена по всем направлениям в Apigee. Сохраните этот пароль для дальнейшего использования. НЕ следует менять пароль роли, которую компоненты Edge-* используют для аутентификации, поскольку это немедленно приведет к сбою в работе службы. Вместо этого вам следует создать нового пользователя, изменить компоненты Edge-* для использования нового пользователя и после завершения удалить старого пользователя с помощью команды DROP ROLE . Чтобы изменить роль, используемую компонентами Edge-* для аутентификации Cassandra, выполните следующие действия: Выполните действия, описанные в разделе « Включение аутентификации» , чтобы создать нового пользователя. Обратите внимание: если аутентификация уже включена в вашем кластере и вы изменили пароль пользователя cassandra , вам потребуется передать комбинацию имени пользователя и пароля существующего пользователя через CASS_EXISTING_USERNAME
и CASS_EXISTING_PASSWORD
. После завершения подтвердите с помощью cqlsh, что вы можете подключиться к Cassandra как через старого, так и через нового пользователя. Укажите всем компонентам Edge-* использовать вновь созданного пользователя для подключения к Cassandra, следуя инструкциям в разделе «Обновление компонентов Edge, которые подключаются к Cassandra» . Наконец, когда все компоненты используют нового пользователя для связи с Cassandra, вы можете удалить старого пользователя с помощью команды DROP ROLE
. Обратите внимание, что роль cassandra по умолчанию не следует удалять. Вы можете удалить любые специально созданные роли, которые не используются компонентами Edge-* для взаимодействия с Cassandra. Не забудьте обновить функциональное имя пользователя и пароль Cassandra в файле конфигурации , который вы используете для установки или обновления компонентов Edge. Это позволит устранить или свести к минимуму любые сбои во время периферийных операций. Включить аутентификацию Cassandra во время установки Вы можете включить аутентификацию Cassandra во время установки.
ПРИМЕЧАНИЕ. Используйте эту процедуру при установке Cassandra с использованием параметров «-pc», «-p ds», «-p sa», «-p aio», «-p asa» и «-p ebp». Чтобы включить аутентификацию Cassandra во время установки, включите свойство CASS_AUTH
в файл конфигурации для всех узлов Cassandra:
CASS_AUTH=y # The default value is n. Следующие компоненты Edge получают доступ к Cassandra:
Сервер управления Процессоры сообщений Маршрутизаторы Qpid-серверы Серверы Postgres При установке этих компонентов необходимо установить имя пользователя и пароль в файле конфигурации:
CASS_USERNAME=cassandra_username
CASS_PASSWORD=cassandra_password Примечание. Хотя вы можете использовать имя пользователя по умолчанию ( 'cassandra'
) и пароль ( 'cassandra'
), Apigee рекомендует вам выбрать другое имя пользователя и пароль для производственного использования. Вы можете изменить учетные данные Cassandra после установки Cassandra. Однако если вы уже установили сервер управления, процессоры сообщений, маршрутизаторы, серверы Qpid или серверы Postgres, вам также необходимо обновить эти компоненты, чтобы использовать новые учетные данные.
Чтобы изменить учетные данные Cassandra после установки Cassandra:
Войдите в любой узел Cassandra, используя инструмент cqlsh
и учетные данные по умолчанию. Вам нужно изменить пароль только на одном узле, и он будет транслироваться на все узлы Cassandra в кольце:
/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password Где:
cassIP — IP-адрес узла Cassandra. 9042 — это порт Cassandra по умолчанию. Выполните следующую команду в приглашении cqlsh>, чтобы обновить пароль :
ALTER ROLE <username> WITH PASSWORD=''; Выйдите из инструмента cqlsh
, как показано в следующем примере:
exit Если вы еще не установили сервер управления, процессоры сообщений, маршрутизаторы, серверы Qpid или серверы Postgres, установите следующие свойства в файле конфигурации, а затем установите эти компоненты:
CASS_USERNAME=cassandra_username
CASS_PASSWORD=new_cassandra_password Если вы уже установили сервер управления, процессоры сообщений, маршрутизаторы, серверы Qpid или серверы Postgres, см. раздел «Сброс паролей Edge» , чтобы узнать о процедуре обновления этих компонентов для использования нового пароля. Включить пост-установку аутентификации Cassandra Чтобы включить аутентификацию после установки:
Обновите компоненты Edge, которые подключаются к Cassandra. Используйте следующую процедуру, чтобы обновить все компоненты Edge, которые взаимодействуют с Cassandra, с использованием новых учетных данных. Обратите внимание, что вы выполняете этот шаг до того, как фактически обновите учетные данные Cassandra:
На узле Сервер управления выполните следующую команду:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server
store_cassandra_credentials -u cassandra_username -p cassandra_password При желании вы можете передать команде файл, содержащий новое имя пользователя и пароль:
apigee-service edge-management-server store_cassandra_credentials -f configFile Где configFile содержит следующее:
CASS_USERNAME=cassandra_username # Default is cassandra
CASS_PASSWORD='cassandra_password ' # Default is cassandra; wrap in single quotes if it includes special chars Эта команда автоматически перезапускает Сервер управления.
Для каждой из следующих служб повторите шаг 1: Все процессоры сообщений Все маршрутизаторы Все серверы Qpid (edge-qpid-server) Серверы Postgres (edge-postgres-server) При повторении шага 1 для каждой службы замените edge-management-server
в приведенной выше команде на соответствующее имя службы. Например, когда вы выполняете шаг для службы маршрутизатора, используйте следующую команду:
/opt/apigee/apigee-service/bin/apigee-service edge-router
store_cassandra_credentials -u cassandra -p cassandra Включить аутентификацию Используйте следующую процедуру, чтобы включить аутентификацию Cassandra и установить имя пользователя и пароль:
Создайте файл автоматической конфигурации с содержимым, показанным ниже:
# Specify IP address or DNS name of cassandra node
IP1=192.168.1.1
IP2=192.168.1.2
IP3=192.168.1.3
# Must resolve to IP address or DNS name of host
HOSTIP=$(hostname -i)
# Set to ‘y’ to enable Cassandra authentication.
CASS_AUTH=y # Possible values are ‘y/n’
# Cassandra username. If it does not exist, this user would be created as a SUPERUSER
CASS_USERNAME=cassandra_username # Default value is cassandra - don't use for production
# Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
CASS_PASSWORD=cassandra_password # Default value is cassandra - don't use for production
# Space-separated IP/DNS names of the Cassandra hosts
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"
# Username of an existing C* user. Only needed if you have disabled or changed details of the default cassandra user(‘cassandra’)
CASS_EXISTING_USERNAME=existing_cassandra_username
# Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
CASS_EXISTING_PASSWORD=existing_cassandra_password
# Cassandra port
CASS_PORT=9042 # The default port is 9042. Войдите на первый узел Cassandra и выполните следующую команду:
apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG При желании вы можете передать свойства в качестве аргументов команды сценарию, как показано в следующем примере:
CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=existing_cassandra_username CASS_EXISTING_PASSWORD=existing_cassandra_password CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password CASS_HOSTS="192.168.1.1:1,1 192.168.1.2:1,1 192.168.1.3:1,1" apigee-service apigee-cassandra enable_cassandra_authentication Примечания:
Для учетных данных Cassandra по умолчанию приведенная выше команда включает аутентификацию Cassandra и перезапускает Cassandra. Для учетных данных, отличных от заданных по умолчанию, команда также изменяет коэффициент репликации, создает суперпользователя и запускает восстановление в system_auth keyspace
. Повторите шаги 1 и 2 на всех узлах Cassandra.