Menu Docs
Página inicial do Docs
/
Operador de Kubernetes do MongoDB Enterprise
/ /

Managed trigger de banco de dados usando a autenticação LDAP

Nesta página

  • Considerações
  • Pré-requisitos
  • Adicionar um usuário do banco de dados
  • Excluir um trigger de reconhecimento de data center

O Operador Kubernetes oferece suporte ao gerenciamento de usuários do banco de dados para sistemas executados com TLS e autenticação de cluster LDAP habilitada.

A configuração para usuários autenticados por meio do LDAP depende dos modelos de query do LDAP e dos mapeamentos que o MongoDB estabelece.

Para saber mais, consulte as seguintes seções na documentação do servidor MongoDB:

  • Autorização LDAP

  • Modelos de query LDAP

  • security.ldap.userToDNMapping

O Kubernetes Operator oferece suporte a mecanismos de autenticação SCRAM, LDAP e X.509 nos sistemas que ele cria. Em uma implantação criada pelo Kubernetes Operator, você não pode usar o MongoDB Ops Manager para:

  • Configure outros mecanismos de autenticação para sistemas.

  • Managed usuários não usando autenticação SCRAM, LDAP ou X.509.

Antes de gerenciar usuários do banco de dados, você deve implantar umconjunto de réplicas do ou cluster fragmentado com o LDAP habilitado. habilitado. Opcionalmente, você pode habilitar o TLS. Para saber mais, consulte Proteger um Recurso de Banco de Dados.

1

Caso ainda não tenha feito isso, execute o seguinte comando para executar todos os comandos kubectl no namespace que você criou.

Observação

Se você estiver implantando um recurso MongoDB Ops Manager em um sistema do MongoDB de vários clusters Kubernetes:

  • Defina context como o nome do cluster central, como: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME".

  • Defina --namespace para o mesmo escopo usado para sua implantação do MongoDB de vários clusters Kubernetes, como: kubectl config --namespace "mongodb".

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
2
---
apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
name: ldap-user-1
spec:
username: "uid=mdb0,dc=example,dc=org"
db: "$external"
mongodbResourceRef:
name: ldap-replica-set
roles:
- db: "admin"
name: "clusterAdmin"
- db: "admin"
name: "readWriteAnyDatabase"
- db: "admin"
name: "dbAdminAnyDatabase"
...
3
4

Use a tabela a seguir para orientá-lo na alteração das linhas relevantes na Especificação de recursos do usuário do MongoDB. Para obter uma lista completa das configurações de usuário LDAP, consulte as configurações de segurança na especificação de recursos do MongoDB do Kubernetes Operator.

Chave
Tipo
Descrição
Exemplo
metadata.name
string

O nome do recurso para o usuário do banco de dados MongoDB.

Os nomes de recursos devem ter 44 caracteres ou menos.

ldap-user-1
spec.db
string
O nome do MongoDB database onde os usuários serão adicionados. Este valor deve ser $external.
$external
spec.mongodbResourceRef.name
string
O nome do recurso MongoDB ao qual este usuário está associado.
my-resource
spec.opsManager.configMapRef.name
string
O nome do projeto que contém o banco de dados MongoDB onde o usuário será adicionado. A configuração spec.cloudManager.configMapRef.name é um alias para essa configuração e pode ser usada em seu lugar.
my-project
spec.roles.db
string
O banco de dados no qual a função pode agir.
admin
spec.roles.name
string
O nome do papel a conceder ao utilizador de banco de dados. O nome da função pode ser qualquer função MongoDB integrada ou função personalizada que exista no Cloud Manager ou no MongoDB Ops Manager.
readWriteAnyDatabase
spec.username
string

O nome de usuário autenticado que é mapeado para um Nome Distinto (DN) LDAP de acordo com spec.security.authentication.ldap.userToDNMapping. O DN precisa existir em seu sistema de LDAP. Este nome de usuário deve estar em conformidade com a RFC 2253 LDAPv3 Padrão de nome distinto. transformed

Para saber mais, consulte Modelos de query LDAP no Manual do MongoDB.

uid=mdb0,dc=example,dc=org
5

Você pode conceder roles adicionais a esse usuário usando o formato definido no exemplo a seguir:

---
apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
name: ldap-user-1
spec:
username: "uid=mdb0,dc=example,dc=org"
db: "$external"
mongodbResourceRef:
name: ldap-replica-set
roles:
- db: "admin"
name: "clusterAdmin"
- db: "admin"
name: "readWriteAnyDatabase"
- db: "admin"
name: "dbAdminAnyDatabase"
...
6

Invoque o seguinte comando do Kubernetes para criar seu trigger de reconhecimento de data center:

kubectl apply -f <database-user-conf>.yaml

Os exemplos a seguir ilustram os formatos de string de conexão que você pode usar ao habilitar a autenticação com LDAP em sistemas do MongoDB do Kubernetes Operator. Estes exemplos utilizam o namespace mongodb e um sistema de conjunto de réplicas denominado replica-set-ldap. Os exemplos são semelhantes para clusters fragmentados.

  • connectionString.standard: stringde conexão padrão que pode conectar você ao banco de dados como este usuário do banco de dados.

    mongodb://replica-set-ldap-0-0-svc.mongodb.svc.cluster.local/?connectTimeoutMS=20000&replicaSet=replica-set-ldap&serverSelectionTimeoutMS=20000&ssl=true&authSource=$external
  • connectionString.standardSrv: stringconexão da lista de sementes de DNS que pode conectar você ao banco de dados como este usuário do banco de dados.

    mongodb+srv://replica-set-ldap-svc.mongodb.svc.cluster.local/?connectTimeoutMS=20000&replicaSet=replica-set-ldap&serverSelectionTimeoutMS=20000&ssl=true&authSource=$external

Usando os formatos mostrados anteriormente, você pode se conectar ao MongoDB database com o MongoDB Shell (mongosh), como no exemplo a seguir:

mongosh <connection-string> \
--host <my-replica-set>/web1.example.com \
--port 30907 \
--authenticationMechanism PLAIN \
--username cn=rob,cn=Users,dc=ldaps-01,dc=myteam,dc=com

Você pode usar essas credenciais para se conectar a um recurso de reconhecimento de data center MongoDB a partir do Kubernetes.

7

Você pode visualizar o usuário recém-criado no Cloud Manager ou Ops Manager:

  1. Na visualização Deployment do projeto, clique na guia Security .

  2. Clique no separador MongoDB Users aninhado.

Para excluir um usuário do banco de dados, passe o metadata.name do usuário ConfigMap ao seguinte comando:

kubectl delete mdbu <metadata.name>