我们偶然发现了一个困扰我们一段时间的问题,非常感谢您的帮助。
我们的问题在于将ElasticSearch服务的权限与Kibana结合使用。我们的ES域仅具有来自Lambda的WRITE / READ权限,仅具有来自公司办公室IP的READ权限。我们使用Kibana(在AWS上,而不是本地的)来可视化我们的数据,问题是我们需要允许ES域上的POST操作,以便Kibana能够正常工作,否则我们只会遇到权限问题。但这也意味着我们需要为公司IP打开POST请求,这是我们不想要的。我们的问题是我们如何只允许Kibana拥有这种权限。我们的目标是仅对lambda拥有READ / WRITE访问权限,仅对我们公司IP具有READ权限,而对Kibana则具有所需的权限,以便在不干扰其余权限的情况下正常工作。
这是我们在ES域上的访问策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "<ROLE_USED_BY_OUR_LAMBDA>"
},
"Action": "es:*",
"Resource": "<ELASTICSEARCH_DOMAIN>/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"es:ESHttpGet",
"es:ESHttpHead",
"es:Describe*",
"es:List*"
],
"Resource": "<ELASTICSEARCH_DOMAIN>/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"<COMPANY_IP_1>",
"<COMPANY_IP_2>",
"<COMPANY_IP_3>"
]
}
}
}
}
]
}