Я создал сервис elasticsearch в AWS с помощью AWS CDK. Первоначально я думал получить доступ к нему с помощью IAM, но способ сделать это в узле - какой ужас, поэтому я обратился к аутентификации через api-key.
Если я следую elasticsearch документы, я получаю следующую ошибку:
AuthenticationException(401, '{"Message":"Your request: \'/_security/api_key\' is not allowed."}')
Я предполагаю, что это связано с тем, что мой пользователь по умолчанию не имеет прав для доступа к API _security, но как тогда я могу создать указанный API-ключ?
К сожалению, эта библиотека предназначена для клиента elasticsearch, который скоро будет устаревшим. Вы правы, API _security не поддерживается AWS elasticsearch.
Спасибо, чувак, это действительно работает. В любом случае это временное решение, так как мне нужно будет предоставить эту услугу третьей стороне, которая не может пройти аутентификацию через IAM. Думаю, я размещу elasticearch на EKS, чтобы получить доступ к полному сервису, включая _security API. Если вы захотите превратить свои комментарии в ответ, я с радостью его приму.
Из комментариев:
Security API является частью x-pack, который пока не поддерживается сервисом AWS Elasticserach. если нам нужно использовать его в AWS, можно использовать его как SAAS из AWS MarketPlace. Однако есть и другие варианты защиты AWS Elasticsearch:
aws4.sign в дополнение к параметрам HTTP-запроса nodejs. Аналогично примеру здесь с сервисом es. Пара библиотек, которые обертывают эту подпись для эластичного, - это aws-es-соединение и http-aws-es.
Я не думаю, что x-pack поддерживается в AWS ElasticSerach. попробуйте библиотеку это, упрощает отправку подписанных запросов в эластичный