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

AtlasCustomRole Recurso personalizado

Importante

Los subrecursos heredados se deprecian desde la publicación de sus CRD correspondientes. Si tu configuración actualmente depende de la forma de subrecurso de esta definición de recurso, migra a un CRD.

El recurso personalizado AtlasCustomRole define un rol de base de datos personalizado para asignar privilegios a tus usuarios de bases de datos.

Para crear este rol personalizado dentro de un proyecto dado, debe hacer lo siguiente:

  • Haz referencia al nombre del AtlasProject Recurso Personalizado en el AtlasCustomRole recurso personalizado, para los proyectos que gestionas con Atlas Kubernetes Operator

  • Haga referencia al ID del proyecto de su proyecto Atlas en el recurso personalizado AtlasCustomRole, para los proyectos que no gestiona con Atlas Kubernetes Operator

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

Atlas Kubernetes Operator realiza una de las siguientes acciones utilizando el recurso Atlas API de Rol Personalizado de Base de Datos:

  • Crea un nuevo rol personalizado en la base de datos.

  • Actualiza un rol personalizado existente en la base de datos.

El siguiente ejemplo muestra un recurso personalizado AtlasCustomRole que define el rol personalizado shard-operator, con privilegios para hacer copias de seguridad y monitorear clústeres fragmentados dentro del proyecto my-project.

apiVersion: atlas.mongodb.com/v1
kind: AtlasCustomRole
metadata:
name: shard-operator-role
namespace: mongodb-atlas-system
labels:
mongodb.com/atlas-reconciliation-policy: keep
spec:
projectRef:
name: my-project
namespace: my-operator-namespace
role:
name: my-role
actions:
- name: getShardMap
resources:
cluster: true
- name: shardingState
resources:
cluster: true
- name: connPoolStats
resources:
cluster: true
- name: getLog
resources:
cluster: true
inheritedRoles:
- name: operator-role-1
role: backup

El siguiente ejemplo muestra un AtlasCustomRole CRD independiente que define el mismo rol personalizado shard-operator definido en el ejemplo básico. Esta definición de recurso personalizado le permite crear este rol en un Proyecto que no gestiona en la misma instancia de Atlas Kubernetes Operator con la que define este recurso. Para habilitar la operación independiente, debe usar un externalProjectRef en lugar de un projectRef, y debe proporcionar un connectionSecret directamente ya que este recurso no puede heredar las credenciales de API de su proyecto principal.

apiVersion: atlas.mongodb.com/v1
kind: AtlasCustomRole
metadata:
name: shard-operator-role
namespace: mongodb-atlas-system
labels:
mongodb.com/atlas-reconciliation-policy: keep
spec:
externalProjectRef:
id: 671998971c8520583f24f411
connectionSecret:
name: my-atlas-key
role:
name: my-role
actions:
- name: getShardMap
resources:
cluster: true
- name: shardingState
resources:
cluster: true
- name: connPoolStats
resources:
cluster: true
- name: getLog
resources:
cluster: true
inheritedRoles:
- name: operator-role-1
role: backup

Esta sección describe los parámetros de recursos personalizados AtlasCustomRole disponibles.

metadata.name

Tipo: string

Requerido

Nombre que el AtlasProject Recurso Personalizado utiliza para añadir este rol personalizado a un proyecto.

metadata.namespace

Tipo: string

Opcional

Namespace en el que se desea contener el recurso personalizado atlasCustomRole. Si no se especifica, Atlas Kubernetes Operator utiliza el espacio de nombres actual establecido por kubectl.

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.externalProjectRef.id

Tipo: string

Condicional

ID del proyecto al que pertenece la función personalizada. Debes especificar el ID del grupo de un Proyecto de Atlas existente. Este parámetro es obligatorio para los roles personalizados que pertenecen a proyectos gestionados por:

  • Una instancia diferente de Atlas Kubernetes Operator

  • Herramientas distintas del Atlas Kubernetes Operator

Para roles personalizados que pertenecen a proyectos gestionados por la misma instancia de Atlas Kubernetes Operator, use spec.projectRef.name si no usa spec.externalProjectRef.id.

Un rol personalizado solo puede pertenecer a un proyecto. Para definir el mismo rol personalizado para varios proyectos, cree definiciones personalizadas de recursos para cada proyecto.

spec.projectRef.name

Tipo: string

Condicional

Nombre del proyecto al que pertenece el rol personalizado. Debes especificar un AtlasProject recurso personalizado existente. Este parámetro solo se aplica a los roles personalizados que pertenecen a proyectos gestionados por la misma instancia del Atlas Kubernetes Operator.

Para roles personalizados que pertenecen a proyectos gestionados por:

  • una instancia diferente de Atlas Kubernetes Operator

  • Herramientas distintas del Atlas Kubernetes Operator

usar spec.externalProjectRef.id.

Un rol personalizado solo puede pertenecer a un proyecto. Para definir el mismo rol personalizado para varios proyectos, cree definiciones personalizadas de recursos para cada proyecto.

spec.projectRef.namespace

Tipo: string

Condicional

Espacio de nombres en el que existe el AtlasProject Recurso personalizado especificado en spec.projectRef.name.

Para roles personalizados que pertenecen a proyectos gestionados por:

  • una instancia diferente de Atlas Kubernetes Operator

  • Herramientas distintas del Atlas Kubernetes Operator

no configure este parámetro.

spec.role.actions

Tipo: arreglo

Opcional

Lista de objetos que representan las acciones de privilegio individuales que otorga el rol.

spec.role.actions.name

Tipo: string

Requerido

Etiqueta que identifica la acción de privilegio. Para obtener una lista completa de las acciones disponibles en la API de administración de Atlas, consulta /reference/rol-personalizado-actions.

spec.role.actions.resources

Tipo: arreglo

Opcional

Lista de objetos que indican una base de datos y colección a la que se concede la acción, o indica que la acción se concede en el recurso del clúster.

spec.role.actions.resources.cluster

Tipo: booleano

Opcional

Bandera que indica que se concede la acción sobre el recurso de clúster.

Nota

Este parámetro es excluyente con los parámetros spec.role.actions.resources.collection y spec.role.actions.resources.database.

spec.role.actions.resources.collection

Tipo: string

Opcional

Etiqueta legible por humanos que identifica la colección en la que se concede la acción. Si este valor es un string vacío, la acción se otorga en todas las colecciones dentro de la base de datos especificada en el parámetro spec.role.actions.resources.database.

Nota

Este parámetro es excluyente con el parámetro spec.role.actions.resources.cluster.

spec.role.actions.resources.database

Tipo: string

Opcional

Etiqueta legible por humanos que identifica la base de datos a la que se le otorga la acción.

Nota

Este parámetro es excluyente con el parámetro spec.role.actions.resources.cluster.

spec.role.inheritedRoles

Tipo: arreglo

Opcional

Lista de objetos que representan pares clave-valor que indican el rol heredado y la base de datos en la que se otorga el rol.

spec.role.inheritedRoles.database

Tipo: string

Opcional

Etiqueta legible por humanos que identifica la base de datos en la que se concede el rol heredado.

Nota

Este valor debe ser admin para todos los roles excepto lectura y lectura y escritura.

spec.role.inheritedRoles.name

Tipo: string

Opcional

Etiqueta que identifica de manera única el rol heredado. Puedes especificar otro rol personalizado o un rol incorporado.