Доступ к конечной точке Elastic Search в Интернете только из моего VPC / подсетей

#amazon-web-services #elasticsearch #amazon-ec2

#amazon-веб-сервисы #elasticsearch #amazon-ec2

Вопрос:

У меня есть конечная точка Elastic Search в Интернете. Я хотел получить к ней доступ только в пределах своих 2 VPC's , если быть точным, только из своих EC2 экземпляров. Вот политика, которую я пытаюсь использовать в своем VPC CIDR блоке IP's , но я не могу получить доступ к конечной точке из своих EC2 экземпляров. Мои EC2 экземпляры находятся в частных подсетях, доступ к Интернету осуществляется через шлюз NAT. Вот моя политика доступа, которая не работает

 {
  "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"
          ]
        }
      }
    }
  ]
}
  

Я также пробовал что-то подобное, чтобы разрешить доступ только из моих экземпляров EC2, которым назначена роль IAM, это тоже не сработало

 {
  "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:

Поскольку у вас общедоступный кластер AWS Elasticsearch, разрешение вашего экземпляра EC2 из частной подсети с частным IP-адресом не будет работать. Попробуйте добавить общедоступный IP-адрес NAT в политику доступа вашего кластера AWS ES и посмотрите, работает ли это. Также, если у вас используются политики доступа на основе IAM, убедитесь, что все запросы к AWS ES подписаны, как указано здесь: https://aws.amazon.com/blogs/database/get-started-with-amazon-elasticsearch-service-an-easy-way-to-send-aws-sigv4-signed-requests/