Я пытаюсь создать AWS-лямду, используя c # для доступа к сервису AWS ElasticSerch.Я создал роль, для которой настроена моя лямбда-функция, которая имеет доступ к ElasticSeach.Но разрешение, похоже, не работает.
Вот мои настройки:
Я создал политику доступа с доступом на чтение и запись к службе ES.![enter image description here](https://i.stack.imgur.com/8fzOo.png)
Создана роль и назначена вышеуказанная политика
Я предоставил разрешения на эту роль моемуES кластер.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXXX:role/lambda-es-role"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-west-2:XXXXXXXXXXXXXx:domain/es-test-es/*"
}
]
}
У меня есть простой код в лямбде, чтобы посмотреть, смогу ли я к нему подключиться.
public async Task<string> FunctionHandler()
{
HttpClient client = new HttpClient();
var response = await client.GetStringAsync("https://XXXXX.us-west-2.es.amazonaws.com/firstindex");
return response;
}
Это дает мне 403 Запрещенную ошибку.Я даже пытался установить доверительные отношения с es.amazonaws.com для этой роли.Это также не сработало.
Если я сделаю кластер ES общедоступным, я увижу ответ.
Будет ли этот метод работать с Lambda?Мне не хватает некоторых разрешений?