Elasticsearch Shield Plugin - пользователи не могут проходить аутентификацию, даже пользователи с правами администратора
У меня проблема с плагином Shield для Elasticsearch. Я установил asticsearch, чтобы он работал как служба, и я вижу, что он работает на порту 9200.
Если я войду curl http://localhost:9200
в моем терминале Mac я получаю правильный вывод упроса...
Недавно я пытался перейти от базовой аутентификации к щитовой аутентификации. Я установил щит и лицензию, используя следующие команды:
/usr/share/elasticsearch/bin/plugin install license/latest
/usr/share/elasticsearch/bin/plugin install shield/latest
Это успешно устанавливает щит и лицензионные плагины. Они содержатся в моей директории / usr / share /asticsearch / plugins на моей коробке Vagrant.
Итак, теперь, если я попытаюсь использовать curl -XGET http://localhost:9200
снова я получаю следующий ответ:
{"error": {"root_cause": [{"type": "security_exception", "reason": "отсутствует токен аутентификации для запроса REST [/]","header":{"WWW-Authenticate":"Основная область" =\"shield\""}}],"type":"security_exception","reason":" отсутствует токен аутентификации для запроса REST [/]","header":{"WWW-Authenticate":"Basic realm=\"щит \""}}," статус ":401}
Это хорошо. Я не могу достичь эластичного поиска без надлежащей аутентификации. Итак, теперь я хочу создать пользователя для аутентификации на asticsearch. Я использую команду:
sudo ./esusers useradd testuser -p password -r admin
Это создает пользователя "testuser" с паролем "пароль" с правами администратора.
Я могу проверить, что этот пользователь был создан с помощью следующей команды:
sudo ./esusers list
Это возвращает:
testuser: admin
Итак, я теперь пытаюсь снова запустить команду curl с этим пользователем:
curl -u testuser:password -XGET http://localhost:9200
Но я получаю то же сообщение об ошибке, что и раньше, когда я пытался без администратора.
В чем здесь проблема? Почему мой админ не проходит аутентификацию?
1 ответ
Вы сказали, что ваш проверенный пользователь создан с помощью sudo ./esusers list
но команда curl не работает. Скорее всего, вы используете пользовательский каталог для asticsearch, хотя домашний каталог /usr/share/elasticsearch
, И благодаря этому esusers
создает пользователей в /etc/elasticsearch/shield/
каталог, но они должны быть скопированы в пользовательский каталог, если вы его используете.
Я знаю, что вы решили это по-другому, но я отвечаю на это в надежде, что это поможет кому-то еще в будущем. Можете ли вы подтвердить, что пользовательский каталог? Например, в моем случае, пользовательский каталог был /data/elasticsearch
и дом реж /usr/share/elasticsearch