我想使用此策略创建 AWS Elasticsearch,以启用来自 IAM 角色的特定访问、设置管理员 IP 和公共只读。ES 控制台不断返回错误“错误设置策略”。我无法弄清楚为什么不允许这样做?
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<id>:role/<lambda role 1 name>"
},
"Action": "es:ESHttpPost",
"Resource": "arn:aws:es:eu-west-1:<id>:domain/*/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<id>:role/<lambda role 2 name>"
},
"Action": "es:ESHttpDelete",
"Resource": "arn:aws:es:eu-west-1:<id>:domain/*/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:eu-west-1:<id>:domain/*/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"<ip1>",
"<ip2>",
"<ip3>"
]
}
}
},
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:ESHttpGet",
"Resource": "arn:aws:es:eu-west-1:<id>:domain/*/*"
}
]
}
它在eu-west-1
7.1 版中。我已经尝试过变体es:*
,比如将主体放入一个数组中(就像在提供的模板中一样),但是这些都被拒绝了?!我似乎只能有 2 个语句,每个语句都有 1 个委托人(*
以及这些 IAM 中的 1 个)。
有没有更好的推荐方法?就像把它放在 API 网关或其他东西后面。我在文档中看到了反向代理,但这似乎是一个荒谬的矫枉过正和$$$。