如何解决获取 {"Message":"User:anonymous is notauthorized to perform: es:ESHttpGet"} 错误,即使使用开放域访问策略
我的 AWS Elasticsearch 域有这样的访问策略
{
"Version": "2012-10-17","Statement": [
{
"Effect": "Allow","Principal": {
"AWS": [
"arn:aws:iam::xxxxxxxxxxxx:user/some-user"
]
},"Action": "es:*","Resource": "arn:aws:es:ap-south-1:xxxxxxxxxxxx:domain/some-cluster/*","Condition": {
"IpAddress": {
"aws:SourceIp": "0.0.0.0/0"
}
}
}
]
}
即使有这个政策,我也无法访问 kibana。 AWS ES 是否对其访问策略进行了一些更改?
解决方法
您无法直接访问 ES 仅具有此政策的链接。原因是您必须使用有效的 sigv4 签名来签署您的请求。根据您的政策,对 ES 的每个请求都必须由只能访问它的 some-user
签名。
这是为了确保只有您在策略中指定的用户才能访问它。因此,您不能使用 kibana。来自docs:
Kibana 本身不支持 IAM 用户和角色
您必须以编程方式访问您的 ES,以便您可以对请求进行签名。一个流行的工具是 aws-requests-auth for python。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。