Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

Generar certificados de cliente X.509

El operador de controladores de MongoDB para Kubernetes puede implementar instancias de MongoDB con autenticación X.509 habilitada. Si se ha habilitado la autenticación X.509 para la implementación, debe generar y usar un certificado X.509 para conectarse a la implementación. Este nuevo certificado de cliente debe estar firmado por la misma CA que firma los certificados de servidor para que la implementación de MongoDB lo acepte.

Utiliza el procedimiento descrito en este documento para utilizar un certificado X.509 para conectarte a tu implementación de MongoDB habilitada para X.509.

Si utilizas HashiCorp Vault como tu herramienta de almacenamiento secreto, puedes crear un secreto de Vault en su lugar.

Nota

Para automatizar la renovación de certificados para las implementaciones de Ops Manager, considera configurar la integración cert-manager.

Nota

Una descripción completa de Transport Layer Security (TLS), certificados de infraestructura de llave pública (PKI) y Certificate Authorities está fuera del alcance de este documento. Esta página asume conocimientos previos de TLS y autenticación X.509.

Primero, cree el certificado de cliente. Luego, crea un usuario de MongoDB y conéctate a la implementación habilitada para X.509.

1

Para uso en producción, tu implementación de MongoDB debe usar certificados válidos generados y firmados por una CA. Usted o su organización pueden generar y mantener un CA independiente usando herramientas nativas de Kubernetes como cert-manager.

La obtención y gestión de certificados está fuera del alcance de esta documentación.

Importante

Debe concatenar el certificado TLS de tu cliente y la clave del certificado en un archivo .pem. Debe presentar este archivo .pem cuando se conecte a su implementación de MongoDB habilitado para X.509.

Para conocer las propiedades que deben tener tus certificados de cliente, consulta Requisitos del certificado de cliente en el Manual de MongoDB.

2

Si aún no lo ha hecho, ejecute el siguiente comando para ejecutar todos los comandos de kubectl en el namespace que creó.

Nota

Si estás implementando un recurso de Ops Manager en una implementación de MongoDB multidispositivo en clústeres de Kubernetes:

  • Defina context como el nombre del clúster operador, por ejemplo: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME".

  • Establece el --namespace en el mismo ámbito que utilizaste para tu implementación de MongoDB de clústeres multi-Kubernetes, como por ejemplo: kubectl config --namespace "mongodb".

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
3

Guarda el siguiente ConfigMap como x509-mongodb-user.yaml:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDBUser
4metadata:
5 name: new-x509-user
6spec:
7 username: "CN=my-x509-authenticated-user,OU=organizationalunit,O=organization"
8 db: "$external"
9 mongodbResourceRef:
10 name: '<name of the MongoDB resource>'
11 roles:
12 - db: "admin"
13 name: "readWriteAnyDatabase"

Este archivo ConfigMap .yaml describe un objeto personalizado MongoDBUser. Se pueden utilizar estos objetos personalizados para crear usuarios de MongoDB. Para obtener más información, consulte Especificación de recursos de usuario de MongoDB.

En este ejemplo, el ConfigMap describe al usuario como un usuario X.509 que el cliente puede utilizar para conectarse a MongoDB con el certificado X.509 correspondiente.

4

Ejecuta el siguiente comando para aplicar el ConfigMap y crear el usuario MongoDB de X.509:

kubectl apply -f x509-mongodb-user.yaml

Deberías ver un resultado similar al siguiente:

mongodbuser.mongodb.com/new-x509-user created
5

Ejecute el siguiente comando para comprobar el estado del new-x509-user:

kubectl get mdbu/new-x509-user -o yaml

Deberías ver un resultado similar al siguiente:

NAME CREATED AT
new-x509-user 8m
6

Ejecute el siguiente comando para encontrar en cada pod donde el Operador de Kubernetes ha montado el secreto de CA:

kubectl get statefulset <metadata.name> -o yaml

En la salida, encuentra el secret-ca montaje:

volumeMounts:
- mountPath: /opt/scripts
name: database-scripts
readOnly: true
- mountPath: /var/lib/mongodb-automation/secrets/ca
name: secret-ca
readOnly: true
- mountPath: /var/lib/mongodb-automation/secrets/certs
name: secret-certs
readOnly: true

En el siguiente paso, cuando te conectes a tu implementación de la base de datos, agrega secret-ca al mountPath, lo que forma la ruta completa:

/var/lib/mongodb-automation/secrets/ca/secret-ca
7

Una vez que haya creado su usuario X.509, intente conectarse a la implementación utilizando el MongoDB Shell (mongosh):

mongosh --host {host} --port {port} --tls \
--tlsCAFile </path/to/secret-ca> \
--tlsCertificateKeyFile <your-cert>.pem \
--authenticationMechanism MONGODB-X509 \
--authenticationDatabase '$external'
mongosh --host {host} --port {port} --ssl \
--sslCAFile </path/to/secret-ca> \
--sslPEMKeyFile <your-cert>.pem \
--authenticationMechanism MONGODB-X509 \
--authenticationDatabase '$external'