Docs Menu
Docs Home
/ /
Administrar usuarios
/ / /

Administrar usuarios de bases de datos mediante autenticación X.509

El operador de Kubernetes admite la administración de usuarios de bases de datos para implementaciones que se ejecutan con Autenticación de clúster internaTLS y X. habilitada.509

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 usar Ops Manager para:

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

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

Después de habilitar509 la autenticación X., puede agregar509 usuarios X. mediante la interfaz de Ops Manager o CustomResourceDefinition.

Antes de administrar usuarios de la base de datos, debe implementar un conjunto de réplicas o un clúster fragmentado con TLS y X.509 habilitados.

Si necesita generar509 certificados X. para sus usuarios de MongoDB,consulte Generar509 certificados de cliente X..

1

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

Nota

Si está implementando un recurso de Ops Manager en una implementación de MongoDB de un clúster de Kubernetes múltiple:

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

  • Establezca --namespace en el mismo ámbito que utilizó para su implementación de MongoDB en un clúster de Kubernetes múltiple, como porkubectl config --namespace "mongodb" ejemplo:.

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

Utilice la siguiente tabla como guía para cambiar 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 recurso de usuario de la base de datos.

Los nombres de recursos deben tener 44 caracteres o menos.

mms-user-1

spec.username

string

La línea de asunto del509 certificado de cliente x firmado por la CA de Kubernetes (Kube CA).

IMPORTANTE: El nombre de usuario debe cumplir con el 2253 3 estándar de nombre distinguido RFC LDAPv.

Para obtener la línea de asunto del certificado X.509, ejecute 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 añadirá el usuario. La configuración es un alias para esta configuración y puede usarse en su spec.cloudManager.configMapRef.name 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 MongoDB al que está asociado este usuario.

my-resource

spec.roles.name

string

El nombre del rol que se otorgará al usuario de la base de datos. El nombre del rol puede ser cualquier rol integrado de MongoDB o un rol personalizado existente 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

Invoque el siguiente comando de Kubernetes para crear su usuario de base de datos:

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

Al crear un nuevo usuario de base de datos MongoDB, el operador de Kubernetes crea automáticamente un nuevo secreto de Kubernetes. Este secreto contiene la siguiente información sobre el nuevo usuario de base de datos:

Nota

Como alternativa, puede especificar un spec.connectionStringSecretName campo opcional en la Especificación de recursos de usuario de MongoDB para especificar el nombre del secreto de la cadena de conexión que crea el operador de Kubernetes.

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

7

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

  1. Del Proyecto Deployment Ver, haga clic en la pestaña Security.

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

Para eliminar un usuario de la base de datos, pase el metadata.name del ConfigMap del usuario al siguiente comando:

kubectl delete mdbu <metadata.name>

En esta página