Los miembros del clúster fragmentado pueden usar keyfiles para autenticarse unos a otros como miembros de la misma implementación.
Un archivo clave puede contener múltiples claves y la autenticación de membresía se establece si al menos una clave es común entre los nodos. Esto permite una actualización continua de las claves sin tiempo de inactividad.
El siguiente tutorial explica el proceso para actualizar la clave de un clúster fragmentado, sin ningún tiempo de inactividad. [1]
Advertencia
Las claves de ejemplo en este tutorial son solo con fines ilustrativos. Hacer NO se utiliza para tu implementación. En su lugar, genere un archivo de clave usando cualquier método que elija (por ejemplo, openssl rand -base64
756, etc.).
Considera un clúster fragmentado donde el archivo clave de cada nodo contiene la siguiente clave:

El siguiente procedimiento actualiza los miembros del clúster fragmentado para usar una nueva clave:

| [1] | Este tutorial no aplica al archivo de claves utilizado para la gestión de claves locales del motor de almacenamiento cifrado de MongoDB. Dicho archivo de claves solo puede contener una clave. |
Antes de comenzar
A partir de MongoDB 8.0, se puede utilizar el rol directShardOperations para realizar operaciones de mantenimiento que requieren ejecutar comandos directamente contra un fragmento.
Advertencia
Ejecutar comandos usando el rol directShardOperations puede hacer que su clúster deje de funcionar correctamente y puede causar corrupción de datos. Utiliza el rol directShardOperations únicamente con fines de mantenimiento o bajo la orientación del soporte de MongoDB. Deja de usar el rol directShardOperations cuando termines de realizar operaciones de mantenimiento.
Procedimiento
1. Modifique el archivo de claves para incluir claves antiguas y nuevas
Modifique el archivo clave de cada nodo para incluir tanto las claves antiguas como las nuevas.
Advertencia
Las claves de ejemplo de este tutorial son solo para fines ilustrativos. NO lo uses para su implementación. En lugar de esto, genera un archivo clave usando cualquier método que elijas (por ejemplo, openssl rand -base64
756, etc.).
Se pueden especificar varias cadenas clave como una secuencia de cadenas clave (opcionalmente entre comillas):

1. Reiniciar cada nodo
Una vez que todos los archivos de claves contengan las claves antiguas y nuevas, reinicie cada miembro uno a la vez.
servidor de configuración
Para cada secundario del set de réplicas del servidor de configuración (CSRS), conecte mongosh al miembro y:
Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
Para el primario, conecte mongosh al nodo y
Usa
rs.stepDown()para destituir al nodo:rs.stepDown() Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
Partición Set de Réplicas
Para cada miembro secundario de los conjuntos de réplicas de fragmentos, conecte al miembro mongosh y:
Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
Para el principal de cada conjunto de réplicas de fragmentos, conecte al miembro mongosh y
Usa
rs.stepDown()para destituir al nodo:rs.stepDown() Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
mongos Enrutadores
Para cada instancia mongos/router, conecta mongosh a la instancia mongos y:
Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
Una vez que todos los miembros han sido reiniciados, los miembros ahora aceptan la clave antigua o nueva para la autenticación de membresía.
3. Actualiza el contenido del Keyfile para que contenga solo la nueva clave
Advertencia
Las claves de ejemplo de este tutorial son solo para fines ilustrativos. NO lo uses para su implementación. En lugar de esto, genera un archivo clave usando cualquier método que elijas (por ejemplo, openssl rand -base64
756, etc.).
Modifica el archivo clave de cada nodo para incluir solo la nueva contraseña.

4. Reiniciar cada miembro
Una vez que todos los archivos de claves contengan solo la nueva clave, reinicie cada nodo uno a la vez.
servidor de configuración
Para cada secundario del conjunto de réplicas del servidor de configuración (CSRS), conecte al miembro mongosh y:
Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
Para el primario, conecte mongosh al nodo y
Usa
rs.stepDown()para destituir al nodo:rs.stepDown() Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
Partición Set de Réplicas
Para cada miembro secundario de los conjuntos de réplicas de fragmentos, conecte al miembro mongosh y:
Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
Para el principal de cada conjunto de réplicas de fragmentos, conecte al miembro mongosh y
Usa
rs.stepDown()para destituir al nodo:rs.stepDown() Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
mongos Enrutadores
Para cada instancia mongos/router, conecta mongosh a la instancia mongos y:
Utilice el método para cerrar el
db.shutdownServer()miembro:use admin db.shutdownServer() Reinicia el nodo.
Una vez que se hayan reiniciado todos los miembros, ahora solo aceptarán la nueva clave para la autenticación de membresía.