Docs Menu
Docs Home
/ /

Rotar claves de cifrado

La mayoría de los requisitos reglamentarios exigen que una clave administrada utilizada para descifrar datos confidenciales se rote y se reemplace con una nueva clave una vez al año.

Nota

Desambiguación

Para renovar las claves de base de datos configuradas con el cifrado AES256-GCM después de una restauración del sistema de archivos, consulte --eseDatabaseKeyRollover en su lugar.

MongoDB ofrece dos opciones para la rotación de claves. Puedes reemplazar el binario por una nueva instancia que utilice una nueva clave. O bien, si usas un servidor KMIP para la gestión de claves, puedes rotar la clave maestra del cliente.

Nota

Para evitar cambiar el quórum de escritura, nunca rote más de un miembro del conjunto de réplicas a la vez.

Para un conjunto de réplicas, para rotar un miembro:

  1. Inicie una nueva mongod instancia, configurada para usar una nueva clave. Incluya la --replSet opción con el nombre del conjunto de réplicas, así como cualquier otra opción específica de su configuración, como --dbpath --bind_ipy.

    mongod --replSet myReplSet --enableEncryption \
    --kmipServerName <KMIP Server HostName> \
    --kmipServerCAFile ca.pem --kmipClientCertificateFile client.pem
  2. Conectar mongosh al conjunto de réplicas principal.

  3. Agrega la instancia al set de réplicas:

    rs.add( { host: <host:port> } )

    Advertencia

    Antes de MongoDB,5.0 un miembro secundario recién añadido seguía contando como miembro con derecho a voto, aunque no pudiera realizar lecturas ni convertirse en miembro principal hasta que sus datos fueran consistentes. Si ejecuta una versión de MongoDB anterior a 5.0 y añade un miembro secundario votes con sus valores y priority mayores que cero, esto puede provocar que la mayoría de los miembros con derecho a voto estén conectados, pero no se pueda elegir ningún miembro principal. Para evitar estas situaciones, considere añadir el nuevo miembro secundario inicialmente con priority :0 votes :0y. A continuación, ejecute rs.status() para asegurarse de que el miembro haya pasado al SECONDARY estado. Finalmente, utilice rs.reconfig() para actualizar su prioridad y votos.

    Durante el proceso de sincronización inicial, se produce el nuevo cifrado de los datos con un conjunto completamente nuevo de claves de base de datos, así como una nueva clave de sistema.

  4. Elimine el nodo antiguo del conjunto de réplicas y borre todos sus datos. Para obtener instrucciones, consulte Eliminar miembros de un conjunto de réplicas autoadministrado.

Si utiliza un servidor KMIP para la gestión de claves, puede rotar la clave maestra del cliente, la única clave administrada externamente. Con la nueva clave maestra, el almacén de claves interno se volverá a cifrar, pero las claves de la base de datos permanecerán intactas. Esto evita tener que volver a cifrar todo el conjunto de datos.

  1. Gire la clave maestra para los miembros secundarios del conjunto de réplicas uno a la vez.

    1. Reinicie el secundario, incluyendo la opción--kmipRotateMasterKey. Incluya cualquier otra opción específica de su configuración, como--bind_ip. Si el miembro ya incluye la opción--kmipKeyIdentifier, actualice la opción--kmipKeyIdentifiercon la nueva clave que se usará u omita la solicitud de una nueva clave al servidor KMIP.

      mongod --enableEncryption --kmipRotateMasterKey \
      --kmipServerName <KMIP Server HostName> \
      --kmipServerCAFile ca.pem --kmipClientCertificateFile client.pem

      Si utiliza un archivo de configuración,security.kmip.rotateMasterKey incluya.

    2. Una vez completada con éxito la rotación de la clave maestra y el nuevo cifrado del almacén de claves de la base de datos,mongod saldrá.

    3. Reinicie el secundario sin el parámetro. Incluya cualquier otra opción específica de su --kmipRotateMasterKey configuración,--bind_ip como.

      mongod --enableEncryption --kmipServerName <KMIP Server HostName> \
      --kmipServerCAFile ca.pem --kmipClientCertificateFile client.pem

      Si utiliza un archivo de configuración, elimine la security.kmip.rotateMasterKey configuración.

  2. Reduce el primario del set de réplicas.

    Conecte a la mongosh rs.stepDown() primaria y use para reducir la primaria y forzar la elección de una nueva primaria:

    rs.stepDown()
  3. Cuando rs.status() indica que el nodo primario ha cedido y otro nodo ha asumido el estado PRIMARY, rota la clave maestra para el nodo que ha cedido:

    1. Reinicie el miembro reducido, incluyendo la opción. Incluya cualquier otra opción específica de su --kmipRotateMasterKey configuración,--bind_ip como. Si el miembro ya incluye la --kmipKeyIdentifier opción,--kmipKeyIdentifier actualice la opción con la nueva clave que se va a usar u omítala.

      mongod --enableEncryption --kmipRotateMasterKey \
      --kmipServerName <KMIP Server HostName> \
      --kmipServerCAFile ca.pem --kmipClientCertificateFile client.pem

      Si utiliza un archivo de configuración,security.kmip.rotateMasterKey incluya.

    2. Una vez completada con éxito la rotación de la clave maestra y el nuevo cifrado del almacén de claves de la base de datos,mongod saldrá.

    3. Reinicie el miembro reducido sin la opción. Incluya cualquier otra opción específica de su --kmipRotateMasterKey configuración,--bind_ip como.

      mongod --enableEncryption --kmipServerName <KMIP Server HostName> \
      --kmipServerCAFile ca.pem --kmipClientCertificateFile client.pem

      Si utiliza un archivo de configuración, elimine la security.kmip.rotateMasterKey configuración.

Volver

Configurar

Obtén una insignia de habilidad

¡Domine "Operaciones de cifrado en reposo" gratis!

Más información

En esta página