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

Edge for Private Cloud версии 4.17.09

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

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

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

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

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

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

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

Примечание. Используйте эту процедуру при установке Cassandra с помощью параметров -p c, -p ds, -p sa, -p aio, -p asa и -p ebp.

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

CASS_AUTH=y # The default value is n.

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

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

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

CASS_USERNAME=cassandra 
CASS_PASSWORD=cassandra

Вы можете изменить учетные данные Cassandra после установки Cassandra. Однако если вы уже установили сервер управления, процессоры сообщений, маршрутизаторы, серверы Qpid, серверы Postgres или стек BaaS, вам также необходимо обновить эти компоненты, чтобы использовать новые учетные данные.

Чтобы изменить учетные данные 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>:
    cqlsh> ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
  3. Выйдите из инструмента cqlsh:
    cqlsh> exit
  4. Если вы ещё не установили Management Server, Message Processor, Router, серверы Qpid, серверы Postgres или BaaS Stack, задайте в файле конфигурации следующие свойства, а затем установите эти компоненты:
    CASS_USERNAME=cassandra
    CASS_PASSWORD=NEW_PASSWORD
  5. Если вы уже установили сервер управления, процессоры сообщений, маршрутизаторы, серверы Qpid, серверы Postgres или стек BaaS, то ознакомьтесь с процедурой обновления этих компонентов для использования нового пароля в статье Сброс паролей Edge.

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

Чтобы включить аутентификацию:

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

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

  1. На узле Management Server выполните следующую команду:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server store_cassandra_credentials -u CASS_USERNAME -p CASS_PASSWORD

    При необходимости вы можете передать команде файл, содержащий новые имя пользователя и пароль:
    > apigee-service edge-management-server store_cassandra_credentials -f configFile

    Где configFile содержит следующее:
    CASS_USERNAME=cassandra
    CASS_PASSWORD=CASS_PASSWROD


    Эта команда автоматически перезапускает Management Server.
  2. Повторите шаг 1 на следующих устройствах:
    • Все процессоры сообщений
    • Все маршрутизаторы
    • Все серверы Qpid (edge-qpid-server)
    • Серверы Postgres (edge-postgres-server)
  3. На узле BaaS Stack для версии 4.16.05.04 и более поздних:
    1. Выполните следующую команду, чтобы сгенерировать зашифрованный пароль:
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid secure_password

      Эта команда запрашивает пароль в виде обычного текста и возвращает зашифрованный пароль в следующем формате:
      SECURE:ae1b6dedbf6b26aaab8bee815a910737c1c15b55f3505c239e43bc09f8050
    2. Задайте следующие токены в файле /opt/apigee/customer/application/usergrid.properties. Если файла нет, создайте его:
      usergrid-deployment_cassandra.username=cassandra
      usergrid-deployment_cassandra.password=SECURE:ae1b6dedbf6b26aaab8bee815a910737c1c15b55f3505c239e43bc09f8050


      В этом примере используется имя пользователя по умолчанию для Cassandra. Если вы изменили имя пользователя, задайте соответствующее значение для параметра usergrid-deployment_cassandra.username.

      Убедитесь, что вы добавили префикс SECURE: к паролю. В противном случае стек BaaS интерпретирует значение как незашифрованное.

      Примечание. У каждого узла BaaS Stack есть собственный уникальный ключ, используемый для шифрования пароля. Поэтому вам необходимо сгенерировать зашифрованное значение на каждом узле BaaS Stack отдельно.
    3. Измените владельца файла usergrid.properties на пользователя apigee:
      > chown apigee:apigee /opt/apigee/customer/application/usergrid.properties
    4. Настройте узел Stack:
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
    5. Перезапустите стек BaaS:
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
    6. Повторите эти действия для всех узлов BaaS Stack.

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

  1. Войдите в первый узел Cassandra.
  2. Выполните следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra
      enable_cassandra_authentication -e y

    Эта команда включает аутентификацию и перезапускает Cassandra.

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

    Место

    • cassIP – IP-адрес узла Cassandra.
    • 9042 – порт Cassandra.
    • Пользователь по умолчанию – cassandra.
    • Пароль по умолчанию – cassandra. Если вы меняли пароль ранее, используйте текущий пароль.
  5. Чтобы обновить пароль, выполните в командной строке cqlsh> следующую команду:
    ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
  6. Чтобы пространство ключей всегда было доступно, выполните в командной строке cqlsh> следующую команду: Для одного центра обработки данных:
    ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-1': '3'};
    Для двух центров обработки данных:
    ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-1': '3', 'dc-2': '3'};
  7. Выйти из инструмента "cqlsh":
    exit
  8. Выполните команду nodetool repair, чтобы убедиться, что изменения применены ко всем узлам Cassandra:
    /opt/apigee/apigee-cassandra/bin/nodetool repair system_auth