MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Menu Docs
Página inicial do Docs
/ /
/ / /

AtlasDatabaseUser Recurso personalizado

O recurso personalizado do AtlasDatabaseUser configura o usuário de banco de dados de dados em um projeto Atlas . Você cria usuários do banco de dados de dados por projeto, não por agrupamento. Portanto, a configuração do recurso personalizado AtlasDatabaseUser contém uma referência ao AtlasProject Recurso personalizado. Crie o AtlasProject Recurso Personalizado com antecedência.

Importante

Os Recursos Personalizados Não Excluem Mais Objetos por Padrão

  • O Atlas Kubernetes Operator utiliza arquivos de configuração de recurso personalizado para gerenciar sua configuração do Atlas , mas a partir do Atlas Kubernetes Operator,2.0 os recursos personalizados que você exclui no Kubernetes não são mais (por padrão) excluídos no Atlas. Em vez disso, o Atlas Kubernetes Operator simplesmente para de gerenciar estes recursos no Atlas. Por exemplo, se você excluir um AtlasProject Recurso Personalizado no Kubernetes, por padrão, o Atlas Kubernetes Operator não excluirá mais automaticamente o projeto correspondente do Atlas. Essa mudança no comportamento destina-se a ajudar a evitar exclusões acidentais ou inesperadas. Para saber mais, incluindo como reverter este comportamento para o padrão utilizado antes do Atlas Kubernetes Operator.,2 0consulte Novo padrão: Proteção de exclusão no Atlas Kubernetes 2 0Operator..

    Da mesma forma, o Atlas Kubernetes Operator não exclui equipes do Atlas se você as remover de um projeto do Atlas no Kubernetes com o Atlas Kubernetes Operator.

  • Defina explicitamente os detalhes de configuração desejados para evitar o uso implícito de valores de configuração padrão do Atlas . Em alguns casos, herdar os padrões do Atlas pode resultar em um loop de reconciliação que pode impedir que seu recurso personalizado atinja um estado READY. Por exemplo, definir explicitamente o comportamento de autoscaling desejado em seu recurso personalizado AtlasDeployment, conforme mostrado no exemplo incluído, garante que um tamanho de instância estática em seu recurso personalizado não esteja sendo aplicado repetidamente a um sistema do Atlas que tenha o autoscaling ativado.

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

O exemplo a seguir mostra uma referência ao Recurso PersonalizadoAtlasProject :

spec:
projectRef:
name: my-project

O Atlas Kubernetes Operator garante que a configuração do trigger de banco de dados no Atlas corresponda à configuração no Kubernetes.

O Atlas Kubernetes Operator realiza uma das seguintes ações usando aAPI de usuários do bancode dados do Atlas :

  • Cria um novo trigger de banco de dados.

  • Atualiza um usuário existente.

Antes de criar um usuário de banco de dados, você deve criar um segredo opaco com um único campo password para fazer login no banco de dados do Atlas cluster.

Observação

Você deve criar o segredo no mesmo namespace onde o recurso personalizado do AtlasDatabaseUser está localizado.

O exemplo a seguir cria um segredo:

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

O Atlas Kubernetes atlas.mongodb.com/type=credentials Operator observa segredos apenas com a etiqueta para evitar a exibição de segredos desnecessários.

O exemplo a seguir rotula um segredo:

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

Depois que o Atlas Kubernetes Operator cria ou atualiza com êxito o usuário do banco de dados no Atlas, o Atlas Kubernetes Operator cria ou atualiza os segredos de conexão no mesmo namespace em que o recurso personalizado do AtlasDatabaseUser está localizado.

Os segredos de conexão contêm todas as informações necessárias para se conectar ao cluster do Atlas, incluindo os seguintes parâmetros:

Parâmetro
Descrição

connectionStringStandard

URI de mongodb:// conexão .

connectionstringStandardSrv

URI de conexão mongodb+srv:// pública.

username

Nome que identifica o utilizador do banco de dados.

password

Senha do trigger de banco de dados.

A aplicação em execução no Kubernetes podem utilizar estas informações para se conectar ao cluster do Atlas. Você pode montar os segredos nos pods de aplicativos como arquivos e o processo do aplicativo pode ler esses arquivos para obter dados.

O exemplo a seguir mostra a montagem do segredo como uma variável de ambiente:

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

O exemplo a seguir mostra a montagem do segredo como arquivos:

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

Por padrão, o Atlas Kubernetes Operator cria o segredo de conexão do usuário de banco de dados para cada cluster no mesmo projeto que o AtlasDatabaseUser faz referência. Você pode alterar esse comportamento com o parâmetro spec.scopes. Este parâmetro restringe os clusters onde o usuário de banco de dados é criado. O nome do segredo de conexão utiliza o seguinte formato: <project_name>-<cluster_name>-<db_user_name>.

O exemplo seguinte mostra um projeto do Atlas e os clusters que fazem referência a ele:

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

O exemplo a seguir mostra uma especificação de recurso personalizado AtlasDatabaseUser com 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

Após criar este recurso personalizado, o Atlas Kubernetes Operator cria os seguintes segredos:

  • p1-aws-cluster-theuser

  • p1-gcp-cluster-theuser

O exemplo a seguir mostra uma especificação de recurso personalizado AtlasDatabaseUser com spec.scopes definido apenas para o cluster do 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

Após atualizar este recurso personalizado, o Atlas Kubernetes Operator remove theuser do aws-cluster. Ele também remove o segredo p1-aws-cluster-theuser do cluster Kubernetes.

O exemplo seguinte mostra uma especificação de recurso personalizada do AtlasDatabaseUser com autenticação 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

O exemplo a seguir mostra uma especificação de recurso personalizado AtlasDatabaseUser com 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

O exemplo a seguir mostra uma AtlasDatabaseUser especificação de recurso personalizado com Amazon Amazon Web Services Web Services 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

AtlasDatabaseUser é o esquema para a API do usuário de banco de dados Atlas

Name
Tipo
Descrição
Obrigatório

apiVersion

string

atlas.mongodb.com/v1

true

kind

string

AtlasDatabaseUser

true

metadata

objeto

Consulte a documentação do Kubernetes API para os campos do campo metadata.

true

spec

objeto

AtlasDatabaseUserSpec define o estado de destino do usuário de banco de dados nas validações do Atlas:

  • (has(auto.''externalProjectRef'') && !has(auto.''projectRef'')) || (!has(auto.''externalProjectRef'') && has(auto.``projectRef``)): deve definir apenas uma referência do projeto por meio de externalProjectRef ou projectRef

  • (has(auto.''externalProjectRef'') && has(auto.``connectionSecret``)) || !has(auto.''externalProjectRef''): deve definir um segredo de conexão local ao fazer referência a um projeto externo

false

status

objeto

AtlasDatabaseUserStatus define o estado observado de AtlasProject

false

AtlasDatabaseUserSpec define o estado de destino do usuário de banco de dados no Atlas

Name
Tipo
Descrição
Obrigatório

roles

[] objeto

Funções é um array do roles deste usuário e dos bancos de dados/coleções nos quais as roles se aplicam. Uma função permite ao usuário executar ações específicas no banco de dados especificado.

true

username

string

O nome de usuário é um username para autenticar para MongoDB etiqueta legível por humanos que representa o usuário que se autentica para MongoDB. O formato desse rótulo depende do método de autenticação: No caso de AWS IAM: o valor deve ser AWS ARN para o usuário/função IAM; No caso de OIDC carga de trabalho ou Força de trabalho: o valor deve ser o Atlas OIDC IdP ID, seguido por uma '/', seguido pelo nome do grupo IdP; No caso de autenticação de texto sem formatação: o valor pode ser qualquer coisa.

true

awsIamType

enum

Etiqueta legível por humanos que indica se o novo usuário de banco de dados se autentica com o Amazon Web Services (AWS). Credenciais da Identidade e Gerenciamento de Acesso (IAM) associadas ao usuário ou à função do usuário enumeração: NONE, USER, ROLE padrão: NONE

false

connectionSecret

objeto

Nome do segredo contendo as chaves privada e pública do Atlas API.

false

databaseName

string

DatabaseName é um banco de dados no qual o Atlas autentica o usuário. Se o usuário se autenticar com a carga de trabalho AWS IAM, x.509, LDAP ou OIDC, esse valor deverá ser '$external'. Se o usuário se autenticar com SCRAM-SHA ou OIDC Workforce, esse valor deverá ser "admin". O valor padrão é "admin". Padrão: admin

false

deleteAfterDate

string

DeleteAfterDate é um carimbo de data/hora no formato de data e hora ISO 8601 em UTC após o qual o Atlas exclui o usuário. A data especificada deve ser no futuro e dentro de uma semana.

false

description

string

Descrição deste usuário de banco de dados. Máximo de 100 caracteres.

false

externalProjectRef

objeto

externalProjectRef contém o projeto principal do Atlas ID. Mutualmente exclusivo com o campo"projectRef".

false

labels

[] objeto

Rótulos é um array que contém pares de valores-chave que aplicam tag e categorizam o usuário de banco de dados. Cada chave e valor tem um comprimento máximo de 255 caracteres.

false

oidcAuthType

enum

Etiqueta legível por humanos que indica se o novo nome de usuário do banco de dados com OIDC autenticação federada. Para criar um grupo de autenticação federado (Workforce), especifique o valor de IDP_GROUP neste campo. Para criar um usuário de autenticação federado (carga de trabalho), especifique o valor de USER neste campo. enumeração: NONE, IDP_GROUP, USER padrão: NONE

false

passwordSecretRef

objeto

PasswordSecret é uma referência ao Segredo que mantém a senha do usuário.

false

projectRef

objeto

projectRef é uma referência ao recurso pai AtlasProject. Mutualmente exclusivo com o campo"externalProjectRef".

false

scopes

[] objeto

Escopos é um array de clusters e Atlas Data Lakes aos quais esse usuário tem acesso.

false

x509Type

enum

X509Type é o método X.509 pelo qual o banco de dados autentica o nome de usuário fornecido. enumeração: NONE, MANAGED, CUSTOMER padrão: NONE

false

RoleSpec permite ao usuário executar ações específicas no banco de dados especificado . Uma função no banco de dados admin também pode incluir privilégios que se aplicam a outros bancos de dados.

Name
Tipo
Descrição
Obrigatório

databaseName

string

DatabaseName é um banco de dados no qual o usuário tem a função especificada. Uma função no banco de dados admin pode incluir privilégios que aplicam aos outros bancos de dados.

true

roleName

string

RoleName é um nome da função. Esse valor pode ser uma função integrada ou uma função personalizada.

true

collectionName

string

CollectionName é uma coleção à qual a função se aplica.

false

Nome do segredo que contém as chaves privadas e públicas da Atlas API.

Name
Tipo
Descrição
Obrigatório

name

string

Nome do recurso que está sendo referenciado Mais informações: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

true

externalProjectRef contém o ID do grupo pai do Atlas. Mutualmente exclusivo com o campo"projectRef".

Name
Tipo
Descrição
Obrigatório

id

string

ID é o projeto Atlas ID.

true

O LabelSpec contém pares de valores-chave que tagueiam e categorizam o cluster/DBUser

Name
Tipo
Descrição
Obrigatório

key

string

Chave aplicada para marcar e categorizar este componente.

true

value

string

Valor definido para a chave aplicada para marcar e categorizar este componente.

true

SenhaSecret é uma referência ao Segredo que mantém a senha do usuário.

Name
Tipo
Descrição
Obrigatório

name

string

O nome é name do recurso Kubernetes

true

projectRef é uma referência ao recurso pai AtlasProject. Mutualmente exclusivo com o campo"externalProjectRef".

Name
Tipo
Descrição
Obrigatório

name

string

Nome do Recurso Kubernetes

true

namespace

string

Namespace do Recurso Kubernetes

false

ScopeSpec, se estiver presente, um usuário de banco de dados só terá acesso ao recurso indicado (Cluster ou Atlas Data Lake), se nenhum for fornecido, ele terá acesso a todos. É altamente recomendável restringir o acesso dos usuários de banco de dados apenas a um conjunto limitado de recursos.

Name
Tipo
Descrição
Obrigatório

name

string

O nome é um name do cluster ou Atlas Data Lake ao qual o usuário tem acesso.

true

type

enum

O tipo é um type de recurso ao qual o usuário tem acesso. enumeração: CLUSTER, DATA_LAKE

true

AtlasDatabaseUserStatus define o estado observado do AtlasProject

Name
Tipo
Descrição
Obrigatório

conditions

[] objeto

Condições é a lista de status que mostra o estado atual do Recurso Personalizado do Atlas

true

name

string

UserName é o name atual do usuário de banco de dados.

false

observedGeneration

inteiro

ObservedGeneration indica a geração da especificação de recurso da qual o Operador Atlas está ciente. O Operador do Atlas atualiza este campo para o valor de 'metadados.generation' assim que iniciar a reconciliação do recurso. Formato: int64

false

passwordVersion

string

PasswordVersion é o 'ResourceVersion' da senha secreta que o operador Atlas está ciente

false

A condição descreve o estado de um recurso personalizado do Atlas em um determinado ponto.

Name
Tipo
Descrição
Obrigatório

status

string

Status da condição; um de verdadeiro, falso, desconhecido.

true

type

string

Tipo de condição do Atlas recurso.

true

lastTransitionTime

string

Última vez que a condição fez a transição de um status para outro. Representado no formato ISO 8601. Formato: data/hora

false

message

string

Um message fornecendo detalhes sobre a transição.

false

reason

string

O reason para a última transição da condição.

false

Voltar

Sistema Atlas

Nesta página