Проверка подлинности FoundationDB
Кластер FoundationDB может быть настроен на использование SSL/TLS, но возможно ли подключиться к кластеру, не зная кластера fdb.cluster
файл?
Другими словами, это fdb.cluster
файл эквивалентен схеме безопасности имени пользователя / пароля в других системах баз данных?
2 ответа
fdb.cluster
Файл состоит из 2 основных частей (см. формат файла кластера):
- Кластер
id
(с дополнительнымdescription
) - Список одного или нескольких координаторов
IP:PORT
пар.
Любой клиент должен иметь возможность связаться хотя бы с одним из координаторов в списке для связи с кластером, и у него должен быть правильный идентификатор кластера. Если нет, он не сможет подключиться. Нет встроенного сервиса обнаружения.
Это означает, что вы должны предоставить себе исходный файл кластера для вашего приложения. Как только он подключится к узлу координатора, он сможет получить полный список и самостоятельно обновить файл кластера (если меняется топология).
Одно из решений для развертывания состоит в том, чтобы приложение (или сценарий развертывания) загрузило последнюю версию fdb.cluster с внутреннего URL-адреса (или общей папки), если файл отсутствует, чтобы начать установку.
Что касается аутентификации, если вы не используете TLS/SSL, часть "id" в файле кластера действует как псевдотекстовый пароль. Даже если у вас есть правильный набор координаторов, приложение также должно иметь правильный идентификатор кластера.
Хотя это следует рассматривать как эквивалент имени базы данных на типичном сервере SQL. Его легко найти и передать открытым текстом, если вы не используете SSL. Я предполагаю, что это сделано для того, чтобы предотвратить глупые ошибки, больше всего на свете (например, набрав IP:PORT другого кластера).
Вы не можете подключиться без файла кластера. Это обеспечивает некоторую слабую безопасность, но гораздо лучше использовать взаимную поддержку TLS, если вы хотите запустить кластер в ненадежной сети.