1
我正在构建golang RESTful API并试图使用签名请求访问ES。 我按照在AWS上的文档,我使用(olivere /弹性)使用AWS请求签名有问题ES访问
以下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控制台Golang AWS弹性搜索客户端软件包的文件,我已修改了访问策略那样:
看来我能够发现ES节点,但是当我试图执行一个查询,ES返回HTTP状态403 - 没有权限。
我也尝试将IAM用户授予AmazonESFullAccess策略,但似乎没有任何效果。