我正在学习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"}
有人可以帮我解决这个问题吗?
答案 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:*