Configurar o MongoDB Agent para LDAP
Se a implementação do MongoDB impõe controle de acesso, o MongoDB Agent deve autenticar no MongoDB como um usuário com o acesso adequado. Se você usar Automação, o MongoDB Ops Manager conta disso para você.
O MongoDB Enterprise suporta ligação simples e SASL para servidoresLDAP do via saslauthd
e bibliotecas do sistema operacional:
O MongoDB Enterprise para Linux pode se vincular a um servidor LDAP via
saslauthd
ou por meio de bibliotecas de sistemas operacionais.O MongoDB Enterprise para Windows pode se vincular a um servidor LDAP por meio das bibliotecas do sistema operacional.
O MongoDB Agent suporta autenticação em instâncias MongoDB usando LDAP.
Observação
Com a automação, o Ops Manager managed a autenticação do MongoDB Agent para você. Para saber mais sobre autenticação, consulte Habilitar autenticação LDAP para seu projeto do Ops Manager.
Pré-requisitos
Configurar sistemas para usar autenticação
O MongoDB Agent interage com os reconhecimento de data center MongoDB em seu sistema da mesma forma que um usuário do MongoDB faria. Como resultado, você deve configurar sua implantação do MongoDB e o MongoDB Agent para suportar a autenticação.
Você pode especificar os mecanismos de autenticação do sistema ao adicionar o sistema ou pode editar as configurações de uma implantação existente. No mínimo, o sistema deve habilitar o mecanismo de autenticação que você deseja que o MongoDB Agent use. O MongoDB Agent pode usar qualquer mecanismo de autenticação suportado.
Definir variável de ambiente do certificado TLS obrigatório
Nos hosts do MongoDB Agent, você deve definir o TLS_REQCERT variável de ambiente para demand
.
Exemplo
Em um host Red Hat Enterprise Linux, abra o arquivo /etc/openldap/ldap.conf
e adicione a seguinte configuração e valor:
TLS_REQCERT demand
Você pode usar seu aplicativo para definir essa variável de ambiente.
Considerações
Se a automação não managed seu sistema, você deverá configurar a autenticação LDAP separadamente para cada função.
Para configurar a autenticação LDAP, adicione um host ou edite a configuração de um host existente.
Criar e configurar usuário no MongoDB
Para automatizar instâncias do MongoDB que usam autenticação LDAP , adicione um usuário do MongoDB que tenha as funções e os privilégios necessários ao banco de banco de dados $external
no MongoDB. O banco de banco de dados do $external
permite ao mongod
consultar uma origem externa, como um servidor LDAP , para autenticar.
Use os seguintes comandos para criar os usuários a partir do mongosh
:
db.getSiblingDB("$external").createUser( { user : "<username>", roles : [ { role : "clusterAdmin", db : "admin" }, { role : "readWriteAnyDatabase", db : "admin" }, { role : "userAdminAnyDatabase", db : "admin" }, { role : "dbAdminAnyDatabase", db : "admin" }, { role : "backup", db : "admin" }, { role : "restore", db : "admin" } ] } )
Para saber mais sobre o acesso necessário, consulte Acesso necessário para o MongoDB agente.
Para fazer backup de instâncias do MongoDB 4.0 ou posterior que usam autenticação LDAP , adicione um usuário que tenha as funções necessárias ao banco de banco de dados $external
no MongoDB. O banco de banco de dados $external
armazena credenciais para autenticação externa e detalhes de autorização .
Utilize o seguinte comando mongosh
para criar o usuário:
db.getSiblingDB("$external").createUser( { user : "<username>", roles: [ { role: "clusterAdmin", db: "admin" } ] } )
db.getSiblingDB("$external").createUser( { user: "<username>", roles: [ { role: "backup", db: "admin" } ] } )
Para saber mais sobre o acesso necessário, consulte Acesso necessário para o backup do MongoDB Agent
Para monitorar o MongoDB 4.0 ou instâncias posteriores que usam autenticação LDAP , adicione um usuário ao banco de banco de dados $external
no MongoDB. O banco de banco de dados $external
armazena credenciais para autenticação externa e detalhes de autorização . Atribua a este usuário as funções fornecidas no exemplo a seguir .
Utilize o seguinte comando mongosh
para criar o usuário:
db.getSiblingDB("$external").createUser( { user : "<username>", roles: [ { role: "clusterMonitor", db: "admin" } ] } )
Para saber quais funções essa função exige, consulte Monitorando configurações.