Configurar o MongoDB Agent para Kerberos
Nesta página
O MongoDB Enterprise oferece suporte ao Kerberos. Kerberos é um protocolo de autenticação de rede. O MongoDB Agent pode autenticar em instâncias MongoDB que executam Kerberos.
Pré-requisitos
Configure o KDC para emitir tickets com vida útil mínima de quatro horas
Os tickets Kerberos podem autenticar usuários por um tempo limitado. Você deve configurar o Centro de Distribuição de Chaves (KDC) Kerberos para emitir tíquetes válidos por quatro horas ou mais. O MongoDB Agent atualiza periodicamente o ticket. O serviço KDC fornece tickets de sessão e chaves de sessão temporárias para usuários e hosts.
Adicionar Kerberos como mecanismo de autenticação para sistema
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 sistema existente. No mínimo, a implantação 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 compatível .
Para os fins deste tutorial, você deve garantir o seguinte:
Sua implantação suporta autenticação Kerberos e
O MongoDB Agent usa a autenticação Kerberos.
Para saber como habilitar a autenticação Kerberos, consulte Habilitar autenticação Kerberos para seu projeto do Ops Manager.
Configurar o host do MongoDB Agent para usar Kerberos
Dois arquivos relacionados ao Kerberos devem ser instalados em qualquer host que execute o Monitoramento ou Backup:
Crie ou configure o krb5.conf Arquivo de configuração Kerberos.
PlataformaCaminho padrãoNotasLinux/etc/krb5.conf
Windows%WINDIR%\krb5.ini
Este é o caminho padrão para implementações do Kerberos não baseadas no Active Directory. Consulte a documentação da implementação do Kerberos para sua versão do Windows para saber onde o arquivo de configuração do Kerberos está armazenado.Em sistemas Linux: certifique-se de que o kinit binário está localizado em
/usr/bin/kinit
.kinit
obtém ou atualiza um ticket de concessão de ticket Kerberos, que autentica o Agente usando Kerberos.
Procedimentos
Criar principal de usuário Kerberos para o MongoDB agente
Crie ou escolha um Nome principal do usuário (UPN ) Kerberos para o MongoDB Agent.
Um UPN é formatado em duas partes para que o serviço possa ser identificado exclusivamente em todo o Realm Kerberos:
Componente | Descrição |
---|---|
Nome do serviço | O nome de um serviço que um host está fornecendo ao Realm Kerberos , como ImportanteMongoDB Ops Manager 6.0.0 descontinua alertas SNMP . MongoDB Ops Manager 7.0.0 não incluirá alertas de SNMP . Para saber mais sobre outras opções de alerta , consulte Integrações de serviços de terceiros. |
Domínio Kerberos | Um conjunto de hosts e serviços managed que compartilham o mesmo reconhecimento de data center Kerberos. De acordo com a convenção de nomenclatura Kerberos, o |
Exemplo
Em um Realm Kerberos definido como EXAMPLE.COM
, o MongoDB Agent definiria seu UPN para: mongodb-agent@EXAMPLE.COM
Gere um keytab
arquivo para o UPN Kerberos do MongoDB Agent.
Gerar um keytab arquivo (*.keytab
) para o UPN do MongoDB Agent e copie-o para o host que executa o MongoDB Agent. Certifique-se de que o usuário do sistema operacional que executa o MongoDB Agent seja o mesmo usuário do sistema operacional que possui o arquivo keytab
.
Criar um usuário e atribuir roles para o UPN do MongoDB agente
Quando a automação é ativada, o Ops Manager managed a autenticação do MongoDB Agent.
Para configurar o Kerberos para a autenticação do MongoDB Agent, consulte Habilitar autenticação Kerberos para seu projeto do Ops Manager.
Depois de criar o UPN Kerberos para o MongoDB Agent, crie um usuário MongoDB em seu sistema que corresponda ao UPN do MongoDB Agent e conceda privilégios a ele.
O local onde você cria o usuário MongoDB depende se você está usando ou não a autorização LDAP .
Se você estiver usando a autorização LDAP em sua implementação do MongoDB , deverá criar um usuário LDAP e um grupo LDAP para o MongoDB Agent no servidor LDAP . Após criar o usuário e o grupo LDAP , mapeie o grupo LDAP para uma função do MongoDB no banco de banco de dados admin
do seu sistema.
Aviso
Ao utilizar a Autorização LDAP , não crie quaisquer utilizadores MongoDB no banco de banco de dados do $external
. O MongoDB 3.4 e posterior não iniciará se houver um usuário MongoDB no banco de banco de dados $external
e a autorização LDAP estiver habilitada.
Para o usuário MongoDB que representa o MongoDB Agent:
Crie um novo usuário LDAP no seu servidor LDAP nomeado com o UPN do MongoDB Agent.
Crie um grupo LDAP cujo nome corresponda à função do MongoDB Agent.
Crie a função do MongoDB Agent em seu banco de banco de dados
admin
com as permissões apropriadas.Observação
Quando a automação é ativada, a automação cria automaticamente uma função para o usuário do MongoDB Agent para autenticação LDAP .
Atribua o usuário LDAP ao grupo LDAP .
Dica
Veja também:
Para saber como: | Veja |
---|---|
Criar um usuário LDAP | Documentação para sua implementação de LDAP . |
Criar um grupo LDAP | Documentação para sua implementação de LDAP . |
Atribua as funções apropriadas para o MongoDB Agent | |
Mapear um grupo LDAP e um role do MongoDB | Seção Funções LDAP da página de autorização LDAP no manual do MongoDB . |
Configurar autorização LDAP sem a automação MongoDB Ops Manager | Página Autorização LDAP no manual MongoDB . |
Se você não estiver usando a autorização LDAP , será necessário adicionar o UPN do MongoDB Agent como usuário no banco de banco de dados $external
em seu sistema do MongoDB . Sem autorização LDAP , o MongoDB usa o banco de banco de dados $external
para autenticar um usuário no Kerberos.
Observação
Para descobrir as funções apropriadas para o MongoDB Agent, consulte Acesso necessário para o MongoDB Agent.
A partir do mongosh
, emita os seguintes comandos para criar o usuário MongoDB :
db.getSiblingDB("$external").createUser( { user : "<Kerberos Principal>", 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" } ] } )