【发布时间】:2017-01-18 17:24:36
【问题描述】:
我正在构建一个 golang RESTful API 并尝试使用签名请求访问 ES。 我已关注 AWS 上的文档,我正在使用的 Golang AWS 弹性搜索客户端包的文档(olivere/elastic)
以下 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 策略,但似乎没有任何效果。
【问题讨论】:
标签: amazon-web-services elasticsearch go amazon-elasticsearch