Na primeira parte do blog “Uma visão geral do MongoDB Atlas”, analisamos os primeiros passos com o MongoDB Atlas, a configuração inicial e a migração de um cluster MongoDB existente para o MongoDB Atlas. Nesta parte, continuaremos a explorar vários elementos de gerenciamento necessários para cada sistema de produção MongoDB, como segurança e continuidade de negócios.
Segurança de banco de dados no MongoDB Atlas
A segurança sempre vem em primeiro lugar. Embora seja importante para todos os bancos de dados, para o MongoDB tem um significado especial. Em meados de 2017, a internet estava cheia de notícias sobre ataques de ransomware que visavam especificamente vulnerabilidades em sistemas MongoDB. Os hackers estavam sequestrando instâncias do MongoDB e pedindo um resgate em troca do retorno dos dados armazenados. Houve avisos. Antes desses ataques de ransomware, blogueiros e especialistas escreveram sobre quantas instâncias de produção foram consideradas vulneráveis. Isso despertou uma discussão vibrante em torno da segurança do MongoDB por muito tempo depois.
Estamos agora em 2019 e o MongoDB está ficando ainda mais popular. A nova versão principal (4.0) foi lançada recentemente e vimos uma maior estabilidade no MongoDB Atlas. Mas o que tem sido feito para aumentar a segurança dos bancos de dados NoSQL na nuvem.
O ransomware e a imprensa constante devem ter tido um impacto no MongoDB, pois podemos ver claramente que a segurança está agora no centro do ecossistema do MongoDB. O MongoDB Atlas não é exceção, pois agora vem com controles de segurança integrados para necessidades de processamento de dados de produção e muitos recursos de segurança corporativos prontos para uso. A abordagem padrão (que causou a vulnerabilidade) da versão mais antiga desapareceu e o banco de dados agora está protegido por padrão (rede, autorizações brutas, etc.). Ele também vem com recursos que você esperaria ter em um ambiente de produção moderno (auditoria, acesso temporário de usuário, etc).
Mas não para por aí. Como o Atlas é uma solução online, agora você pode usar integrações com terceiros, como autenticação LDAP ou serviços modernos de Internet MongoDB, como gráficos MongoDB. O MongoDB Atlas é construído sobre Amazon WebServices (AWS), Microsoft Azure e Google Cloud Platform (GCP), que também oferecem medidas próprias de alta segurança. Essa ótima combinação garante que os padrões de segurança do MongoDB Atlas sejam o que esperaríamos. Vamos dar uma olhada rápida em alguns desses recursos principais.
MongoDB Atlas e segurança de rede
MongoDB Atlas cria clusters em cima de sua infraestrutura de nuvem existente. Quando se escolhe a AWS, os dados do cliente são armazenados nos sistemas MongoDB Atlas. Esses sistemas são servidores virtuais AWS EC2 dedicados e de locatário único, criados exclusivamente para um cliente Atlas. Os data centers da Amazon AWS estão em conformidade com vários padrões de segurança física e segurança da informação, mas como precisamos de uma rede aberta, isso pode gerar preocupações.
Os clusters dedicados do MongoDB Atlas são implantados em uma Virtual Private Cloud (VPC) com firewalls dedicados. O acesso deve ser concedido por uma lista de permissões de IP ou por meio do emparelhamento de VPC. Por padrão, todo o acesso está desabilitado.
MongoDB requer as seguintes portas de rede para Atlas...
- 27016 para fragmentos
- 27015 para o conector de BI
- 27017 para servidor
- Se o LDAP estiver ativado, o MongoDB exigirá a rede LDAP 636 no lado do cliente aberta para tráfego 0.0.0.0 (toda a Internet).
As portas de rede não podem ser alteradas e o TLS não pode ser desabilitado. O acesso também pode ser isolado pela lista de permissões de IP.
Além disso, você pode optar por acessar o MongoDB Atlas por meio de hosts Bastion. Os hosts Bastion são configurados para exigir chaves SSH (não senhas). Eles também exigem autenticação multifator, e os usuários também devem ser aprovados pela gerência sênior para acesso de back-end.
Gerenciamento de acesso baseado em função do Atlas MongoDB
Você pode configurar regras de acesso avançadas baseadas em funções para controlar quais usuários (e equipes) podem acessar, manipular e/ou excluir dados em seus bancos de dados. Por padrão, não há usuários criados, portanto, você será solicitado a criar um.
MongoDB Atlas permite que administradores definam permissões para um usuário ou aplicativo, bem como quais dados podem ser acessados ao consultar o MongoDB. O MongoDB Atlas fornece a capacidade de fornecer aos usuários funções específicas para um projeto ou banco de dados, possibilitando a separação de tarefas entre diferentes entidades que acessam e gerenciam os dados. O processo é simples e totalmente interativo.
Para criar um novo usuário, vá para a guia Segurança no lado esquerdo e escolha entre usuários do MongoDB e funções do MongoDB.
Funções do MongoDB
Criptografia de banco de dados de ponta a ponta no MongoDB Atlas
Todos os dados do MongoDB Atlas em trânsito são criptografados usando Transport Layer Security (TLS). Você tem a flexibilidade de configurar a versão mínima do protocolo TLS. A criptografia de dados em repouso é automatizada usando volumes de armazenamento criptografados.
Você também pode integrar suas práticas e processos de segurança existentes com o MongoDB Atlas para fornecer controle adicional sobre como proteger seu ambiente.
Para o próprio MongoDB Atlas Cluster, a autenticação é habilitada automaticamente por padrão via SCRAM para garantir um sistema seguro pronto para uso.
Com o Gerenciamento de Chave de Criptografia, você pode trazer suas próprias chaves de criptografia para seus clusters dedicados para uma camada adicional de criptografia nos arquivos de banco de dados, incluindo instantâneos de backup.
Auditoria no MongoDB Atlas
A auditoria de banco de dados granular responde a perguntas detalhadas sobre a atividade do sistema para implantações com vários usuários, rastreando todos os comandos no banco de dados. A auditoria no MongoDB está disponível apenas no MongoDB Enterprise. Você pode gravar eventos de auditoria no console, no syslog, em um arquivo JSON ou em um arquivo BSON. Você configura a opção de auditoria usando o qualificador –auditDestination. Por exemplo, para enviar eventos de auditoria como eventos JSON para o syslog, use...
mongod --dbpath data/db --auditDestination syslog
O MongoDB mantém um sistema de gerenciamento de log centralizado para coleta, armazenamento e análise de dados de log para ambientes de produção. Essas informações podem ser usadas para monitoramento de integridade, solução de problemas e para fins de segurança. Os alertas são configurados no sistema para notificar os SREs sobre quaisquer preocupações operacionais.
Integração LDAP do Atlas MongoDB
A autenticação e autorização do usuário nos clusters do MongoDB Atlas podem ser gerenciadas por meio do servidor Lightweight Directory Access Protocol (LDAP) do cliente sobre TLS. Uma única configuração LDAP se aplica a todos os clusters de banco de dados em um projeto Atlas. Os servidores LDAP são usados para simplificar o controle de acesso e tornar o gerenciamento de permissões mais granular.
Para clientes que executam seu servidor LDAP em uma AWS Virtual Private Cloud (VPC), uma conexão de peering é recomendada entre esse ambiente e a VPC que contém seus bancos de dados Atlas.
Continuidade de negócios e recuperação de desastres do MongoDB
MongoDB Atlas cria e configura clusters dedicados na infraestrutura fornecida pela AWS, Azure e/ou Google GCP. A disponibilidade de dados está sujeita aos processos de Planos de Continuidade de Negócios (BCP) e Recuperação de Desastres (DR) de serviços do provedor de infraestrutura. Os provedores de serviços de infraestrutura do MongoDB Atlas possuem várias certificações e relatórios de auditoria para esses controles.
Backups de banco de dados no MongoDB Atlas
MongoDB Atlas faz backup de dados, normalmente apenas alguns segundos atrás de um sistema operacional. O MongoDB Atlas garante backup contínuo de conjuntos de réplicas, instantâneos consistentes em todo o cluster de clusters fragmentados e recuperação pontual. Esse serviço de backup totalmente gerenciado usa o Amazon S3 na região mais próxima da implantação do banco de dados do cliente.
Os dados de backup são protegidos usando criptografia do lado do servidor. O Amazon S3 criptografa os dados de backup no nível do objeto à medida que os grava em discos em seus datacenters e os descriptografa para você quando você os restaura. Todas as chaves são totalmente gerenciadas pela AWS.
Os clusters Atlas implantados na Amazon Web Services e no Microsoft Azure podem aproveitar os instantâneos do provedor de nuvem que usam os recursos de instantâneo nativos do provedor de nuvem subjacente. Os backups são armazenados na mesma região de nuvem que o cluster correspondente. Para clusters de várias regiões, os instantâneos são armazenados na região preferencial do cluster.
Atlas oferece os seguintes métodos para fazer backup de seus dados...
Backups de banco de dados contínuos
Os backups contínuos estão disponíveis em clusters M10+ e versões anteriores à versão 4.2 do servidor. Este é um método antigo de realizar backups do MongoDB. O Atlas usa instantâneos incrementais para fazer backup contínuo de seus dados. Os instantâneos de backup contínuos geralmente ficam apenas alguns segundos atrás do sistema operacional. O Atlas garante backup pontual de conjuntos de réplicas e instantâneos consistentes em todo o cluster de clusters fragmentados por conta própria, para os quais usa o S3.
Copiar instantâneos completos
A Atlas usa os recursos nativos de instantâneos do seu provedor de nuvem para oferecer suporte a instantâneos de cópia completa e armazenamento de instantâneos localizados.
MongoDB Atlas Data Lake
Usar o Atlas Data Lake para ingerir seus dados do S3 em clusters do Atlas permite consultar rapidamente os dados armazenados em seus buckets do AWS S3 usando o Mongo Shell, MongoDB Compass e qualquer driver MongoDB.
Ao criar um Data Lake, você concederá ao Atlas acesso somente leitura aos buckets do S3 em sua conta da AWS e criará um arquivo de configuração de dados que mapeia dados de seus buckets do S3 para seus bancos de dados e coleções do MongoDB. O Atlas suporta o uso de qualquer cluster M10+, incluindo Clusters Globais, para se conectar a Data Lakes no mesmo.
No momento em que escrevo este blog, os seguintes formatos são suportados.
- Avro
- Parquet
- JSON
- JSON/Gzipado
- BSON
- CSV (requer linha de cabeçalho)
- TSV (requer linha de cabeçalho)
Conclusão
Isso é tudo por enquanto, espero que tenham gostado da minha visão geral de duas partes do MongoDB Atlas. Lembre-se de que o ClusterControl também fornece gerenciamento de ponta a ponta de clusters MongoDB e é uma ótima alternativa de baixo custo ao MongoDB Atlas, que também pode ser implantado na nuvem.