Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Gestione usuarios de base de datos usando la autenticación X.509

El Operador de Kubernetes admite la gestión de usuarios de bases de datos para implementaciones que se ejecutan con TLS y la autenticación interna del clúster X.509 están habilitadas.

El operador de Kubernetes admite los mecanismos de autenticación SCRAM, LDAP y X.509 en las implementaciones que crea. En una implementación creada por el operador de Kubernetes, no se puede utilizar Ops Manager para:

  • Configura otros mecanismos de autenticación para las implementaciones.

  • Gestiona usuarios que no utilizan autenticación SCRAM, LDAP o X.509.

Después de habilitar la autenticación X.509, puedes añadir usuarios X.509 usando la interfaz de Ops Manager o la Definición de recurso personalizado.

Antes de gestionar los usuarios de la base de datos, debes implementar un set de réplicas o un clúster con TLS y X.509 habilitados.

Si necesita generar certificados X.509 para los usuarios de su MongoDB, consulte Generar certificados de cliente X.509.

1

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>
2
---
apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
name: <resource-name>
spec:
username: <rfc2253-subject>
db: "$external"
mongodbResourceRef:
name: '<MongoDB-Resource-name>'
roles:
- db: <database-name>
name: <role-name>
...
3
4

Utiliza la siguiente tabla para guiarte a través de los cambios en las líneas relevantes en la Especificación de recursos de usuario de MongoDB:

Clave
Tipo
Descripción
Ejemplo

metadata.name

string

El nombre del usuario de base de datos recurso.

Los nombres de recursos deben tener 44 caracteres o menos.

mms-user-1

spec.username

string

La línea de asunto del certificado de cliente x509 firmado por el CA (Kube CA) de Kubernetes.

IMPORTANTE: El nombre de usuario debe cumplir con la norma RFC 2253 estándar de nombre distinguido LDAPv3.

Para obtener la línea de asunto del certificado X.509, ejecuta el siguiente comando:

openssl x509 -noout \
-subject -in <my-cert.pem> \
-nameopt RFC2253

CN=mms-user,U=My Organizational Unit,O=My Org,L=New York,ST=New York,C=US

spec.opsManager.configMapRef.name

string

El nombre del proyecto que contiene la base de datos MongoDB donde se agregará el usuario. La configuración spec.cloudManager.configMapRef.name es un alias de esta configuración y se puede utilizar en su lugar.

my-project

spec.roles.db

string

La base de datos sobre la que puede actuar el rol.

admin

spec.mongodbResourceRef.name

string

El nombre del recurso de MongoDB al que está asociado este usuario.

my-resource

spec.roles.name

string

El nombre del rol para otorgar al usuario de base de datos. El nombre del rol puede ser cualquier rol incorporado de MongoDB o rol personalizado que exista en Cloud Manager u Ops Manager.

readWriteAnyDatabase

5

Puede otorgar roles adicionales a este usuario utilizando el formato definido en el siguiente ejemplo:

---
apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
name: mms-user-1
spec:
username: CN=mms-user,U=My Organizational Unit,O=My Org,L=New York,ST=New York,C=US
project: my-project
db: "$external"
roles:
- db: admin
name: backup
- db: admin
name: restore
...
6

Invoca el siguiente comando de Kubernetes para crear tu usuario de base de datos:

kubectl apply -f <database-user-conf>.yaml

Cuando creas un nuevo usuario de base de datos de MongoDB, el Operador de Kubernetes crea automáticamente un nuevo secreto de Kubernetes. El secreto de Kubernetes contiene la siguiente información sobre el nuevo usuario de la base de datos:

  • username: Nombre de usuario para el usuario de base de datos

  • password: Contraseña para el usuario de base de datos

  • connectionString.standard: Cadena de conexión estándar que puede conectarlo a la base de datos como este usuario de base de datos.

  • connectionString.standardSrv: cadena de conexión de lista de nodos iniciales DNS que puede conectarte a la base de datos como este usuario de base de datos.

Nota

Alternativamente, puedes especificar un campo opcional spec.connectionStringSecretName en la Especificación de Recurso de Usuario de MongoDB para indicar el nombre del secreto de la cadena de conexión que el operador de Kubernetes crea.

Puede usar estas credenciales para conectarse a un recurso de base de datos de MongoDB desde Kubernetes.

7

Puede ver el usuario recién creado en Cloud Manager u Ops Manager:

  1. Desde el proyecto Deployment ver, haz clic en la pestaña Security.

  2. Haz clic en la pestaña anidada MongoDB Users.

Para borrar un usuario de base de datos, pasa el metadata.name del usuario ConfigMap al siguiente comando:

kubectl delete mdbu <metadata.name>

En esta página