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
Mecanismos de autenticación admitidos
El operador de Kubernetes admite los mecanismos de autenticación SCRAM, LDAP, OpenID Connect y X.509 en las implementaciones que crea. En una implementación creada por el operador de Kubernetes, no se puede usar Gerente de operaciones 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.
Requisitos previos
Antes de administrar los usuarios de la base de datos, debe implementar una conjunto 509 de réplicas o clúster fragmentado con TLS y X. habilitados.
Si necesita generar509 certificados X. para sus usuarios de MongoDB,consulte Generar509 certificados de cliente X..
Agregar un usuario de base de datos
Configurar kubectl para establecer como predeterminado su espacio de nombres.
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
contexten el nombre del clúster del operador, como por ejemplo:kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME".Establezca
--namespaceen 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>
Copie el siguiente ejemplo CustomResourceDefinition.
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> ...
Abra su editor de texto preferido y pegue el ejemplo CustomResourceDefinition en un nuevo archivo de texto.
Cambie las líneas de los siguientes parámetros, según sea necesario.
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 | |||
|---|---|---|---|---|---|---|
| string | El nombre del recurso de usuario de la base de datos. Los nombres de recursos deben tener 44 caracteres o menos. |
| |||
| 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: |
| |||
| 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 |
| |||
| string |
| ||||
| string | El nombre del recurso MongoDB al que está asociado este usuario. |
| |||
| 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. |
|
Agregue cualquier rol adicional para el usuario a CustomResourceDefinition.
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 ...
Crear el usuario.
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:
username: Nombre de usuario para el usuario de la base de datospassword: Contraseña para el usuario de la base de datosconnectionString.standard:Cadenade 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 la lista desemillas DNS que puede conectarlo a la base de datos como este 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.
Eliminar un usuario de base de datos
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>