Problema de seguridad de implementación de Google Cloud Compute MongoDB y problema de archivo de claves

Problema de seguridad de implementación de Google Cloud Compute MongoDB y problema de archivo de claves

Me encontré con este problema súper molesto hoy.

Básicamente, configuré una base de datos MongoDB utilizando la oferta de GCP Marketplace. Configura un nodo primario, un secundario y un árbitro. Lo cual es genial. Lo que no hace es seguridad. En absoluto. Así que, naturalmente, tuve que configurarlo yo mismo. Bueno, ahora, 20 horas después y algunos buenos golpes en mi cara, todavía estoy luchando para que funcione.

Básicamente, esta es mi configuración parcial:

security:
  authorization: enabled
  keyFile: '/etc/mongodKey'

Si comento, keyFilela instancia se ejecuta. Pero no puede conectarse a ningún otro nodo debido a que la seguridad está habilitada. Y no, no puedo desactivarlo, ¿estás enojado?

Sin embargo, lo que pasa con el archivo clave... Según tengo entendido, mongodno se puede abrir, por lo que no se inicia. ¿Supongo que /etcno es un buen lugar para ponerlo? Probé con otras carpetas, pero fue en vano. Nada funciona.

Y necesito tener esa medida de seguridad, ya que mis colegas deben conectarse a la base de datos usando Robo 3T. Por lo tanto, descartar la dirección IP externa está fuera de discusión.

¿Qué hago mal? Por favor ayuda ya que me estoy arrancando el pelo.

Esta es la salida de sudo service mongod status:

● mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2019-08-21 15:28:08 UTC; 4min 29s ago
     Docs: https://docs.mongodb.org/manual
  Process: 1024 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=1/FAILURE)
 Main PID: 1024 (code=exited, status=1/FAILURE)
Aug 21 15:28:08 m-vm-0 systemd[1]: Started MongoDB Database Server.
Aug 21 15:28:08 m-vm-0 systemd[1]: mongod.service: Main process exited, code=exited, status=1/F
Aug 21 15:28:08 m-vm-0 systemd[1]: mongod.service: Unit entered failed state.
Aug 21 15:28:08 m-0 systemd[1]: mongod.service: Failed with result 'exit-code'.

Editar:

Revisé el mongod.log. Sí, es una cuestión de permiso. Y no puedo solucionarlo.

Intenté hacerlo sudo chmod 400 /etc/mongodKeypero no hace nada. Por favor, alguien, ¿dónde coloco el archivo clave para que mongodb pueda leerlo? ¡Esto es muy importante!

Respuesta1

Si utiliza la implementación del mercado GCP MongoDB denominada "MongoDB", que le permite configurar la replicación, sepa lo siguiente:

No configuran la seguridad en la configuración inicial, por lo que existen 2 opciones:

  1. Apague la IP externa
  2. Habilitar autorización en elmongod.conf

Si opta por la primera solución, no podrá conectarse fácilmente a la base de datos desde ninguna otra fuente externa.

Si opta por la segunda solución, deberá hacer lo siguiente:

  1. Genera una clave, todo el proceso lo puedes encontrar aquí:https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/

  2. Copie el contenido del archivo

  3. SSH en todas tus instancias de Compute Engine
  4. Elige un directorio
  5. sudo touch <path to key>
  6. sudo nano <path to key>
  7. Pega la clave que generaste en tu computadora y guarda
  8. sudo chmod 600 <path to key>
  9. sudo chown mongodb: <path to key>
  10. Actualice su mongod.confque se encuentra en/etc/mongod.conf
  11. Descomentar security, authorization,keyFile
  12. Proporcione la ruta bajo la clave keyFilea su archivo de claves
  13. Detener todas las instancias e iniciarlas de nuevo.

Ahora MongoDB tiene acceso al archivo de claves.

Qué pesadilla. Y chmod 400 <path to key>no funcionó para mí como se especifica en la documentación. Tuve que configurarlo en chmod 600 <path to key>.

información relacionada