【问题标题】:Add multiple domain access policy to AWS Elasticsearch Service (Static IP and Lambda ARN)向 AWS Elasticsearch Service 添加多域访问策略(静态 IP 和 Lambda ARN)
【发布时间】:2017-01-09 00:56:35
【问题描述】:

设置 AWS Elasticsearch 后,我在静态 IP 服务器上安装了 Logstash 和 Kibana 代理,并在 ES 上添加了这个域访问策略,它工作正常:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:ap-southeast-1:323137313233:domain/sg-es-logs/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "192.192.192.192"
          ]
        }
      }
    }
  ]
}

现在我需要允许 Lambda 函数在 AWS ES 上执行 es:ESHttpDelete 操作,因此我使用现有角色 service-role/Elasticsearch 创建了该函数,然后从 IAM 管理控制台复制了相关的 ARN 以将其添加到 AWS ES 访问政策,想出这个:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam:: 323137313233:role/service-role/Elasticsearch"
        ]
      },
      "Action": [
        "es:*"
      ],
      "Resource": "arn:aws:es:ap-southeast-1:323137313233:domain/sg-es-logs/*"
    }
  ]
}

问题出在 ES 上,我应该为静态 IP 或 ARN 选择域访问策略,但不能同时选择两者。当我尝试手动合并它们而不是使用控制台时,它不起作用。我检查了 AWS 文档,但他们没有提到这是否可能。

【问题讨论】:

  • FWIW,亚马逊开发人员支持非常好,但每月花费 30 美元。我不知道答案,正如你所说,文档并没有真正谈论如何做你想做的事情。
  • 您的第一个保单有一个禁止的 Principal 字段。你是怎么让它工作的?不要指定委托人,而是尝试添加第二个条件来比较委托人 ARN

标签: amazon-web-services elasticsearch aws-lambda amazon-elasticsearch aws-access-policy


【解决方案1】:

您可以在 Statement 数组中添加多个策略语句,采用 JSON 格式的策略。因此,您的最终政策将类似于:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:ap-southeast-1:323137313233:domain/sg-es-logs/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "192.192.192.192"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam:: 323137313233:role/service-role/Elasticsearch"
        ]
      },
      "Action": [
        "es:*"
      ],
      "Resource": "arn:aws:es:ap-southeast-1:323137313233:domain/sg-es-logs/*"
    }
  ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 2020-09-27
    • 2016-04-08
    相关资源
    最近更新 更多