Managed trigger de banco de dados usando a autenticação LDAP
Nesta página
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.
Considerações
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:
mecanismo de autenticação suportados
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.
Pré-requisitos
Antes de gerenciar usuários do banco de dados 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.
Adicionar um usuário do banco de dados
Configure kubectl
como padrão para seu namespace.
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>
Copie o seguinte exemplo CustomResourceDefinition.
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" ...
Abra seu editor de texto preferido e cole o exemplo CustomResourceDefinition em um novo arquivo de texto.
Altere as linhas para os seguintes parâmetros, conforme necessário.
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 Para saber mais, consulte Modelos de query LDAP no Manual do MongoDB. | uid=mdb0,dc=example,dc=org |
Adicione quaisquer funções adicionais para o usuário à CustomResourceDefinition.
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" ...
Crie o usuário.
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.
Excluir um trigger de reconhecimento de data center
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>