Я хотел бы выполнить резервное копирование (создание моментальных снимков эластичного поиска) в корзину Google Cloud Storage, как описано в документации asticserach для версии 5.6 , которая является используемой нами версией.
Я и мой коллега следили за всемишаги.Мы оба пробовали разные проекты, учетные записи, корзины и оба заканчивали с одной и той же ошибкой:
Плагин использует служебную учетную запись, которая создала виртуальную машину, на которой работает эластичный поиск, а не ключ, добавленный в хранилище ключей.и определено в запросе.
Шаги для воспроизведения: следуйте инструкциям, указанным выше:
- Создание учетной записи службы (SA), создание корзины.Предоставьте SA доступ для записи (или администратора) к этому сегменту.Загрузите ключ учетной записи службы (файл JSON).
- Добавьте этот файл JSON в хранилище ключейasticsearch.Перезапуститеasticsearch или перезагрузите безопасные настройки: (см. последняя версия документа , перезагрузка не описана в 5.6 документах)
- Если вы отправляете запрос PUT, как описано в руководстве, содержащем ключ «client», нетнесмотря ни на что, клиентский ключ игнорируется и вместо него используется учетная запись службы, которая создала виртуальную машину.
{
"type": "gcs",
"settings": {
"bucket": "e2-test-elastic",
"client": "default"
}
}
Я получаю сообщение об ошибке.Unable to check if bucket [name-of-my-bucket] exists
403 Forbidden, message: "some-long-number@project.gserviceaccount.com does not have storage.buckets.get access to name-of-my-bucket".
Проблема НЕ в том, что служебная учетная запись не имеет доступа к этому сегменту.Проблема заключается в том, что asticsearch не использовал учетную запись службы, которую я ранее добавил в хранилище ключей, и явно установил "client": "default"
(который задает имя ключа), как указано в руководстве.
КакМогу ли я заставить эластичный поиск использовать данный ключ учетной записи службы?