Доступ к AWS Elasticsearch из AWS Beanstalk

У меня есть экземпляр службы Elasticsearch на AWS и экземпляр Elastic Beanstalk.

Я хочу предоставить beanstalk доступ только для чтения, однако beanstalk не имеет статического IP-адреса по умолчанию, и с небольшим количеством поиска в Google добавить его слишком сложно.

Поэтому я дал доступ к учетной записи aws, но это, похоже, не работает. Я все еще получаю сообщение об ошибке:

"Пользователь: анонимный не имеет права выполнять: es:ESHttpPost

Когда я устанавливаю общий доступ, все работает, поэтому я уверен, что делаю что-то не так:

{
 "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::xxx:root"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:eu-central-1:xxx:domain/xxx-elastic-search/*"
    }
  ]
}



Ответы (1)


Используйте такую ​​политику на основе удостоверений вместо белых списков IP-адресов.

{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Resource": "arn:aws:es:us-west-2:111111111111:domain/recipes1/*",
   "Action": ["es:*"],
   "Effect": "Allow"
  }
 ]
}

Затем прикрепите его к роли Elastic Beanstalk. Подробнее здесь

https://aws.amazon.com/blogs/security/how-to-control-access-to-your-amazon-elasticsearch-service-domain/

person Sid Malani    schedule 17.11.2018
comment
Я создал политику из IAM›Policies с предложенным вами json, прикрепил aws-elasticbeanstalk-ec2-role и aws-elasticbeanstalk-service-role, но ничего не изменилось.. - person ; 17.11.2018
comment
не могли бы вы вставить сюда свою политику (скрывая конфиденциальные данные)? Видите ли вы какие-либо журналы ошибок? - person Sid Malani; 18.11.2018