Mongo Sharding - Autenticação do Config Server e Mongo

6

Estou precisando dividir um banco de dados rapidamente e não estou claro qual é a melhor prática para ativar a autenticação nos servidores mongos e config .

Eu gostaria de ter tudo protegido com senhas.

  1. Cada servidor de configuração deve ter auth ativado?
  2. Em caso afirmativo, configure o mesmo usuário em cada um deles? Apenas para o admin db? Ou há necessidade de criar um para o banco de dados de configuração?
  3. Estou supondo que você não precisa criar nenhum usuário enquanto estiver no mongo, já que ele deve herdar da configuração e dos próprios shards, isso está correto?
  4. Ao adicionar um novo shard, é necessário ir e configurar os mesmos usuários para cada banco de dados sharded no novo shard?

Obrigado!

    
por nakkor 27.01.2014 / 03:34

2 respostas

3

Eu vou levar um de cada vez:

Should each config server have auth enabled?

Sim, basicamente, todos os casos de mongod executados devem ter a autenticação ativada (e o arquivo de chave, que implica a autenticação ).

If so, then setup the same user across each? Just for the admin db? Or is there a need to create one for the config database?

O banco de dados de administração em um ambiente particionado realmente residirá nos servidores de configuração. Assim, você terá uma cópia do banco de dados de administração em todos os três (eles serão idênticos entre si). Você deve estar sempre se conectando ao banco de dados de configuração por meio do mongos e não criará outros bancos de dados, portanto, não é necessário adicionar usuários específicos.

I am guessing you don't need to create any users while on the mongos, since it should inherit from the config and the shards themselves, is this correct?

O primeiro fragmento que você adicionar, se tiver bancos de dados existentes, será o principal shard desses bancos de dados (para sempre). Esse shard primário conterá os registros de autenticação para esses bancos de dados, mesmo se você subsequentemente fragmentar as coleções em vários shards. Quaisquer bancos de dados subseqüentes criados depois que o shard pode residir em outro shard e suas credenciais serão armazenadas lá. A regra básica é: use mongos para gerenciar seus usuários em um ambiente fragmentado.

Nota: O que precede é verdade no MongoDB 2.4 e abaixo. As alterações planejadas no 2.6 centralizarão todas as credenciais no banco de dados de configuração em um ambiente fragmentado e removerão parte da complexidade. No entanto, a regra geral ainda é aplicável, use mongos

When adding a new shard, is it needed to go and setup the same users for each sharded database on the new shard?

Como a resposta à pergunta anterior indica, não, isso não é necessário contanto que você sempre se conecte via mongos (recomendado - ele sabe qual é o shard primário de cada banco de dados e roteará sua solicitação de autorização adequadamente). Existem alguns casos de borda em que você pode precisar ter os usuários em todos os shards, em cujo caso você teria que adicionar (e manter) eles em cada shard, mas para uso geral não é necessário.

    
por 28.01.2014 / 10:20
1

Dê uma olhada no aqui para encontrar sua resposta. Sugerimos que você use keyFile, bem como controle de acesso em nível de rede, geralmente um firewall para manter seu servidor seguro.

A autenticação Kerberos também é suportada em versões recentes do mongodb. Você pode encontrar informações aqui .

    
por 27.01.2014 / 09:49