Docs Menu

Docs HomeAtlas Open Service Broker

Gestionar usuarios de base de datos

En esta página

  • Requisitos previos
  • Agregar un usuario de base de datos
  • Eliminar un usuario de base de datos

Importante

Atlas Open Service Broker está obsoleto. Utilice el Operador Atlas de MongoDB en su lugar.

Puede crear y eliminar usuarios de la base de datos Atlas a través de Atlas Open Service Broker.

Antes de administrar usuarios de la base de datos, debe implementar un conjunto de réplicas.

Para crear un usuario de base de datos, primero se define un recurso ServiceBinding en Kubernetes. A continuación, Atlas Open Service Broker crea el usuario de base de datos correspondiente en Atlas.

1
  1. Copie el siguiente ejemplo de definición de recurso.

    Este es un ArchivoYAML que puedes modificar para cumplir con tu configuración deseada.

    apiVersion: servicecatalog.k8s.io/v1beta1
    kind: ServiceBinding
    metadata:
    name: <USER_NAME>
    namespace: <NAMESPACE>
    spec:
    instanceRef:
    name: <CLUSTER_NAME>
  2. Abra su editor de texto preferido y pegue la definición del recurso en un nuevo archivo de texto.

2

Las configuraciones resaltadas son necesarias para crear un usuario de base de datos:

Clave
Descripción
Ejemplo
metadata.name
El nombre del recurso de enlace de servicio en Kubernetes.
atlas-user-1
metadata.namespace
El espacio de nombres de Kubernetes donde se crea el recurso de enlace de servicio.
atlas
spec.intanceRef.name
El nombre del recurso ServiceInstance en Kubernetes que corresponde a su clúster Atlas.
my-atlas-cluster

Al crear un usuario de base de datos, Atlas Open Service Broker genera aleatoriamente un nombre de usuario y una contraseña de Atlas para dicho usuario. El Catálogo de Servicios almacena automáticamente el nombre de usuario, la contraseña y la URI de conexión de Atlas del usuario en un secreto de Kubernetes.

Si no especifica configuraciones adicionales, el usuario de la base de datos se crea con los siguientes atributos predeterminados:

  • SCRAM-SHA autenticación en la base de datos admin

  • readWriteAnyDatabase permisos en la base de datos admin

3

Puede configurar ajustes adicionales para el usuario con la spec.parameters.user clave. Estos ajustes corresponden a los parámetros del cuerpo de la solicitud del método de la API pública "Crear un usuario de base de datos".

Importante

Los siguientes parámetros de API se sobrescriben con las configuraciones requeridas de Atlas Open Service Broker del paso anterior y no se deben especificar:

  • databaseName

  • groupId

  • password

  • username

Ejemplo

Esta definición de recurso de ejemplo crea:

  1. un recurso de Kubernetes llamado atlas-user-1 en el espacio de nombres atlas y

  2. Un usuario de base de datos Atlas con la siguiente configuración:

    • SCRAM-SHA autenticación en la base de datos admin con nombre de usuario y contraseña generados aleatoriamente

    • readWrite permisos para la colección listingsAndReviews en la base de datos sample_airbnb

    • dbAdmin permisos para la base de datos sample_geospatial

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
name: atlas-user-1
namespace: atlas
spec:
instanceRef:
name: my-atlas-cluster
parameters:
user:
roles:
- databaseName: sample_airbnb
collectionName: listingsAndReviews
roleName: readWrite
- databaseName: sample_geospatial
roleName: dbAdmin
4
5

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

kubectl apply -f atlas-user-1.yaml
6

Para ver el estado del nuevo usuario dentro del clúster de Kubernetes, pase metadata.name de replica-set.yaml al siguiente comando:

svcat describe instance <METADATA.NAME> -n <METADATA.NAMESPACE>

El estado del usuario aparece bajo Bindings.

Ejemplo

Bindings:
NAME STATUS
+---------------+--------+
atlas-user-1 Ready

Para ver una vista detallada del usuario, pase metadata.name de atlas-user-1.yaml al siguiente comando:

svcat describe binding <METADATA.NAME> -n <METADATA.NAMESPACE>

El comando devuelve los detalles del usuario.

Ejemplo

Name: atlas-user-1
Namespace: atlas
Status: Ready - Injected bind result @ 2019-08-24 20:57:43 +0000 UTC
Secret: atlas-user-1
Instance: my-replica-set
Parameters:
user:
roles:
- collectionName: listingsAndReviews
databaseName: sample_airbnb
roleName: readWrite
- databaseName: sample_geospatial
roleName: dbAdmin
Secret Data:
password 44 bytes
uri 58 bytes
username 36 bytes
7

Los detalles de conexión del usuario se almacenan en un secreto que tiene el mismo nombre y namespace que el recurso ServiceBinding. El secreto está codificado en base64 por Kubernetes y contiene el nombre de usuario de Atlas, la contraseña y el URI del usuario.

  1. Pase metadata.name y metadata.namespace de atlas-user-1.yaml al siguiente comando para recuperar el secreto de Kubernetes para el usuario:

    kubectl get secret <METADATA.NAME> -n <METADATA.NAMESPACE> -o yaml

    El comando devuelve la contraseña de Atlas, el URI y el nombre de usuario codificados en base64del usuario:

    Ejemplo

    apiVersion: v1
    data:
    password: MlFhTnB4NzNoaEYwZWFKFMCjRUlNU2Iwbk5OMnJPT0JGZnZOeldKMS16Zz0=
    uri: bW9uZ29kYitzcnY6Ly8wMTY5YjA5My1jNTEyLTExZTktOGQyMC1kbjZyNy5tb25nb2RiLXFhLm5ldA==
    username: NTJjMzVlNjctYzdhMy0xMWKR7ThkMjAtMDI0MmFjMTEwMDA3
    kind: Secret
    metadata:
    creationTimestamp: "2019-08-26T01:46:30Z"
    name: atlas-user-1
    namespace: atlas
    ownerReferences:
    - apiVersion: servicecatalog.k8s.io/v1beta1
    blockOwnerDeletion: true
    controller: true
    kind: ServiceBinding
    name: atlas-user-1
    uid: 52c35ea1-c7a3-11e9-8d20-0242ac113457
    resourceVersion: "79692"
    selfLink: /api/v1/namespaces/atlas/secrets/atlas-user-1
    uid: 14829566-4859-4b47-97f6-d0a2f7425906
    type: Opaque
  2. Pase data.username del secreto al siguiente comando para decodificar el nombre de usuario Atlas del usuario:

    echo '<DATA.USERNAME>' | base64 --decode

    El comando devuelve el nombre de usuario de Atlas decodificado:

    Ejemplo

    52c35e67-c7a3-11e9-8d20-0374ac110007

    Repita el comando con data.password y data.uri para decodificar la contraseña Atlas y el URI del usuario.

    echo '<DATA.PASSWORD>' | base64 --decode
    echo '<DATA.URI>' | base64 --decode

Tip

Conexión a su clúster Atlas

Para conectarte a tu implementación, introduce el URI de Atlas decodificado y el nombre de usuario en el siguiente comando:

mongo <DECODED_URI> --username <DECODED_USERNAME>

Cuando se le solicite la contraseña, ingrese la contraseña Atlas decodificada del usuario.

Para eliminar un usuario de la base de datos, pase el metadata.name del recurso ServiceBinding a uno de los siguientes comandos:

kubectl delete servicebindings <METADATA.NAME> \
-n <METADATA.NAMESPACE>

Para confirmar que se ha eliminado el usuario, pase metadata.name del recurso del clúster al siguiente comando:

svcat describe instance <METADATA.NAME> -n <METADATA.NAMESPACE>

El comando devuelve No bindings defined bajo Bindings.

Compartir comentarios
© 2023 MongoDB, Inc.

Acerca de

© 2023 MongoDB, Inc.