Как включить аутентификацию Cassandra

По умолчанию Cassandra устанавливается без включенной аутентификации. Это означает, что любой пользователь, имеющий доступ к вашему серверу Cassandra, может запрашивать базу данных Cassandra без какой-либо аутентификации. Вы можете включить аутентификацию после установки Edge или в процессе установки.

Если вы решите включить аутентификацию в Cassandra, не указывая собственные учетные данные, будут использоваться следующие учетные данные по умолчанию:

  • username = 'cassandra'
  • password = 'cassandra'

Вы можете использовать этот аккаунт, задать для него другой пароль или создать новый аккаунт пользователя Cassandra. Добавляйте, удаляйте и изменяйте пользователей с помощью операторов Cassandra CREATE/ALTER/DROP USER.

Дополнительную информацию можно найти в статье Команды оболочки Cassandra SQL.

Как включить аутентификацию Cassandra во время установки

Вы можете включить аутентификацию Cassandra во время установки. Однако, хотя вы можете включить аутентификацию при установке Cassandra, вы всегда должны использовать имя пользователя и пароль cassandra по умолчанию (‘cassandra’:’cassandra’) во время установки. Если вы хотите использовать учетные данные Cassandra, отличные от стандартных, после установки вам нужно будет повторно включить аутентификацию Cassandra, следуя инструкциям, приведенным здесь.

Если вы хотите включить аутентификацию Cassandra во время новой установки Cassandra, включите свойства ниже в файл конфигурации для всех узлов Cassandra:

CASS_AUTH=y
CASS_USERNAME=cassandra
CASS_PASSWORD=cassandra

Затем будет установлена база данных Cassandra с включенной аутентификацией и учетными данными cassandra:cassandra по умолчанию.

После завершения первоначальной установки вы можете выполнить одно или несколько из следующих действий:

Компоненты Edge, которые подключаются к Cassandra

Следующие компоненты Edge имеют доступ к Cassandra:

  • Сервер управления
  • Message Processor
  • Маршрутизаторы
  • Серверы Qpid
  • Серверы Postgres

Установка компонентов Edge при включенной аутентификации Cassandra

Если при первой установке этих компонентов Edge у вас включена аутентификация Cassandra, вам необходимо указать следующие настройки в файле конфигурации для автоматической установки:

CASS_AUTH=Y
CASS_USERNAME=<valid username in Cassandra>
CASS_PASSWORD=<password for the above username>

Вы можете изменить учетные данные Cassandra после установки Cassandra. Однако если вы уже установили Management Server, Message Processor, Router, серверы Qpid или Postgres, вам также необходимо обновить эти компоненты, чтобы использовать новые учетные данные, как описано в следующем разделе.

Обновите компоненты Edge, которые подключаются к Cassandra

Используйте следующую процедуру, чтобы обновить все компоненты Edge, которые взаимодействуют с Cassandra, с помощью новых учетных данных. Обратите внимание, что этот шаг необходимо выполнить до обновления учетных данных Cassandra:

  1. На узле Management Server выполните следующую команду:
    /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 characters.

    Эта команда автоматически перезапускает сервер управления.

  2. Повторите шаг 1 для каждого из следующих сервисов:
    • Все процессоры сообщений
    • Все маршрутизаторы
    • Все серверы Qpid (edge-qpid-server)
    • Серверы Postgres (edge-postgres-server)

    Повторяя шаг 1 для каждого сервиса, заменяйте edge-management-server в команде выше на название нужного сервиса. Например, для сервиса Router используйте следующую команду:

    /opt/apigee/apigee-service/bin/apigee-service edge-router store_cassandra_credentials -u cassandra -p cassandra

    Как включить аутентификацию Cassandra после установки

    В следующих разделах объясняется, как включить аутентификацию Cassandra после установки.

    Как включить аутентификацию Cassandra в конфигурации с одним центром обработки данных

    Для настройки Apigee на основе одного центра обработки данных, в котором уже установлена Cassandra, вы можете:

    Примечание. Пользователь Cassandra – это специальный пользователь в Cassandra. Для аутентификации с использованием этого пользователя требуется согласованность QUORUM. Подробнее об уровнях согласованности Cassandra…

    Как включить аутентификацию Cassandra при наличии нескольких центров обработки данных

    При расширении центров обработки данных выполните действия, описанные в одном из следующих сценариев, в зависимости от того, какой из них соответствует вашей настройке.

    Сценарий 1. В существующем центре обработки данных включена аутентификация Cassandra

    Если аутентификация Cassandra уже включена в существующем центре обработки данных с учетными данными cassandra:cassandra по умолчанию, выполните следующие действия:

    1. Настройте новый центр обработки данных с учетными данными Cassandra:Cassandra по умолчанию и CASS_AUTH=y. Подробнее о том, как включить аутентификацию Cassandra в первый раз…
    2. Установите компоненты Edge в новом центре обработки данных, используя учетные данные Cassandra по умолчанию.

    Если аутентификация Cassandra уже включена в существующем центре обработки данных с учетными данными, отличными от стандартных, выполните следующие действия:

    1. Настройте новый центр обработки данных с учетными данными Cassandra:Cassandra по умолчанию и CASS_AUTH=y. Подробнее о том, как включить аутентификацию Cassandra в первый раз…
    2. Выполните действия из раздела Как включить аутентификацию Cassandra в первый раз, чтобы повторно использовать учетные данные из существующего центра обработки данных (если в нем используются учетные данные, отличные от заданных по умолчанию).
    3. Установите компоненты Edge в новом центре обработки данных, используя учетные данные Cassandra, отличные от заданных по умолчанию.

    Сценарий 2. В существующем центре обработки данных не включена аутентификация Cassandra

    Если аутентификация Cassandra не включена, выполните следующие действия:

    1. Настройте новый центр обработки данных без аутентификации Cassandra.
    2. Выполните инструкции из раздела Как включить аутентификацию Cassandra в первый раз, чтобы включить аутентификацию Cassandra в кластере (после расширения).
    3. Обновите компоненты Edge, которые подключаются к Cassandra, следуя этим инструкциям.

    Как включить аутентификацию Cassandra в первый раз

    Чтобы включить аутентификацию Cassandra в первый раз или создать новое имя пользователя и пароль Cassandra, выполните следующие действия:

    1. Создайте файл конфигурации для автоматической установки со следующим содержимым:
      # 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 # Default value is cassandra
      # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
      CASS_PASSWORD=cassandra # Default value is cassandra
      
      # 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 change details of the default cassandra user(‘cassandra’)
      CASS_EXISTING_USERNAME=cassandra  # The default username is cassandra
      # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
      CASS_EXISTING_PASSWORD=cassandra  # The default password is cassandra
      
      # Cassandra port
      CASS_PORT=9042 # The default port is 9042.
    2. Войдите в первый узел Cassandra и выполните следующую команду:
      apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG

      При необходимости вы можете передать свойства в качестве аргументов команды в скрипт, как показано в следующем примере:

      CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=cassandra CASS_EXISTING_PASSWORD=cassandra CASS_USERNAME=cassandra CASS_PASSWORD=cassandra  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.
    3. Повторите шаги 1 и 2 на всех узлах Cassandra по очереди.

    Как изменить учетные данные Cassandra после установки Cassandra

    Чтобы изменить учетные данные Cassandra после установки Cassandra:

    1. Войдите в любой узел Cassandra, используя инструмент cqlsh и учетные данные по умолчанию. Вам нужно изменить пароль только на одном узле, и он будет передан на все узлы Cassandra в кольце:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra

      Где:

      1. cassIP – IP-адрес узла Cassandra.
      2. 9042 – порт Cassandra по умолчанию.
      3. Пользователь по умолчанию – cassandra.
      4. Пароль по умолчанию – cassandra. Если вы меняли пароль ранее, используйте текущий пароль. Если пароль содержит специальные символы, заключите его в одинарные кавычки.
    2. Чтобы обновить пароль, выполните следующую команду в командной строке cqlsh>:
      ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
    3. Выйдите из инструмента cqlsh, как показано в примере ниже.
      exit
    4. Если вы ещё не установили сервер управления, процессоры сообщений, маршрутизаторы, серверы Qpid или Postgres, задайте в файле конфигурации следующие свойства, а затем установите эти компоненты:
      CASS_USERNAME=cassandra
      CASS_PASSWORD=NEW_PASSWORD
    5. Если вы уже установили сервер управления, процессоры сообщений, маршрутизаторы, серверы Qpid или Postgres, то ознакомьтесь с инструкциями по обновлению этих компонентов для использования нового пароля в статье Сброс паролей Edge.