Назад | Перейти на главную страницу

Mongodb Sharding - Сервер конфигурации и аутентификация Mongo

Мне довольно скоро потребуется сегментировать базу данных, и я не понимаю, как лучше всего включить аутентификацию на mongos и config серверы.

Я бы хотел, чтобы все было защищено паролями.

  1. Если на каждом сервере конфигурации есть auth включен?
  2. Если да, то настроить одного и того же пользователя для каждого? Просто для админки db? Или есть необходимость создать его для базы данных конфигурации?
  3. Я предполагаю, что вам не нужно создавать каких-либо пользователей на монго, так как он должен наследовать от конфигурации и самих шардов, это правильно?
  4. При добавлении нового шарда нужно ли настраивать одних и тех же пользователей для каждой сегментированной базы данных на новом шарде?

Спасибо!

Я возьму их по одному:

Должен ли каждый сервер конфигурации включать аутентификацию?

Да, в основном каждый экземпляр mongod, который вы запускаете, должен иметь включенную аутентификацию (и ключевой файл, что подразумевает авторизацию).

Если да, то настроить одного и того же пользователя для каждого? Просто для админки db? Или есть необходимость создать его для базы данных конфигурации?

База данных администратора в сегментированной среде фактически будет находиться на серверах конфигурации. Следовательно, у вас будет копия базы данных администратора на всех трех (они будут идентичны друг другу). Вы всегда должны подключаться к базе данных конфигурации через mongos и вы не будете создавать там другие базы данных, поэтому не нужно добавлять конкретных пользователей.

Я предполагаю, что вам не нужно создавать каких-либо пользователей на монго, так как он должен наследовать от конфигурации и самих шардов, это правильно?

Первый добавленный сегмент, если он имеет существующие базы данных, будет основным сегментом для этих баз данных (навсегда). Этот основной сегмент будет содержать записи аутентификации для этих баз данных, даже если вы впоследствии разделите коллекции на несколько сегментов. Любые последующие базы данных, созданные после вашего шарда, могут жить на другом шарде, и их учетные данные будут храниться там. Основное практическое правило: используйте mongos для управления пользователями в сегментированной среде.

Примечание: Сказанное выше верно для MongoDB 2.4 и ниже. Запланированные изменения в 2.6 позволят централизовать все учетные данные в базе данных конфигурации в сегментированной среде и снять некоторые сложности. Однако практическое правило все еще применимо, используйте mongos

При добавлении нового шарда нужно ли настраивать одних и тех же пользователей для каждой сегментированной базы данных на новом шарде?

Как следует из ответа на предыдущий вопрос, нет, в этом нет необходимости. пока вы всегда подключаетесь через mongos (рекомендуется - он знает, какой является первичный осколок для каждой базы данных, и соответствующим образом направит ваш запрос аутентификации). Есть некоторые крайние случаи, когда вам может потребоваться иметь пользователей на всех сегментах, и в этом случае вам придется добавить (и поддерживать) их на каждом сегменте, но для общего использования это не требуется.

Взгляните на Вот чтобы найти свой ответ. Вам предлагается использовать keyFile, а также контроль доступа на уровне сети, обычно это брандмауэр для обеспечения безопасности вашего сервера.

Проверка подлинности Kerberos также поддерживается в последних версиях mongodb. Вы можете найти информацию Вот.