仅从我的VPC /子网访问Elastic Search Internet端点

时间:2019-03-24 01:08:21

标签: amazon-web-services elasticsearch amazon-ec2

我有一个Internet弹性搜索端点。我只想在我的VPC's实例中访问它,仅在我的两个EC2中访问它。这是我尝试对VPC CIDRIP's使用的策略,但是我无法从EC2实例访问终结点。我的EC2实例位于专用子网中,可通过NAT网关访问Internet。这是我的访问策略,不起作用

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1:1XXXXXXXXXXX:domain/my-elasticsearch/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "xx.xx.xx.xx/24",
            "xx.xx.xx.xx/24"
          ]
        }
      }
    }
  ]
}

我还尝试过类似的操作,以仅允许我分配了IAM角色的EC2实例进行访问,

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::XXXXXXXXXXX:role/MyEC2Role"
        ]
      },
      "Action": [
        "es:*"
      ],
      "Resource": "arn:aws:es:us-east-1:XXXXXXXXXXX:domain/my-elasticsearch/*"
    }
  ]
}

我在做什么错?还是有更好的方法来限制访问?

1 个答案:

答案 0 :(得分:1)

由于您具有公共AWS Elasticsearch集群,因此无法使用具有私有IP的私有子网中的EC2实例。 尝试在您的AWS ES集群的访问策略中添加NAT的公共IP,看看是否可行。 另外,如果您有基于IAM的访问策略,请确保已按照此处所述签署对AWS ES的所有请求:https://aws.amazon.com/blogs/database/get-started-with-amazon-elasticsearch-service-an-easy-way-to-send-aws-sigv4-signed-requests/