Я создаю API-интерфейс golang RESTful и пытаюсь получить доступ к ES с использованием подписанных запросов. я следовал документации по AWS документации упругого пакета поиска клиента Golang AWS Я использую (olivere/эластичный)Имеют проблемы с доступом к ES с подпиской на запрос AWS
После golang коды используется для создания нового клиента
signer := v4.NewSigner(credentials.NewStaticCredentials("IAM_USER_ID", "IAM_USER_SECRET", ""))
awsClient, err := aws_signing_client.New(signer, nil, "es", "us-east-1")
if err != nil {
return nil, err
}
return elastic.NewClient(
elastic.SetURL("https://my-aws-endpoint.us-east-1.es.amazonaws.com"),
elastic.SetScheme("https"),
elastic.SetHttpClient(awsClient),
elastic.SetSniff(false), // See note below
)
В ElasticSearch AWS консоли , я изменил политику доступа как то:
Кажется, я могу открыть узел ES, но когда я пытаюсь выполнить запрос, ES статус возврата HTTP 403 - не имеют разрешения ,
Я также попытался предоставить пользователю IAM политику AmazonESFullAccess, но, похоже, она не имеет никакого эффекта.