1

我正在构建一个 golang RESTful API 并尝试使用签名请求访问 ES。我已关注 AWS 上的文档 我正在使用的 Golang 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 策略,但似乎没有任何效果。

4

1 回答 1

0

签名库中似乎存在问题。以下拉取请求修复了它。(尚未合并) https://github.com/sha1sum/aws_signing_client/pull/3

于 2017-02-06T05:16:45.113 回答