Быстрое начало работы

Демонстрационная конфигурация — самый простой способ начать работу с плагином безопасности (Security) Подсистемы. Подсистема поставляется с набором полезных скриптов, включая install_demo_configuration.sh (или install_demo_configuration.bat – для Windows).

Этот скрипт находится в директории plugins/opensearch-security/tools и выполняет следующие действия:

создает демонстрационные сертификаты для шифрования TLS как на транспортном, так и на REST уровнях;

настраивает демонстрационных пользователей, роли и сопоставления ролей;

настраивает плагин безопасности на использование внутренней базы данных для аутентификации и авторизации;

обновляет файл opensearch.yml базовой конфигурацией, необходимой для запуска кластера.

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

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

Перед запуском скрипта install_demo_configuration.sh необходимо создать переменную среды с именем OPENSEARCH_INITIAL_ADMIN_PASSWORD и надежным паролем. Этот пароль будет использоваться для аутентификации пользователя-администратора в Подсистеме. После этого можно выполнить install_demo_configuration.sh и ввести необходимые данные в соответствии с подсказками в окне терминала.

После выполнения скрипта нужно запустить Подсистему и протестировать конфигурацию, выполнив следующую команду:

curl -k -XGET -u admin:<password> https://<opensearch-ip>:9200

В результате должно быть получено примерно следующее:

{
"name" : "smoketestnode",
"cluster_name" : "opensearch",
"cluster_uuid" : "0a5DYAk0Rbi14wqT3TqMiQ",
"version" : {
"distribution" : " opensearch ",
"number" : "2.18.0",
"build_type" : "rpm",
"build_hash" : "7ec678d1b7c87d6e779fdef94e33623e1f1e2647",
"build_date" : "2024-10-31T19:11:45.959566657Z ",
"build_snapshot" : false,
"lucene_version" : "9.10.0",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
{
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Настройка панелей мониторинга Подсистемы

Чтобы быстро начать работу с "Панелями мониторинга" Подсистемы, можно добавить следующую конфигурацию в 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]
Use this setting if you are running opensearch-dashboards without https
opensearch_security.cookie.secure: false

Имеется возможность запустить двоичный файл или службу в зависимости от того, какой метод использовался для установки самой Подсистемы и "Панелей мониторинга" Подсистемы.

Следует обратить внимание, что при использовании двоичного формата необходимо указать --no-base-path в команде "yarn start", чтобы задать URL без базового пути. Если он не задан, будет добавлен случайный базовый путь из трех букв.

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

[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.

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

Существует три способа добавления пользователей, ролей и других конфигураций, связанных с безопасностью:

  • обновление соответствующих файлов конфигурации (internal_users.yml – для добавления/обновления/удаления пользователей);
  • использование API;
  • использование пользовательского интерфейса "Панелей мониторинга" Подсистемы.

Примечание – Файлы конфигурации плагина Security находятся в директории config/opensearch-security.

Чтобы добавить пользователя "Панелей мониторинга" Подсистемы, нужно обновить файл internal_users.yml со следующими настройками:

test-user:
hash: "$2y$12$CkxFoTAJKsZaWv/m8VoZ6ePG3DBeBTAvoo4xA2P21VCS9w2RYumsG"
backend_roles:
– "test-backend-role"
– "kibanauser"
description: "test user"

Строка hash генерируется с помощью скрипта hash.sh, расположенного в директории plugins/opensearch-security/tools/. В данном случае использовался хеш строки secretpassword.

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

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

Роли , содержащиеся в roles.yml, используют следующую структуру:

<rolename>:
cluster_permissions:
 <cluster permission>
index_permissions:
 index_patterns:
 <index pattern>
allowed_actions:
 <index permissions>

С помощью этой структуры можно настроить новую роль для предоставления доступа к определенным индексам, как в следующем примере:

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

Следует обратить внимание, что в этом примере не перечислены разрешения кластера, поскольку они предоставляются встроенной ролью kibana_user, которая уже сопоставлена с серверной ролью kibanauser.

Сопоставление пользователей с ролями

Когда пользователь входит в Подсистему, его необходимо сопоставить с соответствующей ролью, чтобы получить правильные разрешения. Это сопоставление выполняется с помощью файла roles_mapping.yml со следующей структурой:

<role_name>:
users:
 <username>
 ...
backend_roles:
 <rolename>

Чтобы сопоставить вновь созданного пользователя test-user с ролью human_resources, можно использовать следующую конфигурацию в файле roles_mapping.yml:

human_resources:
backend_roles:
– test-backend-role

В качестве дополнительного примера файл roles_mappings.yml содержит роль kibanauser на стороне сервера, которая сопоставлена с ролью kibana_user:

kibana_user:
reserved: false
backend_roles:
– "kibanauser"
description: "Maps kibanauser to kibana_user"

Загрузка конфигурации в индекс безопасности

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

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

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