включить "Access Control" нужно сначала включить " internal authentication" между участниками ReplicaSet.
Увидел статью (https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set-without-downtime/) : там упоминается про "--transitionToAuth" режим, когда "A mongod running with --transitionToAuth accepts both authenticated and non-authenticated connections. Clients connected to the mongod during this transition state can perform read, write, and administrative operations on any database".
Я правильно понимаю что для уже работающего ReplicaSet это самый оптимальный вариант? Условно поменять строку конфига mongodb.conf на каждом учаснике ReplicaSet, по очереди сделать перезагрузку сервиса и "в путь"?
Где бы вы посоветовали (в каком каталоге) хранить "keyfile" на участниках ReplicaSet ?
Да, включение аутентификации потребует включения внутренний аутентификации. —transitionToAuth, как и указано, позвляет использовать оба режима одновременно, пока весь кластер и все приложения не включат аутентификацию. Да, для реплики это самый подходящий механизм. Но учтите, если у вас не 4.2 и не retryWrites=true, то у вас всё равно будет отказ в обслуживании клиентов. В случае с 4.2, монга принудительно завершит все write операции, но не будет закрывать соединения с клиентами и прерывать операции чтения. В случае с retryWrites=true, 4.2-compatible драйвера автоматически попробуют однократно повторить операцию записи, после того как смогут подключится к новому primary see https://docs.mongodb.com/manual/reference/command/replSetStepDown see https://docs.mongodb.com/manual/core/retryable-writes/
Обсуждают сегодня