Docs Home → Atlas Open Service Broker
Gestionar usuarios de base de datos
En esta página
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.
Requisitos previos
Antes de administrar usuarios de la base de datos, debe implementar un conjunto de réplicas.
Agregar un usuario de base de datos
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.
Cree el enlace de servicio que corresponde al usuario Atlas.
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> Abra su editor de texto preferido y pegue la definición del recurso en un nuevo archivo de texto.
Configure los ajustes necesarios.
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 | 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-SHAautenticación en la base de datosadminreadWriteAnyDatabasepermisos en la base de datosadmin
Agregue cualquier configuración adicional para el usuario.
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:
databaseNamegroupIdpasswordusername
Ejemplo
Esta definición de recurso de ejemplo crea:
un recurso de Kubernetes llamado
atlas-user-1en el espacio de nombresatlasyUn usuario de base de datos Atlas con la siguiente configuración:
SCRAM-SHAautenticación en la base de datosadmincon nombre de usuario y contraseña generados aleatoriamentereadWritepermisos para la colecciónlistingsAndReviewsen la base de datossample_airbnbdbAdminpermisos para la base de datossample_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
Ver el estado del nuevo usuario.
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
Recupera los detalles de conexión de Atlas del nuevo usuario.
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.
Pase
metadata.nameymetadata.namespacedeatlas-user-1.yamlal 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 Pase
data.usernamedel 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.passwordydata.uripara 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.
Eliminar un usuario de base de datos
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.