Los miembros del conjunto de réplicas pueden usar archivos clave para autenticarse entre sí 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 describe el proceso para actualizar la clave de un conjunto de réplicas sin tiempo de inactividad. [1]
Advertencia
Las claves de ejemplo en este tutorial son solo con fines ilustrativos. Hacer NO lo use para su implementación. En su lugar, genere un archivo de claves utilizando cualquier método que elija (por ejemplo, openssl rand -base64
756, etc.).
Considere un set de réplicas donde el archivo de claves de cada nodo contiene la siguiente clave:

El siguiente procedimiento actualiza los miembros del conjunto de réplicas 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. |
Procedimiento
1. Modifique el archivo de claves para incluir claves antiguas y nuevas
Modificar la keyfile de cada nodo para incluir tanto la clave antigua como la nueva. Puede especificar varias claves como cadenas entre comillas o como una secuencia de claves.
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.).
Puedes especificar varias cadenas de claves como una secuencia de cadenas de claves (opcionalmente entre comillas simples o double).

2. Reiniciar cada miembro
Una vez que todos los archivos de claves contengan las claves antiguas y nuevas, reinicie cada miembro uno a la vez.
Para cada miembro secundario, conecta 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.
Dado que los keyfiles contienen tanto las claves antiguas como las nuevas, ahora todos los miembros pueden aceptar cualquiera de las claves 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.
Para cada nodo secundario, conecta mongosh al nodo 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.
Todos los miembros ahora aceptan únicamente la nueva clave para la autenticación de membresía.