Начало работы с безопасностью в OpenSearch

Демонстрационная конфигурация безопасности и настройка демонстрационной конфигурации

Демонстрационная конфигурация безопасности

Наиболее простой способ начать работу с безопасностью OpenSearch - использовать демонстрационную конфигурацию. OpenSearch включает полезные скрипты, в том числе:

  • install_demo_configuration.sh (для Linux/macOS)
  • install_demo_configuration.bat (для Windows)

Расположение скрипта:
plugins/opensearch-security/tools/

Действия скрипта:

  1. Создает демонстрационные сертификаты для TLS-шифрования на транспортном и REST-уровнях
  2. Настраивает тестовых пользователей, роли и привязки ролей
  3. Конфигурирует плагин безопасности для использования внутренней базы данных аутентификации
  4. Обновляет opensearch.yml базовой конфигурацией для запуска кластера

Важно! Демонстрационные сертификаты и пароли по умолчанию не должны использоваться в production. Перед развертыванием в продакшене их необходимо заменить на собственные.

Настройка демонстрационной конфигурации

Перед запуском скрипта:

  1. Установите переменную окружения с надежным паролем администратора:
    export OPENSEARCH_INITIAL_ADMIN_PASSWORD=<ваш_надежный_пароль>
    
  2. Проверьте надежность пароля с помощью инструмента Zxcvbn

Запуск скрипта:

./plugins/opensearch-security/tools/install_demo_configuration.sh

Проверка конфигурации:

curl -k -XGET -u admin:<пароль> https://<ip-opensearch>:9200

Ожидаемый ответ:

{
  "name": "smoketestnode",
  "cluster_name": "opensearch",
  "version": {
    "distribution": "opensearch",
    "number": "2.13.0"
  },
  "tagline": "The OpenSearch Project: https://opensearch.org/"
}

Настройка OpenSearch Dashboards

Добавьте в opensearch_dashboards.yml следующую конфигурацию:

opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

opensearch_security.multitenancy.enabled: true
opensearch_security.multitenancy.tenants.preferred: [Private, Global]
opensearch_security.readonly_mode.roles: [kibana_read_only]
opensearch_security.cookie.secure: false  # Отключено для HTTP

Запуск Dashboards:

yarn start --no-base-path

После запуска в логах появятся строки:

$$[info][listening] Server running at http://localhost:5601 [info][server][OpenSearchDashboards][http] http server running at http://localhost:5601$$

Доступ через браузер: http://localhost:5601
Логин: admin
Пароль: значение из OPENSEARCH_INITIAL_ADMIN_PASSWORD

Управление пользователями и ролями

1. Добавление пользователей

Способы:

  • Редактирование internal_users.yml
  • Использование API
  • Через интерфейс OpenSearch Dashboards

Пример добавления пользователя в internal_users.yml:

test-user:
  hash: "$2y$12$CkxFoTAJKsZaWv/m8VoZ6ePG3DBeBTAvoo4xA2P21VCS9w2RYumsG"
  backend_roles:
    - "test-backend-role"
    - "kibanauser"
  description: "Тестовый пользователь"

Генерация хеша пароля:

./plugins/opensearch-security/tools/hash.sh

Введите пароль (например, secretpassword), скопируйте полученный хеш.

2. Создание ролей

Формат roles.yml:

<имя_роли>:
  cluster_permissions:
    - <разрешение_кластера>
  index_permissions:
    - index_patterns:
        - <шаблон_индекса>
      allowed_actions:
        - <разрешения_индекса>

Пример роли для доступа к индексу:

human_resources:
  index_permissions:
    - index_patterns:
        - "humanresources"
      allowed_actions:
        - "READ"

3. Привязка пользователей к ролям

Формат roles_mapping.yml:

<имя_роли>:
  users:
    - <имя_пользователя>
  backend_roles:
    - <имя_роли>

Пример привязки:

human_resources:
  backend_roles:
    - "test-backend-role"

kibana_user:
  backend_roles:
    - "kibanauser"

Применение изменений конфигурации

После изменения файлов необходимо загрузить конфигурацию в security index:

./plugins/opensearch-security/tools/securityadmin.sh \
  -cd "config/opensearch-security" \
  -icl \
  -key "../kirk-key.pem" \
  -cert "../kirk.pem" \
  -cacert "../root-ca.pem" \
  -nhnv

Дальнейшие шаги

  1. Ознакомьтесь с Рекомендациями по безопасности OpenSearch
  2. Изучите Обзор конфигурации безопасности для кастомизации под ваши задачи

Примечания:

  • Все команды предполагают выполнение из корневой директории OpenSearch
  • Для production-окружений обязательно замените демонстрационные сертификаты
  • Регулярно обновляйте пароли администраторов