#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