使用AWS IAM通过Gateway访问AWS ElasticSearch的Kibana

时间:2016-08-12 21:27:12

标签: elasticsearch amazon-iam aws-api-gateway amazon-elasticsearch

我正在学习ELK Stack和AWS Gateway。

我创建了AWS ElasticSearch并设置了此访问策略: {   "版本":" 2012-10-17",   "陈述":[     {       "效果":"允许",       "校长":{         " AWS":" arn:aws:iam :: [AWS账户ID]:root"       },       "行动":" es:*",       "资源":" arn:aws:es:sa-east-1:[AWS账户ID]:domain / camarar-elk / *"     }   ] }

PS:我也尝试使用这个政策: {   "版本":" 2012-10-17",   "陈述":[     {       "效果":"允许",       "校长":{        " AWS":" arn:aws:iam :: [AWS账户ID]:用户/ [用户]"       },       "行动":" es:*",       "资源":" arn:aws:es:sa-east-1:[AWS账户ID]:domain / camarar-elk / *"     }   ] }

之后,我使用http代理和GET方法创建了一个AWS API网关,将所有请求路由到Kibana网址。在此网关中,我使用一个AWS IAM访问Kibana。

最后,我使用此策略创建了一个AWS IAM用户" AmazonESFullAccess"。

我一直收到同样的错误:{"消息":"用户:匿名无权执行:es:ESHttpGet on resource:camarar-elk"}

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

我已经在使用这项行动的政策了("行动":" es:*")因为我在我的问题中写错了。

我在Elasticsearch的实际政策:

{" Version":" 2012-10-17"," Statement":[{" Effect":"允许","校长":{" AWS":" arn:aws:iam :: [AWS账户ID]:root" },"行动":" es:*","资源":" arn:aws:es:sa-east-1:[AWS帐号ID:domain / camarar-elk / *" }]}

答案 1 :(得分:0)

  

“行动”:“es:”,

我相信这是你的问题。你必须指定一个像es:ESHttpGet这样的动作,或者允许所有动作用es:*