Have you ever face confusion when trying to establish IAM access to AWS ElasticSearch Domain using Go?
The solution is actually very simple, we just need to sign every http request to our ElasticSearch Domain with correct AWS Signature V4. This library help you to do just that. 😉
The library usage is very simple. We just need to set it up as our HTTP Client transport:
...
client := &http.Client{
Transport: transport.NewAWSESTransport(session.New()),
}
...
Or if you are using Official ElasticSearch Client for Go, you could just do like following:
...
client, err := es6.NewClient(es6.Config{
Addresses: []string{endpoint},
Transport: transport.NewAWSESTransport(session.New()),
})
...
So simple, right? 😉
For more details please check out our examples directory.
This library is inspired by following resources:
- elastic/go-elasticsearch#78
- https://gist.github.com/jriquelme/d11e0bb2e4523523a4ee507282ba6184
- aws/aws-sdk-go#676
- https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-request-signing.html#es-request-signing-go
We are just trying to make everything simpler and cleaner. 😉