ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Menu Docs

Orientações para Segurança de Rede do Atlas

O Atlas fornece padrões de configuração de rede seguros para seus sistemas de banco de dados , como:

  • Criptografia de conexão TLS/SSL obrigatória

  • VPCs para todos os projetos com um ou mais clusters dedicados

  • Autenticação que usa listas de acesso IP e aceita apenas conexões de fontes que você declarar explicitamente

Você pode configurar ainda mais essas proteções para atender às suas necessidades e preferências exclusivas de segurança.

Use as recomendações desta página para planejar a configuração de segurança de rede dos seus clusters.

O Atlas impõe criptografia TLS/SSL para todas as conexões com seus bancos de dados.

Recomendamos o uso de clusters dedicados M10+ porque todos os projetos do Atlas com um ou mais clusters dedicados M10+ recebem sua própria VPC dedicada no AWS ou no Google Cloud. - VNet no Azure.

O Atlas distribui todos os clusters dedicados dentro deste VPC ou VNet.

Por padrão, todo acesso aos seus clusters é bloqueado. Você deve permitir explicitamente uma conexão de entrada por um dos seguintes métodos:

  • Adicionar endereços IP públicos à sua lista de acesso IP.

  • Use emparelhamento VPC/VNet para adicionar endereços IP privados.

  • Adicione endpoints privados, que o Atlas adiciona automaticamente à sua lista de acesso IP. Nenhum outro acesso é adicionado automaticamente.

Você também pode usar vários métodos juntos para aumentar a segurança.

O Atlas força a criptografia TLS obrigatória das conexões com seus bancos de dados. TLS 1.2 é o protocolo padrão. Para saber mais, consulte a seção Set Minimum TLS Protocol Version de Configurar Configurações Adicionais.

Como administrador do Atlas, você pode:

Você pode configurar listas de acesso IP para restringir quais endereços IP podem tentar a autenticação no seu banco de dados.

Seus clusters do Atlas permitem o acesso somente a partir dos endereços IP e intervalos de IP do bloco CIDR que você adiciona à sua lista de acesso IP. Os servidores de aplicativos e outros clientes não poderão acessar seus Atlas clusters se seus endereços IP não estiverem incluídos na sua lista de acesso IP.

Você pode configurar entradas de lista de acesso temporárias que expiram automaticamente após um período definido pelo usuário.

Ao se conectar dos servidores de aplicação do cliente ao Atlas e passar por um firewall que bloqueia conexões de rede de saída, você também deve configurar o firewall para permitir que seus aplicativos façam conexões de saída com o tráfego TCP nos hosts do Atlas . Isso concede aos seus aplicativos acesso aos seus clusters.

Os IPs públicos do cluster Atlas permanecem inalterados na maioria dos casos de mudanças no cluster, como dimensionamento vertical, mudanças na topologia ou eventos de manutenção. No entanto, certas alterações de topologia, como a conversão de um conjunto de réplicas para um cluster fragmentado, a adição de fragmentos ou uma mudança de região exigem que você use novos endereços IP.

No caso de converter de um conjunto de réplicas para um cluster fragmentado, a falha em reconectar os clientes do aplicação pode fazer com que seu aplicação sofra interrupções de dados. Se você usar uma string de conexão de lista de sementes de DNS, seu aplicação se conectará automaticamente ao mongos para o cluster fragmentado. Se você utilizar uma string de conexão padrão , deverá atualizar sua string de conexão para refletir sua nova topologia de cluster .

No caso de adicionar novos shards, a falha em reconectar os clientes do aplicação pode fazer com que seu aplicação sofra uma interrupção de dados.

Um endpoint privado facilita uma conexão unidirecional de sua própria VPC para sua VPC do Atlas, sem permitir que o Atlas inicie uma conexão recíproca. Isso permite que você use conexões seguras com o Atlas sem estender seu limite de confiança de rede. Os seguintes endpoints privados estão disponíveis:

"An image representing how MongoDB Atlas private endpoints work."
clique para ampliar

O emparelhamento de rede permite que você conecte suas próprias VPCsa um VPC do Atlas para rotear o tráfego de forma privada e isolar seu fluxo de dados da Internet pública. O Atlas mapeia VPCsum a um para os projetos Atlas.

A maioria das operações realizadas em uma conexão VPC se origina do seu ambiente de aplicativo, minimizando a necessidade de o Atlas fazer solicitações de acesso de saída para VPCs pares. No entanto, se você configurar o Atlas para usar a autenticação LDAP, deverá habilitar o Atlas para se conectar ao ponto de extremidade de autenticação da sua VPC par pelo protocolo LDAP. Observe que a autenticação LDAP está obsoleta no Atlas com 8.0. Recomendamos que você use o Workforce Identity Federation e o Workload Identity Federation em vez disso.

Você pode escolher seu bloco CIDR do Atlas com o assistente de emparelhamento da VPC antes de distribuir seu primeiro cluster. O bloco CIDR do Atlas VPC não deve se sobrepor ao bloco CIDR de nenhuma VPC com a qual você pretende fazer o peering. O Atlas limita o número de instâncias do MongoDB por VPC com base no bloco CIDR. Por exemplo, um projeto com um bloco CIDR de /24 é limitado ao equivalente a 27 conjuntos de réplicas de 3nós.

"An image representing how MongoDB Atlas VPC/VNet peering works."
clique para ampliar

Recomendamos que você configure pontos de extremidade privados para todos os novos projetos de staging e produção para limitar a extensão do limite de confiança da sua rede.

Em geral, recomendamos o uso de pontos de extremidade privados para cada projeto Atlas, pois eles fornecem a segurança mais granular e facilitam a carga administrativa que pode surgir do gerenciamento de listas de acesso IP e grandes blocos de endereços IP à medida que sua rede na nuvem se expande. Existe um custo associado a cada ponto de extremidade, então você pode considerar não exigir pontos de extremidade privados em ambientes de desenvolvimento, mas deve utilizá-los em ambientes de produção para limitar a extensão do limite de confiança da sua rede.

Para saber mais sobre pontos de extremidade privados no Atlas, incluindo limitações e considerações, consulte Saiba mais sobre pontos de extremidade privados no Atlas. Para saber como configurar endpoints privados para seus clusters, consulte Configurar um endpoint privado para um cluster dedicado.

Recomendamos que você configure uma lista de acesso IP para suas chaves de API e acesso programático para permitir o acesso somente de endereços IP confiáveis, como pipeline de CI/CD ou sistema de orquestração. Essas listas de acesso IP são definidas no plano de controle do Atlas após o provisionamento de uma conta de serviço e são separadas das listas de acesso IP que podem ser definidas no plano de dados do projeto Atlas para conexões com os clusters.

Ao configurar sua lista de acesso IP, recomendamos que você:

  • Utilize entradas temporárias na lista de acesso em situações onde os membros da equipe necessitam acessar seu ambiente a partir de locais de trabalho temporários ou durante cenários de emergência, onde o acesso humano à produção é necessário para resolver um cenário de interrupção de produção. Recomendamos que você desenvolva um script de automação para adicionar rapidamente acesso temporário e se preparar para esses incidentes.

  • Defina entradas da lista de acesso IP que cubram os menores segmentos de rede possíveis. Para fazer isso, favoreça endereços IP individuais sempre que possível e evite grandes blocos CIDR.

Se você configurar o emparelhamento VPC ou VNet, recomendamos que:

  • Para manter limites de confiança de rede rígidos, configure grupos de segurança e ACLs de rede para evitar o acesso de entrada a sistemas dentro de suas VPCsde aplicativo a partir das VPCs do lado do Atlas.

  • Crie novas VPCspara atuar como intermediárias entre a infraestrutura de aplicativo sensíveis e suas VPCsdo Atlas. As VPCssão intransitivas, permitindo que você exponha apenas os componentes do seu aplicativo que precisam de acesso ao Atlas.

Veja exemplos do Terraform para aplicar nossas recomendações de Staging/Prod em todos os pilares em um só lugar no Github.

Os exemplos a seguir configuram conexões entre seu ambiente do aplicação e seus clusters Atlas usando listas de acesso IP, emparelhamento deVPC e endpoints privados.

Esses exemplos também incluem outras configurações recomendadas, tais como:

  • Camada do cluster configurada para M10 em um ambiente de desenvolvimento/teste. Use o guia de tamanho do cluster para saber qual a camada do cluster recomendada para o tamanho do seu aplicativo.

  • Região única, 3-Conjunto de réplicas de nós/Topologia de implantação de fragmento.

Nossos exemplos usam Amazon Web Services, Azure e Google Cloud Platform de forma intercambiável. Você pode usar qualquer um desses três provedores de nuvem, mas deve alterar o nome da região para corresponder ao provedor de nuvem. Para saber mais sobre os fornecedores de nuvem e suas regiões, consulte Fornecedores de nuvem.

  • Camada do cluster definida como M30 para um aplicativo de porte médio. Use o guia de tamanho do cluster para saber qual a camada do cluster recomendada para o tamanho do seu aplicativo.

  • Região única, 3-Conjunto de réplicas de nós/Topologia de implantação de fragmento.

Nossos exemplos usam Amazon Web Services, Azure e Google Cloud Platform de forma intercambiável. Você pode usar qualquer um desses três provedores de nuvem, mas deve alterar o nome da região para corresponder ao provedor de nuvem. Para saber mais sobre os fornecedores de nuvem e suas regiões, consulte Fornecedores de nuvem.

Observação

Antes de configurar conexões com o Atlas CLI, você deve:

Execute o seguinte comando para cada conexão que você deseja permitir. Altere as entradas para utilizar as opções adequadas e os seus valores reais:

atlas accessList create 192.0.2.15 --type ipAddress --projectId 5e2211c17a3e5a48f5497de3 --comment "IP address for app server 2" --output json

Para mais opções de configuração e informações sobre este exemplo, consulte atlas accessLists create.

Para obter informações sobre como criar uma entrada de lista de acesso IP com Amazon Web Services, GCP e Azure, consulte Configurar um endpoint privado para um cluster dedicado

Execute o seguinte comando para cada VPC que você deseja emparelhar com seu Atlas VPC. Substitua aws por azure ou gcp conforme apropriado, e altere as opções e valores para os apropriados para sua VPC ou VNet:

atlas networking peering create aws --accountId 854333054055 --atlasCidrBlock 192.168.0.0/24 --region us-east-1 --routeTableCidrBlock 10.0.0.0/24 --vpcId vpc-078ac381aa90e1e63

Para obter mais opções de configuração e informações sobre este exemplo, consulte:

Execute o comando a seguir para cada endpoint privado que você deseja criar. Substitua aws por azure ou gcp conforme apropriado e altere as opções e valores para os apropriados para sua VPC ou VNet:

atlas privateEndpoints aws create --region us-east-1 --projectId 5e2211c17a3e5a48f5497de3 --output json

Para obter mais opções de configuração e informações sobre este exemplo, consulte:

Observação

Antes de criar recursos com o Terraform, você deve:

  • Crie sua organização pagadora e crie uma chave de API para a organização pagadora. Armazene sua chave de API como variáveis de ambiente ao executar o seguinte comando no terminal:

    export MONGODB_ATLAS_PUBLIC_KEY="<insert your public key here>"
    export MONGODB_ATLAS_PRIVATE_KEY="<insert your private key here>"
  • Instalar o Terraform

Sugerimos também a criação de um espaço de trabalho para o seu ambiente.

Para adicionar uma entrada à sua lista de acesso IP, crie o seguinte arquivo e coloque-o no diretório do projeto ao qual deseja conceder acesso. Altere os IDs e nomes para usar seus valores:

# Add an entry to your IP Access List
resource "mongodbatlas_access_list_api_key" "address_1" {
org_id = "<org-id>"
ip_address = "2.3.4.5"
api_key_id = "a29120e123cd"
}

Depois de criar os arquivos, navegue até o diretório do seu projeto e execute o seguinte comando para inicializar o Terraform:

terraform init

Execute o seguinte comando para visualizar o plano do Terraform:

terraform plan

Execute o comando a seguir para adicionar uma entrada à lista de acesso IP do seu projeto. O comando usa o arquivo e o Terraform MongoDB e HashiCorp para adicionar a entrada.

terraform apply

Quando solicitado, digite yes e pressione Enter para aplicar a configuração.

Para criar uma conexão de emparelhamento entre seu aplicação VPC e seu Atlas VPC, crie o seguinte arquivo e coloque-o no diretório do projeto ao qual você deseja conceder acesso. Altere os IDs e nomes para usar seus valores:

# Define your application VPC
resource "aws_default_vpc" "default" {
tags = {
Name = "Default VPC"
}
}
# Create the peering connection request
resource "mongodbatlas_network_peering" "mongo_peer" {
accepter_region_name = "us-east-2"
project_id = local.project_id
container_id = one(values(mongodbatlas_advanced_cluster.test.container_id))
provider_name = "AWS"
route_table_cidr_block = "172.31.0.0/16"
vpc_id = aws_default_vpc.default.id
aws_account_id = local.AWS_ACCOUNT_ID
}
# Accept the connection
resource "aws_vpc_peering_connection_accepter" "aws_peer" {
vpc_peering_connection_id = mongodbatlas_network_peering.mongo_peer.connection_id
auto_accept = true
tags = {
Side = "Accepter"
}
}

Depois de criar o arquivo, navegue até o diretório do projeto e execute o seguinte comando para inicializar o Terraform:

terraform init

Execute o seguinte comando para visualizar o plano do Terraform:

terraform plan

Execute o comando a seguir para adicionar uma conexão de emparelhamento VPC do seu aplicação ao seu projeto. O comando usa o arquivo e o Terraform MongoDB e HashiCorp para adicionar a entrada.

terraform apply

Quando solicitado, digite yes e pressione Enter para aplicar a configuração.

Para criar um PrivateLink do seu aplicação VPC para o seu Atlas VPC, crie o seguinte arquivo e coloque-o no diretório do projeto ao qual deseja se conectar. Altere os IDs e nomes para usar seus valores:

resource "mongodbatlas_privatelink_endpoint" "test" {
project_id = "<project-id>"
provider_name = "AWS/AZURE"
region = "US_EAST_1"
timeouts {
create = "30m"
delete = "20m"
}
}

Depois de criar o arquivo, navegue até o diretório do projeto e execute o seguinte comando para inicializar o Terraform:

terraform init

Execute o seguinte comando para visualizar o plano do Terraform:

terraform plan

Execute o seguinte comando para adicionar um ponto de extremidade PrivateLink do seu aplicativo ao seu projeto. O comando utiliza o arquivo e o MongoDB & HashiCorp Terraform para adicionar a entrada.

terraform apply

Quando solicitado, digite yes e pressione Enter para aplicar a configuração.