创建访问策略以使用 IP 地址将 elastic beanstalk 连接到 Elasticsearch

Create access policy to connect elastic beanstalk to Elasticsearch using IP address

我正在尝试设置从我的 AWS Elastic Beanstalk 服务到 AWS OpenSearch 服务 (运行 elasticsearch) 的访问权限。

我最初设置了一个 IP 地址用于本地测试,这很有效,但是我在 Elastic Beanstalk 服务的任何配置设置中都找不到 IP 地址。

我本来想完全开放我的服务进行测试,但是这似乎也行不通。

如何为我的 Elastic Beanstalk 服务查找/设置 IP 地址?

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "es:*"
      ],
      "Resource": "arn:aws:es:ap-southeast-2:*****:domain/mydomain/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "*"
          ]
        }
      }
    }
  ]
}

如果您使用的是ALB,那么您无法获得它的IP,因为ALB的IP地址是动态的。而且,ALB 仅用于传入连接,而不用于传出连接。

要为您的 EC2 实例设置静态 IP,您必须使用单实例 EB env(无负载均衡器),或将您的 EB 实例放在 私有子网 中,后面一个NAT gateway。这将确保您的所有 EB 实例都将 NAT 用于传出连接,并且您将获得 NAT 的 静态 IP 地址,您可以将其列入 ES 策略的白名单。