【发布时间】:2016-01-17 05:51:33
【问题描述】:
我一直在努力弄清楚如何从我的 EC2 实例与 Amazon ES 服务进行通信。
文档明确指出,Amazon ES 服务支持基于 IAM 用户和角色的访问策略。 http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-access-policies
但是,当我的 ES 域具有此访问策略时:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:role/my-ec2-role"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-west-2:123456789:domain/myDomain/*"
}
]
}
我无法登录到 ec2 实例并运行 curl 来访问我的 elasticsearch 集群。
尝试对 _search API 做一个简单的 curl:
curl "http://search-myDomain.es.amazonaws.com/_search"
产生身份验证错误响应:
{"Message":"User: anonymous is not authorized to perform: es:ESHttpGet on resource: arn:aws:es:us-west-2:123456789:domain/myDomain/_search"}
为了更加安全,我将 AmazonESFullAccess 策略放在我的 IAM 角色上,但仍然不起作用。
我一定遗漏了一些东西,因为能够通过使用 IAM 角色的 ec2 实例以编程方式与 Elasticsearch 交互对于使用 Amazon ES 服务完成任何事情都是必不可少的。
我在文档中也看到了这种矛盾的说法。
基于 IAM 的策略示例 您可以通过以下方式创建基于 IAM 的访问策略 使用 AWS IAM 控制台而不是 Amazon ES 控制台。为了 有关创建基于 IAM 的访问策略的信息,请参阅 IAM 文档。
指向 IAM 文档的链接是指向 IAM 主页的链接,其中包含有关如何操作的完全零信息。有没有人可以帮我解决?
【问题讨论】:
-
@nackjicholson 您的问题解决了吗?现在有点类似的情况!
标签: amazon-web-services elasticsearch amazon-elasticsearch