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

Edge для частного облака версии 4.17.05

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

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

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

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

Дополнительную информацию можно найти на странице http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/cqlCommandsTOC.html.

Как включить аутентификацию 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:

  • Сервер управления
  • Процессоры сообщений
  • Маршрутизаторы
  • Серверы 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. Если вы ещё не установили сервер управления, процессоры сообщений, маршрутизаторы, серверы Qpid, серверы Postgres или стек BaaS, задайте следующие свойства в файле конфигурации, а затем установите эти компоненты:
    CASS_USERNAME=cassandra
    CASS_PASSWORD=NEW_PASSWORD
  5. Если вы уже установили сервер управления, процессоры сообщений, маршрутизаторы, серверы Qpid, серверы Postgres или BaaS Stack, ознакомьтесь с разделом Как сбросить пароли Edge, чтобы узнать, как обновить эти компоненты и использовать новый пароль.

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

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

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

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

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


    Эта команда автоматически перезапускает сервер управления.
  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 Stack интерпретирует значение как незашифрованное.

      Примечание. У каждого узла стека BaaS есть собственный уникальный ключ, используемый для шифрования пароля. Поэтому зашифрованное значение необходимо генерировать на каждом узле 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, и он будет передан всем узлам в кольце:
    /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