Docs Menu
Docs Home
/ /
Recursos personalizados
/ / /

AtlasCustomRole Recurso personalizado

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

Para crear este rol personalizado dentro de un proyecto determinado, debes:

  • Referencia a la Nombre delAtlasProject recurso personalizado en el AtlasCustomRole recurso personalizado, para los proyectos que administra con Atlas Kubernetes Operator

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

Importante

Los recursos personalizados ya no eliminan objetos de forma predeterminada

  • El Operador de Kubernetes de Atlas utiliza archivos de configuración de recursos personalizados para administrar la configuración de Atlas. Sin embargo, a partir del Operador de Kubernetes 2.0 de Atlas, los recursos personalizados que elimine en Kubernetes ya no se eliminan (de forma predeterminada) en Atlas. En su lugar, el Operador de Kubernetes de Atlas simplemente deja de administrar esos recursos en Atlas. Por ejemplo, si elimina un AtlasProject Recurso Personalizado en Kubernetes, el Operador de Kubernetes de Atlas ya no elimina automáticamente el proyecto correspondiente de Atlas. Este cambio de comportamiento tiene como objetivo evitar eliminaciones accidentales o inesperadas. Para obtener más información, incluido cómo revertir este comportamiento al valor predeterminado utilizado antes del Operador de Kubernetes 2 0de Atlas., consulte Nuevo valor predeterminado: Protección contra eliminaciones en el Operador de Kubernetes 2 de0 Atlas..

    De manera similar, Atlas Kubernetes Operator no elimina equipos de Atlas si los elimina de un proyecto Atlas en Kubernetes con Atlas Kubernetes Operator.

  • Defina explícitamente los detalles de configuración deseados para evitar el uso implícito de los valores predeterminados de Atlas. En algunos casos, heredar los valores predeterminados de Atlas puede generar un bucle de conciliación que impide que su recurso personalizado alcance el estado READY. Por ejemplo, definir explícitamente el comportamiento de escalado automático deseado en su recurso personalizado AtlasDeployment, como se muestra en el ejemplo incluido, garantiza que un tamaño de instancia estático en su recurso personalizado no se aplique repetidamente a una implementación de Atlas con el escalado automático habilitado.

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

El operador de Kubernetes de Atlas realiza una de las siguientes acciones utilizando el recurso de API de rol de base de datos personalizada de Atlas:

  • Crea una nueva función de base de datos personalizada.

  • Actualiza una función de base de datos personalizada existente.

El siguiente ejemplo muestra un recurso personalizado AtlasCustomRole que define el rol personalizado shard-operator, con privilegios para realizar copias de seguridad y supervisar 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 shard-operator rol personalizado definido en el Ejemplo Básico. Esta definición de recurso personalizado le permite crear este rol en un proyecto que no administra 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 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 AtlasTeam parámetros de recursos personalizados disponibles.

metadata.name

Tipo: string

Requerido

Nombre que utiliza el recurso AtlasProject personalizado para agregar este equipo a un proyecto.

metadata.namespace

Tipo: string

Opcional

Namespace distinto de default que quieres que contenga el recurso personalizado atlasTeam. Si defines un namespace personalizado, debes añadirlo al AtlasProject recurso personalizado en el campo spec.teams.teamRef.namespace.

spec.connectionSecret.name

Tipo: string

Condicional

Nombre del secreto opacoQue contiene el ID de la organización y las claves API que Atlas Kubernetes Operator utiliza para conectarse a Atlas. Si no se especifica, Atlas Kubernetes Operator recurre a:

  • El parámetro spec.connectionSecretRef.name del padre atlasProject

  • El secreto predeterminado global, si spec.connectionSecretRef.name no está definido para el padre atlasProject

Este parámetro es obligatorio para los CRD independientes.

El operador Atlas Kubernetes solo observa secretos con la etiqueta atlas.mongodb.com/type=credentials para evitar observar 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 el rol personalizado. Debe especificar el ID de proyecto de un proyecto 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 a Atlas Kubernetes Operator

Para los roles personalizados que pertenecen a proyectos administrados 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 de recursos personalizadas para cada proyecto.

spec.projectRef.name

Tipo: string

Condicional

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

Para roles personalizados que pertenecen a proyectos administrados por:

  • una instancia diferente de Atlas Kubernetes Operator

  • herramientas distintas de Atlas Kubernetes Operator

utilice spec.externalProjectRef.id.

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

spec.projectRef.namespace

Tipo: string

Condicional

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

Para roles personalizados que pertenecen a proyectos administrados por:

  • una instancia diferente de Atlas Kubernetes Operator

  • herramientas distintas de 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 del privilegio. Para obtener una lista completa de las acciones disponibles en la API de administración de Atlas, consulte /reference/custom-role-actions.

spec.role.actions.resources

Tipo: arreglo

Opcional

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

spec.role.actions.resources.cluster

Tipo: booleano

Opcional

Bandera que indica que la acción está concedida en el recurso del clúster.

Nota

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

spec.role.actions.resources.collection

Tipo: string

Opcional

Etiqueta legible que identifica la colección en la que se concede la acción. Si este valor es una cadena vacía, la acción se concede en todas las colecciones de la base de datos especificada en el spec.role.actions.resources.database parámetro.

Nota

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

spec.role.actions.resources.database

Tipo: string

Opcional

Etiqueta legible por humanos que identifica la base de datos en la que se concede la acción.

Nota

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

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 otorga el rol heredado.

Nota

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

spec.role.inheritedRoles.name

Tipo: string

Opcional

Etiqueta que identifica de forma única el rol heredado. Puede especificar otro rol personalizado o uno integrado.

Volver

AtlasDatabaseUser

En esta página