#amazon-web-services #kibana #opensearch #opensearch-dashboards
Вопрос:
Я использую aws OpenSearch для просмотра анализа данных в реальном времени.
Я использую следующие роли, чтобы предоставить моему пользователю доступ только для чтения к панели мониторинга, как указано здесь
- kibana_user
- kibana_read_only
- read_only_index
Но все же пользователь может редактировать панель мониторинга из-за некоторых разрешений в роли «kibana_user». итак, я попытался создать дублирующую роль, используя встроенные функции OpenSearch, и удалил разрешение «Управление и удаление» из дублированной роли и назначил эту роль моему пользователю. Но на этот раз пользователь не может просматривать панель мониторинга и список панелей мониторинга, даже если я не удаляю разрешение «Управление и удаление», я получаю следующую ошибку в браузере
нет разрешений для [индексы: данные / чтение / поиск] и пользователя [name=test-user-1, backend_roles=[], requestedTenant=]: security_exception
Я попытался предоставить «индексы: данные / чтение / поиск» это разрешение на роль и многое другое, но это не сработало. какие-либо решения
Ответ №1:
Я использовал:
kibana_all_read
read
Похоже, это работает, они могут перевести панель мониторинга в режим редактирования, но не могут ее сохранить.
Ответ №2:
Стандартный подход для пользователя панели мониторинга, доступного только для чтения, заключается в следующем:
- Создайте пользовательскую роль для этого типа пользователей:
my-readonly-role
. - Добавьте
cluster_composite_ops_ro
разрешение кластера. - Добавьте любые нужные шаблоны индексов, чтобы ограничить доступ:
logs.*
. - Добавьте привилегии индекса для доступа на чтение:
read
,indices:admin/resolve/index
. - Добавление шаблонов клиентов:
My-Tenant
- Добавить разрешения клиента:
read
,write
- Сопоставьте следующие роли желаемым пользователям:
my-readonly-role
иopensearch_dashboards_read_only
Примечание: Это было протестировано на OpenSearch версии 1.1.
Вот блок API, который представляет описанные выше шаги:
{
"cluster_permissions": ["cluster_composite_ops_ro"],
"index_permissions": [
{
"index_patterns": ["logs.*"],
"dls": "",
"fls": [],
"masked_fields": [],
"allowed_actions": ["read", "indices:admin/resolve/index"]
}
],
"tenant_permissions": [
{
"tenant_patterns": ["My-Tenant"],
"allowed_actions": ["read", "write"]
}
]
}
Комментарии:
1. Это работает для aws public domain opensearch, но не работает для домена opensearch, созданного в vpc
2. Мы развернули это в частном VPC, и это работает просто отлично. Необходимо будет учитывать настроенный вами метод аутентификации, но это выходит за рамки первоначального вопроса.