Tengo un cliente MongoDB en tres instancias EC2 y he creado un conjunto de réplicas. La última vez tuve un problema de restricción de espacio que detuvo mi proceso mongod, lo que detuvo la aplicación y ahora, hace un par de días, algunas de mis tablas habían desaparecido de la base de datos, así que configuré el registro y todo en mi base de datos solo para atrapar si algo así sucede de nuevo. En un nuevo incidente esta mañana, no pude iniciar sesión en mi sistema y fue entonces cuando descubrí que toda la base de datos estaba vacía. Revisé otra pregunta SO como esta que sugiere configurar un TTL. Lo cual no he hecho en absoluto.
Ahora, ¿cómo depuro esta situación y hago un análisis de causa raíz adecuado? Ni siquiera puedo encontrar nada en mis registros de depuración. Las mesas simplemente desaparecieron. ¿Cómo configuro un mecanismo de registro adecuado y cómo me aseguro de que todas mis tablas nunca se vuelvan a eliminar?
Hoy recibí un correo de Amazon que probablemente estaba ejecutando una versión no segura de MongoDB y que puede haber causado este problema. Entonces, quien se enfrente a este problema, consulte la Lista de verificación de seguridad proporcionada por MongoDB . Hay algunos puntos que son absolutamente necesarios allí.
1. Habilite el control de acceso y aplique la autenticación
2. Cifrar la comunicación
3. Limite la exposición a la red
Estos tres son el núcleo y, dependiendo de cuántas personas accedan a su base de datos, puede Configure Role-Based Access Control .
Estas son todas las cosas que he hecho. Antes de este incidente no me había tomado la seguridad tan en serio, pero después me golpeó. Me aseguré de tener todas las precauciones necesarias en su lugar. Espero que esto ayude a alguien.