Я выбрал «Разрешить доступ к одной или нескольким учетным записям AWS или пользователям IAM».
Моя политика доступа
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::12345678910:user/elastic"
},
"Action": "es:*",
"Resource": "arn:aws:es:eu-west-1:123456789:domain/elastic-cluster/*"
}
]
}
Я создал профиль IAM -
user - elastic
password -hisdfdsfds
Access key Id - sdsfdssdfdsfdsfdsfsdfsd
Secret Access Key - sdsfdsfdsfsdfdsfds
когда я пытаюсь подключиться
$params = array();
$params['hosts'] = array (
'search-elastic-cluster-sdfsdfsdfs.eu-east.es.amazonaws.com:80',
);
$client = new Elasticsearch\Client($params);
Выдает следующую ошибку:
{"Message":"User: anonymous is not authorized to perform: es:ESHttpPost on resource: arn:aws:es:eu-west-1:dsfdsfsdfsdsd:domain/elastic-cluster/sdsfsfds/sdfdsfdssd/_search"}
Я обнаружил, что к нему можно получить доступ с помощью подписанных запросов подписи версии 4. Я пытался это сделать, но не смог. Может быть, путь неправильный.
Буду рад, если кто-нибудь предложит идеи по созданию подписанного запроса версии 4 к домену elasticsearch. Пример с использованием параметров, которые я указал выше, был бы очень полезен. Заранее спасибо.