1

我想使用此策略创建 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-17.1 版中。我已经尝试过变体es:*,比如将主体放入一个数组中(就像在提供的模板中一样),但是这些都被拒绝了?!我似乎只能有 2 个语句,每个语句都有 1 个委托人(*以及这些 IAM 中的 1 个)。

有没有更好的推荐方法?就像把它放在 API 网关或其他东西后面。我在文档中看到了反向代理,但这似乎是一个荒谬的矫枉过正和$$$。

4

0 回答 0