Безопасное подключение к AWS Elasticsearch с помощью бессерверных функций Nextjs

#amazon-web-services #elasticsearch #basic-authentication #aws-elasticsearch

#amazon-веб-сервисы #elasticsearch #базовая аутентификация #aws-эластичный поиск

Вопрос:

Я пытаюсь безопасно подключиться к моей службе ES с помощью бессерверных функций в Nextjs. Бессерверные функции не имеют фиксированного IP-адреса или диапазона IP-адресов, поэтому я не могу защитить его таким образом. Я попытался создать пользователя IAM и использовать идентификатор ключа доступа и секретный ключ доступа для создания базового заголовка авторизации следующим образом.

 const auth = btoa(`${accessKey}:${accessSecret}`);
 

Затем я использовал это в качестве заголовка авторизации следующим образом.

 `Authorization: Basic ${auth}`
 

Запрос возвращается со следующей ошибкой.

 {
    "message": "Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header. Authorization=Basic XXXXXXXXXXXXXXXXXXXXXXXXXX"
}
 

Я предоставил разрешение пользователя IAM через политику доступа.

 {
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::XXXXXXXXX:user/elasticsearch"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-2:XXXXXXXX:domain/team-up/*"
    }
  ]
}
 

Является ли это правильным способом обеспечить безопасное подключение к базе данных? Я попытался установить пароль в базе данных, используя конечную точку POST / _security / user / _password, но это тоже не удалось.

введите описание изображения здесь
введите описание изображения здесь
введите описание изображения здесь Amazon утверждает, что поддерживается базовая авторизация. https://aws.amazon.com/elasticsearch-service/faqs /

Ответ №1:

Я не создавал главного пользователя во время настройки мастера домена aws elasticsearch. Кажется, что после создания домена невозможно создать главного пользователя. Я удалил домен elasticseach и создал его заново с основным пользователем.

Я следовал этому руководству. https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/fgac.html#fgac-walkthrough-basic