MongoDB Segurança, monitoramento e backup (Mongodump)
Um dos conceitos-chave em MongoDB é o gerenciamento de bancos de dados. Aspectos importantes como segurança, backup e acesso a bancos de dados são conceitos importantes quando se trata de administração de banco de dados.
MongoDB Visão geral da segurança
MongoDB tem a capacidade de definir mecanismos de segurança para bancos de dados. Por padrão, não se desejaria que todos tivessem acesso aberto a todos os bancos de dados em MongoDB, daí a exigência de ter algum tipo de mecanismo de segurança em MongoDB é importante.
A seguir estão as melhores práticas ao implementar segurança em bancos de dados
- Habilitar controle de acesso – Crie usuários para que todos os aplicativos e usuários sejam obrigados a ter algum tipo de mecanismo de autenticação ao acessar bancos de dados em MongoDB.
- Configurar o controle de acesso baseado em funções – Às vezes, pode haver um agrupamento lógico de permissões que podem ser necessárias, que podem ser agrupadas em funções. Os usuários podem então ser atribuídos a essas funções.
- Tente configurar MongoDB usar algum tipo de protocolo de criptografia, como TLS ou SSL. Esses protocolos podem ser usados para criptografar o tráfego que flui entre o cliente e o ambiente mongo DB.
- Configurar auditoria – Os administradores normalmente precisam saber quem está fazendo o quê, o que ajuda a analisar problemas mais tarde. A melhor maneira é habilitar a auditoria em MongoDB.
- Execute a instância do servidor MongDB com um ID de usuário separado que tenha acesso aos recursos necessários no ambiente do servidor.
Procedimentos de backup do Mongodb – mongodump
Ao trabalhar com o MongDB, é importante sempre garantir que um procedimento de backup esteja em vigor, caso os dados dentro MongoDB fica corrompido por qualquer motivo.
Abaixo estão os mecanismos de backup disponíveis em MongoDB
- Backup copiando arquivos de dados subjacentes – Este é provavelmente o mecanismo mais fácil, tudo o que precisa ser feito é copiar os arquivos de dados nos quais MongoDB reside e copie-o para outro local que idealmente deveria ser outro servidor.
- Faça backup de um banco de dados com mongodump – A ferramenta mongodump lê dados de um MongoDB banco de dados e cria arquivos BSON de alta fidelidade. O que precisa ser levado em consideração é que se o conjunto de dados for grande em volume, então o mongodump pode consumir muitos recursos; portanto, para mitigar esse problema, o utilitário deve ser executado em um servidor secundário.
- MongoDB Backup do gerenciador de nuvem - MongoDB O Cloud Manager faz backup continuamente MongoDB conjuntos de réplicas e clusters fragmentados lendo os dados de oplog do MongoDB ambiente. MongoDB O Cloud Manager pode criar uma recuperação pontual armazenando dados de oplog para que possa criar uma restauração a qualquer momento para um determinado conjunto de réplicas ou cluster fragmentado.
Monitoramento Mongodb
O monitoramento é uma das atividades administrativas mais críticas no MongoDB. Isso ocorre porque você pode ser mais proativo monitorando o ambiente em busca de possíveis problemas que possam surgir.
Abaixo estão alguns exemplos de implementação de monitoramento
- Mongostat informará quantas vezes as operações de banco de dados, como inserção, consulta, atualização, exclusão, etc., realmente ocorrem no servidor. Isso dará uma boa ideia de quanta carga o servidor está manipulando e indicará se você precisa de recursos adicionais no servidor ou talvez de servidores adicionais para distribuir a carga.
- Mongotop rastreia e relata a atividade atual de leitura e gravação de um MongoDB por exemplo, e relata essas estatísticas por coleta.
- MongoDB fornece uma interface web que expõe informações de diagnóstico e monitoramento em uma página web simples. Pode-se navegar até o URL abaixo em seu servidor local para abrir o utilitário de administração da web
http://localhost:28017
- O comando serverStatus, ou db.serverStatus() do shell, retorna uma visão geral do status do banco de dados, com detalhes sobre o uso do disco, uso da memória, conexões estabelecidas com o MongoDB ambiente, etc
MongoDB Considerações sobre indexação e desempenho
- Os índices são muito importantes em qualquer banco de dados e podem ser usados para melhorar a eficiência das consultas de pesquisa em MongoDB. Se você realiza pesquisas continuamente em seu documento, é melhor adicionar índices nos campos do documento usados nos critérios de pesquisa.
- Tente sempre limitar o número de resultados de consulta retornados. Suponha que você tenha 2 nomes de campos em um documento, mas deseja apenas ver 2 campos do documento. Em seguida, certifique-se de que sua consulta tenha como objetivo exibir apenas os 2 campos necessários e não todos os campos.
- Se você quiser visualizar determinados valores de campo, use apenas esses campos na consulta. Não consulte todos os campos da coleção se eles não forem obrigatórios.
configurar MongoDB com autenticação Kerberos
Enquanto a autorização visa garantir o acesso do cliente ao sistema, a autenticação verifica que tipo de acesso o cliente tem no MongoDB, uma vez autorizados no sistema.
Existem vários mecanismos de autenticação, abaixo estão apenas alguns deles.
MongoDB Autenticação usando certificados x.509
Use certificados x.509 para autenticar o cliente – Um certificado é basicamente uma assinatura confiável entre o cliente e o MongoDB Servidor.
Portanto, em vez de inserir um nome de usuário e senha para se conectar ao servidor, um certificado é passado entre o cliente e o MongoDB Servidor. O cliente terá basicamente um certificado de cliente que será passado ao servidor para autenticação no servidor. Cada certificado de cliente corresponde a um único MongoDB do utilizador. Então cada usuário de MongoDB precisa ter seu próprio certificado para ser autenticado no MongoDB servidor.
Para garantir que isso funcione, as seguintes etapas devem ser seguidas;
- Um certificado válido deve ser adquirido de uma autoridade terceirizada válida e instalado no MongoDB Servidor.
- O certificado do cliente deve ter as seguintes propriedades (uma única autoridade de certificação (CA) deve emitir os certificados para o cliente e o servidor. Os certificados do cliente devem conter os seguintes campos – keyUsage e ExtendedKeyUsage.
- Cada usuário que se conecta ao servidor MongDB precisa ter um certificado separado.
Como configurar MongoDB com autenticação Kerberos
Abaixo estão as etapas para configurar MongoDB com autenticação Kerberos ativada Windows:
Passo 1) configurar MongoDB com autenticação Kerberos ativada Windows
Kerberos é um mecanismo de autenticação usado em grandes ambientes cliente-servidor.
É um mecanismo muito seguro onde a senha só é permitida se estiver criptografada. Bem, MongoDB tem a facilidade de autenticação em um sistema existente baseado em Kerberos.
Passo 2) processo do servidor mongod.exe
Em seguida, inicie o processo do servidor mongod.exe.
Passo 3) processo do cliente mongo.exe e conexão
Em seguida, inicie o processo do cliente mongo.exe e conecte-se ao MongoDB servidor.
Passo 4) Adicione um usuário em MongoDB
Que é basicamente um nome principal do Kerberos para o banco de dados $external. O banco de dados $external é um banco de dados especial que informa MongoDB para autenticar esse usuário em um sistema Kerberos em vez de em seu próprio sistema interno.
use $external db.createUser( { user: "user1@example.NET", roles:[ { role: "read" , db:"Marketing"} } ] }
Passo 5) Comece a usar o comando
Inicie mongod.exe com suporte Kerberos usando o seguinte comando
mongod.exe –auth –setParameter authenticationMechanisms=GSSAPI
E agora você pode se conectar com o usuário Kerberos e a autenticação Kerberos ao banco de dados.
Resumo
- É muito importante implementar segurança nos bancos de dados para garantir que os dados do banco de dados sejam mantidos seguros.
- Os usuários podem ser criados no banco de dados com o comando createUser. Funções específicas podem ser atribuídas aos usuários para conceder-lhes permissões específicas no próprio banco de dados.
- Administradores podem ser adicionados para todos os bancos de dados apenas para bancos de dados específicos. Isso é conseguido atribuindo a função userAdmin ou userAdminAnyDatabase.
- Sempre faça backup do seu MongoDB ambiente para que, em caso de qualquer desastre, os dados sejam facilmente recuperáveis.
- Monitore sempre o seu MongoDB ambiente para ser mais proativo e ver os problemas antes que eles ocorram.
- Existem vários mecanismos de autenticação para fornecer melhor segurança nos bancos de dados. Um exemplo é o uso de certificados para autenticar usuários em vez de usar nomes de usuário e senhas.