Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

AtlasDatabaseUser Recurso personalizado

El AtlasDatabaseUser recurso personalizado configura el usuario de base de datos en un proyecto Atlas. Creas usuarios de base de datos por proyecto, no por clúster. Por lo tanto, la configuración del recurso personalizado AtlasDatabaseUser contiene una referencia al AtlasProject Recurso personalizado. Cree AtlasProject Recurso Personalizado de antemano.

Importante

Recursos personalizados ya no borran objetos por defecto

  • Atlas Kubernetes Operator uses custom resource archivos de configuración to manage your Atlas configuration, but as of Atlas Kubernetes Operator 2.0, custom resources you borrar in Kubernetes are no longer (por defecto) borrados in Atlas. En su lugar, Atlas Kubernetes Operator simplemente deja de gestionar esos recursos en Atlas. Por ejemplo, si eliminas un AtlasProject Custom recurso en Kubernetes, de forma predeterminada, el Atlas Kubernetes Operator ya no elimina automáticamente el Proyecto correspondiente de Atlas. Este cambio de comportamiento está diseñado para ayudar a prevenir eliminaciones accidentales o inesperadas. Para saber más, incluido cómo revertir este comportamiento al por defecto utilizado antes de Atlas Kubernetes Operator 2.0, consulta Nuevo valor por defecto: Protección de Eliminación en Atlas Kubernetes Operator 2.0.

    Del mismo modo, Atlas Kubernetes Operator no elimina los equipos de Atlas si los eliminas de un proyecto Atlas en Kubernetes utilizando Atlas Kubernetes Operator.

  • Define explícitamente los detalles de configuración que deseas para evitar el uso implícito de los valores de configuración por defecto de Atlas. En algunos casos, heredar los valores por defecto de Atlas puede crear un ciclo de conciliación que impida que el recurso personalizado alcance un estado de READY. Por ejemplo, definir explícitamente el comportamiento de escalado automático deseado en el recurso personalizado AtlasDeployment, como se muestra en el ejemplo incluido, garantiza que un tamaño de instancia estático en el recurso personalizado no se aplique repetidamente a una implementación de Atlas que tiene el escalado automático habilitado.

    autoScaling:
    diskGB:
    enabled: true
    compute:
    enabled: true
    scaleDownEnabled: true
    minInstanceSize: M30
    maxInstanceSize: M40

El siguiente ejemplo muestra una referencia al AtlasProject Custom recurso:

spec:
projectRef:
name: my-project

Atlas Kubernetes Operator asegura que la configuración del usuario de base de datos en Atlas coincida con la configuración en Kubernetes.

Atlas Kubernetes Operator realiza una de las siguientes acciones usando la API de Usuarios de Base de Datos de Atlas:

  • Crea un nuevo usuario de base de datos.

  • Actualiza un usuario existente.

Antes de crear un usuario de base de datos, debe crear un secreto opaco con un solo campo password para iniciar sesión en la base de datos del clúster Atlas.

Nota

Debe crear el secreto en el mismo namespace donde se encuentra el recurso personalizado AtlasDatabaseUser.

El siguiente ejemplo crea un secreto:

kubectl create secret generic the-user-password --from-literal="password=P@@sword%"

El Atlas Kubernetes Operator supervisa los secretos solo con la etiqueta atlas.mongodb.com/type=credentials para evitar la supervisión de secretos innecesarios.

El siguiente ejemplo etiqueta un secreto:

kubectl label secret the-user-password atlas.mongodb.com/type=credentials

Después de que Atlas Kubernetes Operator cree o actualice correctamente el usuario de base de datos en Atlas, Atlas Kubernetes Operator crea o actualiza los secretos de conexión en el mismo namespace donde se encuentra el recurso personalizado AtlasDatabaseUser.

Los secretos de conexión contienen toda la información necesaria para conectar con los clústeres de Atlas, incluidos los siguientes parámetros:

Parameter
Descripción

connectionStringStandard

mongodb:// público URI.

connectionstringStandardSrv

mongodb+srv:// público URI.

username

Nombre que identifica al usuario de base de datos.

password

Contraseña del usuario de base de datos.

Las aplicaciones que se ejecutan en Kubernetes pueden utilizar esta información para conectarse a los clústeres de Atlas. Puedes montar los secretos en los pods de la aplicación como archivos, y el proceso de la aplicación puede leer estos archivos para obtener datos.

El siguiente ejemplo muestra cómo montar el secreto como una variable de entorno:

spec:
containers:
- name: test-app
env:
- name: "CONNECTIONSTRING"
valueFrom:
secretKeyRef:
name: project-cluster-basic-theuser
key: connectionStringStandardSrv

El siguiente ejemplo muestra cómo montar el secreto como archivos:

spec:
containers:
- name: test-app
volumeMounts:
- mountPath: /var/secrets/
name: theuser-connection
volumes:
- name: theuser-connection
secret:
secretName: project-cluster-basic-theuser

Por defecto, Atlas Kubernetes Operator crea el secreto de conexión del usuario de base de datos para cada clúster en el mismo proyecto al que hace referencia el AtlasDatabaseUser. Puede cambiar este comportamiento con el parámetro spec.scopes. Este parámetro restringe los clústeres donde se crea el usuario de base de datos. El nombre del secreto de conexión utiliza el siguiente formato: <project_name>-<cluster_name>-<db_user_name>.

El siguiente ejemplo muestra un proyecto Atlas y los clústeres que lo referencian:

apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: p1
projectIpAccessList:
- ipAddress: "192.0.2.15"
comment: "IP address for Application Server A"
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-aws-cluster
spec:
name: aws-cluster
projectRef:
name: my-project
providerSettings:
instanceSizeName: M10
providerName: AWS
regionName: US_EAST_1
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-gcp-cluster
spec:
name: gcp-cluster
projectRef:
name: my-project
providerSettings:
instanceSizeName: M10
providerName: GCP
regionName: EASTERN_US

El siguiente ejemplo muestra una especificación de recurso personalizado AtlasDatabaseUser con spec.scopes omitido:

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
description: "User for the reporting application."
roles:
- roleName: readWriteAnyDatabase
databaseName: admin
projectRef:
name: my-project
username: theuser
passwordSecretRef:
name: the-user-password

Después de que crees este recurso personalizado, Atlas Kubernetes Operator crea los siguientes secretos:

  • p1-aws-cluster-theuser

  • p1-gcp-cluster-theuser

El siguiente ejemplo muestra una especificación de recurso personalizado AtlasDatabaseUser con spec.scopes configurado solo en el clúster de Google Cloud:

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project
username: theuser
passwordSecretRef:
name: the-user-password
scopes:
- type: CLUSTER
name: gcp-cluster

Después de que actualices este recurso personalizado, Atlas Kubernetes Operator remueve theuser de aws-cluster. También elimina el secreto p1-aws-cluster-theuser del clúster de Kubernetes.

El siguiente ejemplo muestra una especificación de recurso personalizado AtlasDatabaseUser con autenticación X.509.

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
username: CN=my-x509-authenticated-user,OU=organizationalunit,O=organization
databaseName: "\$external"
x509Type: "CUSTOMER"
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project

El siguiente ejemplo muestra una especificación de recurso personalizado AtlasDatabaseUser con OIDC.

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project
username: my-oidc-group-id/my-idp-group-name
oidcAuthType: IDP_GROUP

El siguiente ejemplo muestra una especificación de recursos personalizados AtlasDatabaseUser con AWS IAM.

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
username: arn:aws:iam::123456789012:user/johndoe
databaseName: "$external"
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project
awsIamType: USER

Esta sección describe algunos de los parámetros clave AtlasDatabaseUser de recursos personalizados disponibles. Para ver una lista completa de los parámetros disponibles, consulta la API de usuarios de bases de datos de Atlas. Consulta estas descripciones, los ejemplos disponibles y la documentación API para personalizar tus especificaciones.

spec.awsIamType

Tipo: string

Opcional

Etiqueta que indica si el usuario de base de datos se autentica con las credenciales de AWS IAM asociadas con el usuario o al rol del usuario. Si no especifica un valor, Atlas utiliza el valor por defecto de NONE.

Este parámetro acepta:

Ninguno

User who doesn't use AWS IAM authentication.

USER

El usuario que se autentica con las credenciales de AWS IAM asociadas con el usuario.

rol

Usuario que se autentica con las credenciales de AWS IAM asociadas al rol del usuario.

spec.connectionSecret.name

Tipo: string

Condicional

Nombre del secreto opaco que contiene el Identificador de la Organización y claves de API que Atlas Kubernetes Operator utiliza para conectarse a Atlas. Si no se especifica, el Atlas Kubernetes Operator volverá a lo siguiente:

  • El parámetro spec.connectionSecretRef.name de la matriz principal atlasProject

  • El secreto global por defecto, si spec.connectionSecretRef.name no está definido para el atlasProjectprincipal

Este parámetro es obligatorio para CRD independientes.

El Atlas Kubernetes Operator supervisa los secretos solo con la etiqueta atlas.mongodb.com/type=credentials para evitar la supervisión de secretos innecesarios.

El siguiente ejemplo etiqueta un secreto:

kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.databaseName

Tipo: string

Requerido

Base de datos contra la cual el usuario de base de datos se autentica. Los usuarios de bases de datos deben proporcionar tanto un nombre de usuario como una base de datos de autenticación para iniciar sesión en MongoDB.

Si el usuario de base de datos se autentica con SCRAM-SHA, este valor debe ser admin.

Si el usuario de base de datos se autentica con X.509, este valor debe ser \$external.

Si el usuario de base de datos se autentica con OpenID Connect, este valor debe ser $external.

spec.description

Tipo: string

Opcional

Descripción de este usuario de base de datos de hasta 100 caracteres.

spec.externalProjectRef.id

Tipo: string

Condicional

ID del Proyecto al que pertenece el usuario de base de datos. Debe especificar el ID del grupo de un Proyecto Atlas existente. Este parámetro es obligatorio para los usuarios de bases de datos que pertenecen a proyectos gestionados por:

  • Una instancia diferente de Atlas Kubernetes Operator

  • Herramientas distintas del Atlas Kubernetes Operator

Para usuarios de bases de datos que pertenecen a proyectos gestionados por la misma instancia de Atlas Kubernetes Operator, utiliza spec.projectRef.name si no utilizas spec.externalProjectRef.id.

spec.oidcAuthType

Tipo: string

Condicional

Método OIDC mediante el cual la base de datos autentica el/a spec.username. proporcionad@

Si el usuario de base de datos se autentica con OpenID Connect, este valor debe ser IDP_GROUP.

Este parámetro acepta:

Ninguno

Usuario que no utiliza la autenticación OIDC.

USER

Usuario que utiliza el OIDC gestionado por Atlas.

Debe especificar $external para el parámetro spec.databaseName.

spec.passwordSecretRef

Tipo: string

Condicional

Referencia al secreto que contiene la contraseña. El método de autenticación SCRAM-SHA requiere este parámetro.

spec.projectRef.name

Tipo: string

Condicional

Nombre del proyecto al que pertenece el usuario de la base de datos. Debe especificar un AtlasProject Recurso personalizado existente. Este parámetro solo se aplica a los usuarios de bases de datos que pertenecen a Proyectos gestionados por la misma instancia del Atlas Kubernetes Operator.

Para las usuarias y los usuarios de bases de datos que pertenecen a proyectos gestionados por:

  • una instancia diferente de Atlas Kubernetes Operator

  • Herramientas distintas del Atlas Kubernetes Operator

usar spec.externalProjectRef.name.

spec.roles

Tipo: arreglo

Requerido

Lista que contiene los roles del usuario y las bases de datos o colecciones en las que se aplican los roles. Para obtener una lista completa de parámetros disponibles, consulte la Atlas API de usuarios de bases de datos.

spec.scopes

Tipo: arreglo

Opcional

Lista que contiene los clústeres donde se crea el usuario.

spec.scopes.name

Tipo: string

Condicional

Etiqueta legible por humanos que identifica el clúster al que el usuario de base de datos puede acceder. Debe especificar este parámetro si especificó spec.scopes.

spec.scopes.type

Tipo: string

Condicional

Etiqueta legible por humanos que identifica el tipo de recurso al que puede acceder el usuario de base de datos. Atlas Kubernetes Operator actualmente solo admite CLUSTER. Debe especificar este parámetro si especificó spec.scopes.

spec.username

Tipo: string

Requerido

Etiqueta legible por humanos que identifica al usuario necesario para autenticarse en la base de datos MongoDB o colección.

Si el usuario de base de datos se autentica con OpenID Connect, este valor debe ser su Atlas OIDC proveedor de identidad seguido de una barra diagonal / y su proveedor de identidad nombre de grupo.

Si el usuario de la base de datos se autentica con las credenciales de AWS IAM, este valor debe ser el usuario que se autentica con las credenciales de AWS IAM o el rol del usuario que se autentica con las credenciales de AWS IAM en formato de Amazon Resource Name.

spec.x509Type

Tipo: string

Opcional

X.509 método mediante el cual la base de datos autentica el/la spec.username proporcionado/a. Si no especifica un valor, Atlas utiliza el valor por defecto de NONE.

Este parámetro acepta:

Ninguno

Usuario que no usa autenticación X.509.

gestionado/gestionada

Usuario que utiliza X.509 gestionado por Atlas.

Debe especificar \$external para el parámetro spec.databaseName.

cliente

Usuario que utiliza Self-Managed X.509. Los usuarios creados con este x509Type requieren un nombre común (CN) en el parámetro spec.username. Para obtener más información, consulte la RFC 2253.

Debe especificar \$external para el parámetro spec.databaseName.

Para conocer los parámetros de configuración disponibles desde la API, consulte la API de usuarios de bases de datosde Atlas.

Actualmente, Atlas Kubernetes Operator no admite los siguientes parámetros disponibles en Atlas API de usuarios de base de datos:

  • ldapAuthType

No especifiques los siguientes parámetros: