Политика изменения поиска AWS Elastic с использованием лямбда-функции - PullRequest
1 голос
/ 07 марта 2019

Я пытаюсь изменить политику доступа с упругим поиском через лямбда-функцию, используя узел js. В настоящее время политика доступа выглядит следующим образом:

{
  "Version": "2012-10-17",
  "Statement": [
  {
   "Effect": "Allow",
   "Principal": {
     "AWS": "*"
   },
   "Action": "es:*",
   "Resource": "arn:aws:es:us-east-1:XXXX:domain/YYY/*"
 }
]
}

код, который я пробовал в лямбде

var params = {
     DomainName: 'YYYY'
};
const es = new AWS.ES();
es.upgradeElasticsearchDomain(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response
});

это всегда выдает ошибку is not authorized to perform: es:UpdateElasticsearchDomainConfig on resource с кодом ошибки "code": "AccessDeniedException",

в param я добавлю AccessPolicies это то же самое, что и политика, добавленная в моем вопросе, но Effect будет Deny

1 Ответ

0 голосов
/ 07 марта 2019

После дальнейшего обсуждения этого вопроса с OP выяснилось, что это отсутствие прав на роль IAM, присоединенную к функции Lambda.

Для тех, кто сталкивается с той же проблемой, обязательно подключите ESFullAccess к функции Lambda, которая работает с ElasticSearch.

Для этого перейдите в IAM -> Роли и выберите роль, связанную с вашей функцией Lambda.

Нажмите на политики присоединения и прикрепите ESFullAccess, как показано на рисунке ниже:

enter image description here

...