Фон
Проводка
У меня есть кластер Elasticsearch в AWS Elasticsearch Service.Включена конечная точка Kibana.Cognito предоставляет роль AWS на основе группы пользователей.
Группы Cognito и роли AWS
Роль AWS, назначенная группе viewer
AWS Cognito, равна arn:aws:iam:123:role/kibana-viewer
.
AWS Cognito присвоила группе AWS Cognito роль admin
: arn:aws:iam:123:role/kibana-admin
.
Желаемое ограничение
Только группа admin
должна иметь доступ к определенному индексушаблон при использовании Kibana для просмотра данных.Шаблон Elasticsearch с ограниченным индексом: secret-*
.
Группа viewer
должна , а не иметь возможность доступа к secret-*
через Kibana.
Вопрос
Как можно запретить только роли arn:aws:iam:123:role/kibana-viewer
доступ к шаблону индекса secret-*
в кластере AWS Elasticsearch?
Что я пробовал
Первая попытка
Настройкаследующее утверждение в политике доступа:
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam:123:role/kibana-viewer"
},
"Action": "es:*",
"Resource": "arn:aws:es:my-region:123:domain/my-domain/*"
}
viewer
смог получить доступ к индексу secret-1
.
Вторая попытка
Установка вышеуказанного Resource
вarn:aws:es:my-region:123:domain/my-domain/secret-*
, viewer
не может войти в систему из-за:
User: x:x:x::xx:x is not authorized to perform: es:ESHttpGet
Третья попытка
Установка обоих операторов:
{
"Effect": "Deny",
"Principal": {
"AWS": "arn:aws:iam:123:role/kibana-viewer"
},
"Action": "es:ESHttpGet",
"Resource": "arn:aws:es:my-region:123:domain/my-domain/secret-*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam:123:role/kibana-viewer"
},
"Action": "es:ESHttpGet",
"Resource": "arn:aws:es:my-region:123:domain/my-domain/*"
}
A viewer
можетвойдите в Kibana, но не видите никаких данных из-за ошибки 403
при вызове API _plugin/kibana/api/saved_objects/?type=index-pattern&per_page=10000
.