Я изо всех сил пытался настроить AWS ES и использовать kibana.Я следил за документами Amazon Elasticsearch Service на AWS .
Когда я добираюсь до Шаг 2. Загрузка данных в домен Amazon ES для индексации , мне не удалось запустить curl -XPUT elasticsearch_domain_endpoint/movies/_doc/1 -d '{"director": "Burton, Tim", "genre": ["Comedy","Sci-Fi"], "year": 1996, "actor": ["Jack Nicholson","Pierce Brosnan","Sarah Jessica Parker"], "title": "Mars Attacks!"}' -H 'Content-Type: application/json'
, как указано в документации, получая ошибку {"Message":"User: anonymous is not authorized to perform: es:ESHttpPut"}
.
Я установил политику на ES следующим образом:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::my_id:user/my_iam_user"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-west-2:my_id:domain/my-domain/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-west-2:my_id:domain/my-domain/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [my_ips]
}
}
}
]
}
Я получил вышеуказанные IP-адреса, вызвав ifconfig | grep "inet " | grep -v 127.0.0.1
из терминала, нажав checkip.amazonaws.com
и проверив Инструменты разработчика -> Сеть включенаchrome (это 3 разных IP-адреса, и я добавил их все).
Я также добавил следующую роль для своего пользователя IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"es:DescribeReservedElasticsearchInstanceOfferings",
"es:DescribeReservedElasticsearchInstances",
"es:ListDomainNames",
"es:PurchaseReservedElasticsearchInstance",
"es:DeleteElasticsearchServiceRole",
"es:ListElasticsearchInstanceTypes",
"es:DescribeElasticsearchInstanceTypeLimits",
"es:ListElasticsearchVersions"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "es:*",
"Resource": "arn:aws:es:us-west-2:my_id:domain/my-domain"
}
]
}
Я настроил AWS CLI на своей машинеи я могу получить правильный результат через aws es describe-elasticsearch-domain --domain my-domain
.
Тем не менее, мне не удалось позвонить curl XPUT
выше и не удалось получить доступ к кибане по той же причине {"Message":"User: anonymous is not authorized to perform: es:ESHttpPut"}
Вотпары статей, которые я прочитал, прежде чем поднять вопрос здесь:
- https://aws.amazon.com/premiumsupport/knowledge-center/anonymous-not-authorized-elasticsearch/?nc1=h_ls
- https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-ac.html
- https://aws.amazon.com/cn/blogs/database/set-access-control-for-amazon-elasticsearch-service/
- Правильная политика доступа для Amazon Elastic Search Cluster
- https://aws.amazon.com/cn/blogs/security/how-to-control-access-to-your-amazon-elasticsearch-service-domain/
И все равно не удалось заставить его работать.
Может кто-нибудь любезноНе могли бы вы пройти через весь процесс настройки AWS ES вручную и возможности манипулировать им через AWS CLI, а также через кибану в браузере?Я был бы очень признателен, если бы это было подробное пошаговое руководство вместо того, чтобы выдавать документацию по aws.Большое вам спасибо.