Partilhar via


Configurar a firewall de IP no Azure Cosmos DB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

Para proteger os dados armazenados em sua conta, o Azure Cosmos DB dá suporte a um modelo de autorização baseado em segredo que utiliza um HMAC (Código de Autenticação de Mensagem) forte baseado em hash. Além disso, o Azure Cosmos DB dá suporte a controles de acesso baseados em IP para suporte de firewall de entrada. Este modelo é semelhante às regras de firewall de um sistema de banco de dados tradicional e fornece outro nível de segurança para sua conta. Com firewalls, você pode configurar sua conta do Azure Cosmos DB para ser acessível somente a partir de um conjunto aprovado de máquinas e/ou serviços de nuvem. O acesso aos dados armazenados em seu banco de dados do Azure Cosmos DB a partir desses conjuntos aprovados de máquinas e serviços ainda exigirá que o chamador apresente um token de autorização válido.

Controlo de acesso IP

Por padrão, sua conta do Azure Cosmos DB pode ser acessada pela Internet, desde que a solicitação seja acompanhada por um token de autorização válido. Para configurar o controle de acesso baseado em política de IP, o usuário deve fornecer o conjunto de endereços IP ou intervalos de endereços IP no formulário CIDR (Roteamento entre Domínios sem Classe) a ser incluído como a lista permitida de IPs de cliente para acessar uma determinada conta do Azure Cosmos DB. Uma vez que essa configuração é aplicada, todas as solicitações originadas de máquinas fora dessa lista permitida recebem resposta 403 (Proibida). Ao usar o firewall IP, é recomendável permitir que o portal do Azure acesse sua conta. O acesso é necessário para permitir o uso do explorador de dados e para recuperar métricas para sua conta que aparecem no portal do Azure. Ao usar o data explorer, além de permitir que o portal do Azure acesse sua conta, você também precisa atualizar suas configurações de firewall para adicionar seu endereço IP atual às regras de firewall. As alterações do firewall podem levar até 15 minutos para se propagar e o firewall pode apresentar um comportamento inconsistente durante esse período.

Você pode combinar o firewall baseado em IP com o controle de acesso à sub-rede e à rede virtual. Ao combiná-los, você pode limitar o acesso a qualquer fonte que tenha um IP público e/ou de uma sub-rede específica dentro da rede virtual. Para saber mais sobre como usar a sub-rede e o controle de acesso baseado em rede virtual, consulte Acessar recursos do Azure Cosmos DB de redes virtuais.

Para resumir, o token de autorização é sempre necessário para acessar uma conta do Azure Cosmos DB. Se o firewall IP e a Lista de Controle de Acesso (ACLs) da rede virtual não estiverem configurados, a conta do Azure Cosmos DB poderá ser acessada com o token de autorização. Depois que o firewall IP ou as ACLs de rede virtual ou ambas forem configuradas na conta do Azure Cosmos DB, somente as solicitações originadas das fontes especificadas (e com o token de autorização) obterão respostas válidas.

Você pode proteger os dados armazenados em sua conta do Azure Cosmos DB usando firewalls IP. O Azure Cosmos DB dá suporte a controles de acesso baseados em IP para suporte de firewall de entrada. Você pode definir um firewall IP na conta do Azure Cosmos DB usando uma das seguintes maneiras:

  • No portal do Azure
  • De forma declarativa com um modelo do Azure Resource Manager
  • Programaticamente por meio da CLI do Azure ou do Azure PowerShell atualizando a propriedade ipRangeFilter

Configurar um firewall IP usando o portal do Azure

Para definir a política de controle de acesso IP no portal do Azure, vá para a página da conta do Azure Cosmos DB e selecione Rede no menu de navegação. Altere o valor Permitir acesso de para Redes selecionadas e selecione Salvar. Se você ainda não estiver adicionando nenhum endereço IP, você também terá que marcar a caixa para reconhecer que todas as redes virtuais e IPs serão bloqueados. Se alterar as definições da rede de acesso público, desativando-a ou permitindo-a para todas as redes, perde o IP da firewall que poderia ter configurado anteriormente.

firewall-rede

Quando o controle de acesso IP está ativado, o portal do Azure fornece a capacidade de especificar endereços IP, intervalos de endereços IP e opções. Os switches permitem o acesso a outros serviços do Azure e ao portal do Azure. As seções a seguir fornecem detalhes sobre essas opções.

Nota

Depois de habilitar uma política de controle de acesso IP para sua conta do Azure Cosmos DB, todas as solicitações para sua conta do Azure Cosmos DB de máquinas fora da lista permitida de intervalos de endereços IP são rejeitadas. A navegação nos recursos do Azure Cosmos DB a partir do portal também é bloqueada para garantir a integridade do controlo de acesso.

Permitir solicitações do portal do Azure

Quando você habilita uma política de controle de acesso IP programaticamente, talvez seja necessário adicionar os endereços IP dos serviços do portal do Azure à propriedade ipRangeFilter para continuar usando algumas funcionalidades do portal.

Os cenários de portal que exigem que essa opção seja habilitada incluem:

  • Acessando a API para MongoDB ou a API para contas Apache Cassandra com o Data Explorer ou <cosmos.azure.com>
  • Usando as seguintes lâminas do Azure Cosmos DB no portal do Azure:
    • Replicar dados globalmente
    • Procurar Coleções
    • Power BI
    • Azure Synapse

Você pode habilitar solicitações para acessar o portal do Azure selecionando a opção Adicionar IPs de Middleware do Portal do Azure, conforme mostrado na captura de tela a seguir:

networking-add-middleware

Os endereços IP do Middleware do Portal do Azure serão adicionados a uma lista separada, conforme mostrado na captura de tela a seguir. Clique em Salvar para adicionar esses endereços à sua conta de banco de dados. Mais detalhes sobre os endereços IP do Middleware podem ser encontrados mais abaixo neste artigo.

rede-middleware-list

Os endereços IP do Middleware do Portal do Azure podem ser removidos clicando na opção Remover IPs do Middleware do Portal do Azure e selecionando Salvar.

Endereços IP do Middleware do Portal do Azure

Os endereços IP do Middleware do Portal do Azure estão listados abaixo. Alguns endereços IP são necessários apenas para APIs de conta de banco de dados específicas. Quando você adiciona os endereços IP de middleware no portal, conforme descrito acima, apenas os endereços IP necessários para sua conta serão adicionados.

Por exemplo:

  • Para uma conta API para NoSQL, os endereços IP da categoria Todos serão adicionados.

  • Para uma conta API para MongoDB, os endereços IP das categorias All e MongoDB only serão adicionados.

Azure Público
API de conta de banco de dados Endereços IP
Todos 13.91.105.215, 4.210.172.107, 13.88.56.148, 40.91.218.243
Apenas MongoDB 20.245.81.54, 40.118.23.126, 40.80.152.199, 13.95.130.121
Apache Cassandra apenas 40.113.96.14, 104.42.11.145, 137.117.230.240, 168.61.72.237
Azure China
API de conta de banco de dados Endereços IP
Todos 163.228.137.6, 143.64.170.142
Apenas MongoDB 52.131.240.99, 143.64.61.130
Apache Cassandra apenas 40.73.99.146, 143.64.62.47
Azure US Government
API de conta de banco de dados Endereços IP
Todos 52.247.163.6, 52.244.134.181
Apenas MongoDB 52.244.176.112, 52.247.148.42
Apache Cassandra apenas 52.244.50.101, 52.227.165.24

Endereços IP de middleware herdados

Os serviços do portal Cosmos DB recentemente fizeram a transição para uma nova infraestrutura que exigia novos endereços IP de middleware. Com a conclusão dessa transição, os endereços IP herdados usados pela infraestrutura antiga agora podem ser removidos com segurança. Se sua conta tiver endereços IP de middleware herdados presentes nas regras de firewall, a opção Remover IPs de middleware herdados do portal do Azure será exibida. Selecione essa opção e, em seguida, Salvar para remover os endereços IP herdados.

rede-remover-herdado

Os endereços IP herdados dependem do ambiente de nuvem:

Ambiente do Azure Endereços IP
Azure Público 104.42.195.92, 40.76.54.131, 52.176.6.30, 52.169.50.45, 52.187.184.26
Azure China 139.217.8.252, 52.176.6.30, 52.169.50.45, 52.187.184.26
Azure US Government 52.244.48.71, 52.176.6.30, 52.169.50.45, 52.187.184.26

Nota

Se você estiver enfrentando desafios para se conectar à sua conta do Azure Cosmos DB a partir do Data Explorer, consulte o guia de solução de problemas do Data Explorer.

Permitir pedidos de datacenters globais do Azure ou de outras origens no Azure

Se aceder à sua conta do Azure Cosmos DB a partir de serviços que não fornecem um IP estático (por exemplo, Azure Stream Analytics e Azure Functions), ainda pode utilizar a firewall IP para limitar o acesso. Você pode habilitar o acesso de outras fontes dentro do Azure selecionando a opção Aceitar conexões de dentro dos datacenters do Azure, conforme mostrado na captura de tela a seguir:

networking-add-azure-datacenters

Quando você habilita essa opção, o endereço 0.0.0.0 IP é adicionado à lista de endereços IP permitidos. O 0.0.0.0 endereço IP restringe as solicitações à sua conta do Azure Cosmos DB do intervalo de IP do datacenter do Azure. Esta definição não permite o acesso de quaisquer outros intervalos de IP à sua conta do Azure Cosmos DB.

Nota

Definir publicNetworkAccess como Desabilitado tem precedência sobre esta opção Aceitar conexão de dentro dos datacenters do Azure. Consulte blocking-public-network-access-during-account-creation

Nota

Esta opção configura o firewall para permitir todas as solicitações do Azure, incluindo solicitações de assinaturas de outros clientes implantados no Azure. A lista de IPs permitidos por esta opção é ampla, pelo que limita a eficácia de uma política de firewall. Utilize esta opção apenas se os seus pedidos não tiverem origem em IPs estáticos ou sub-redes em redes virtuais. Escolher essa opção permite automaticamente o acesso do portal do Azure porque o portal do Azure é implantado no Azure.

Pedidos do seu IP atual

Para simplificar o desenvolvimento, o portal do Azure ajuda-o a identificar e adicionar o IP do seu computador cliente à lista de permissões. Os aplicativos que executam sua máquina podem acessar sua conta do Azure Cosmos DB.

O portal deteta automaticamente o endereço IP do cliente. Pode ser o endereço IP do cliente da sua máquina ou o endereço IP do seu gateway de rede. Certifique-se de remover esse endereço IP antes de levar suas cargas de trabalho para a produção.

Para adicionar seu IP atual à lista de IPs, selecione Adicionar seu IP atual. Em seguida, selecione Guardar.

rede-add-current-ip

Pedidos de serviços na nuvem

No Azure, os serviços de nuvem são uma maneira comum de hospedar a lógica de serviço de camada intermediária usando o Azure Cosmos DB. Para habilitar o acesso à sua conta do Azure Cosmos DB a partir de um serviço de nuvem, você deve adicionar o endereço IP público do serviço de nuvem à lista permitida de endereços IP associados à sua conta do Azure Cosmos DB configurando a política de controle de acesso IP. Isso garante que todas as instâncias de função de serviços de nuvem tenham acesso à sua conta do Azure Cosmos DB.

Você pode recuperar endereços IP para seus serviços de nuvem no portal do Azure, conforme mostrado na captura de tela a seguir:

Captura de ecrã a mostrar o endereço IP público de um serviço de nuvem apresentado no portal do Azure

Quando você expande seu serviço de nuvem adicionando instâncias de função, essas novas instâncias terão acesso automaticamente à conta do Azure Cosmos DB porque fazem parte do mesmo serviço de nuvem.

Solicitações de máquinas virtuais

Você também pode usar máquinas virtuais ou conjuntos de dimensionamento de máquinas virtuais para hospedar serviços de camada intermediária usando o Azure Cosmos DB. Para configurar sua conta do Azure Cosmos DB de forma que ela permita o acesso de máquinas virtuais, você deve configurar o endereço IP público da máquina virtual e/ou a escala da máquina virtual definida como um dos endereços IP permitidos para sua conta do Azure Cosmos DB configurando a política de controle de acesso IP.

Você pode recuperar endereços IP para máquinas virtuais no portal do Azure, conforme mostrado na captura de tela a seguir:

Captura de ecrã a mostrar um endereço IP público para uma máquina virtual apresentado no portal do Azure

Quando você adiciona instâncias de máquina virtual ao grupo, elas recebem automaticamente acesso à sua conta do Azure Cosmos DB.

Pedidos da Internet

Quando você acessa sua conta do Azure Cosmos DB de um computador na Internet, o endereço IP do cliente ou o intervalo de endereços IP da máquina deve ser adicionado à lista permitida de endereços IP para sua conta.

Adicionar regras de saída à firewall

Para aceder a uma lista atual de intervalos de IP de saída para adicionar às definições da firewall, veja Transferir os Intervalos de IP e as Etiquetas de Serviço do Azure.

Para automatizar a lista, veja Utilizar a API de Deteção de Etiquetas de Serviço.

Configurar um firewall IP usando um modelo do Gerenciador de Recursos

Para configurar o controle de acesso à sua conta do Azure Cosmos DB, verifique se o modelo do Gerenciador de Recursos especifica a propriedade ipRules com uma matriz de intervalos de IP permitidos. Se estiver configurando o Firewall IP para uma conta do Azure Cosmos DB já implantada, verifique se a matriz corresponde ao locations que está implantado no momento. Não é possível modificar simultaneamente a locations matriz e outras propriedades. Para obter mais informações e exemplos de modelos do Azure Resource Manager para o Azure Cosmos DB, consulte Modelos do Azure Resource Manager para o Azure Cosmos DB

Importante

A propriedade ipRules foi introduzida com a API versão 2020-04-01. Em vez disso, as versões anteriores expunham uma propriedade ipRangeFilter , que é uma lista de endereços IP separados por vírgula.

O exemplo mostra como a propriedade ipRules é exposta na API versão 2020-04-01 ou posterior:

{
  "type": "Microsoft.DocumentDB/databaseAccounts",
  "name": "[variables('accountName')]",
  "apiVersion": "2020-04-01",
  "location": "[parameters('location')]",
  "kind": "GlobalDocumentDB",
  "properties": {
    "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
    "locations": "[variables('locations')]",
    "databaseAccountOfferType": "Standard",
    "enableAutomaticFailover": "[parameters('automaticFailover')]",
    "ipRules": [
      {
        "ipAddressOrRange": "13.91.105.215"
      },
      {
        "ipAddressOrRange": "4.210.172.107"
      },
      {
        "ipAddressOrRange": "13.88.56.148"
      },
      {
        "ipAddressOrRange": "40.91.218.243"
      }
    ]
  }
}

Aqui está o mesmo exemplo para qualquer versão da API antes de 2020-04-01:

{
  "type": "Microsoft.DocumentDB/databaseAccounts",
  "name": "[variables('accountName')]",
  "apiVersion": "2019-08-01",
  "location": "[parameters('location')]",
  "kind": "GlobalDocumentDB",
  "properties": {
    "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
    "locations": "[variables('locations')]",
    "databaseAccountOfferType": "Standard",
    "enableAutomaticFailover": "[parameters('automaticFailover')]",
    "ipRangeFilter":"13.91.105.215,4.210.172.107,13.88.56.148,40.91.218.243"
  }
}

Configurar uma política de controle de acesso IP usando a CLI do Azure

O comando a seguir mostra como criar uma conta do Azure Cosmos DB com controle de acesso IP:

# Create an Azure Cosmos DB account with default values and IP Firewall enabled
resourceGroupName='MyResourceGroup'
accountName='mycosmosaccount'
ipRangeFilter='192.168.221.17,183.240.196.255,40.76.54.131'

# Make sure there are no spaces in the comma-delimited list of IP addresses or CIDR ranges.
az cosmosdb create \
    -n $accountName \
    -g $resourceGroupName \
    --locations regionName='West US 2' failoverPriority=0 isZoneRedundant=False \
    --locations regionName='East US 2' failoverPriority=1 isZoneRedundant=False \
    --ip-range-filter $ipRangeFilter

Configurar uma política de controle de acesso IP usando o PowerShell

O script a seguir mostra como criar uma conta do Azure Cosmos DB com controle de acesso IP:

# Create an Azure Cosmos DB account with default values and IP Firewall enabled
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$ipRules = @("192.168.221.17","183.240.196.255","40.76.54.131")

$locations = @(
    @{ "locationName"="West US 2"; "failoverPriority"=0; "isZoneRedundant"=False },
    @{ "locationName"="East US 2"; "failoverPriority"=1, "isZoneRedundant"=False }
)

# Make sure there are no spaces in the comma-delimited list of IP addresses or CIDR ranges.
$CosmosDBProperties = @{
    "databaseAccountOfferType"="Standard";
    "locations"=$locations;
    "ipRules"=$ipRules
}

New-AzResource -ResourceType "Microsoft.DocumentDb/databaseAccounts" `
    -ApiVersion "2020-04-01" -ResourceGroupName $resourceGroupName `
    -Name $accountName -PropertyObject $CosmosDBProperties

Solucionar problemas com uma política de controle de acesso IP

Você pode solucionar problemas com uma política de controle de acesso IP usando as seguintes opções:

Portal do Azure

Ao habilitar uma política de controle de acesso IP para sua conta do Azure Cosmos DB, você bloqueia todas as solicitações para sua conta de máquinas fora da lista permitida de intervalos de endereços IP. Para habilitar operações de plano de dados do portal, como navegar em contêineres e consultar documentos, você precisa permitir explicitamente o acesso ao portal do Azure usando o painel Firewall no portal.

SDKs

Quando você acessa recursos do Azure Cosmos DB usando SDKs de máquinas que não estão na lista de permissões, uma resposta genérica 403 Forbidden é retornada sem detalhes extras. Verifique a lista de IP permitidos para sua conta e verifique se a configuração de política correta é aplicada à sua conta do Azure Cosmos DB.

IPs de origem em solicitações bloqueadas

Habilite o log de diagnóstico em sua conta do Azure Cosmos DB. Esses logs mostram cada solicitação e resposta. As mensagens relacionadas ao firewall são registradas com um código de retorno 403. Ao filtrar essas mensagens, você pode ver os IPs de origem das solicitações bloqueadas. Consulte Log de diagnóstico do Azure Cosmos DB.

Solicitações de uma sub-rede com um ponto de extremidade de serviço para o Azure Cosmos DB habilitado

As solicitações de uma sub-rede em uma rede virtual que tenha um ponto de extremidade de serviço para o Azure Cosmos DB habilitado enviam a rede virtual e a identidade da sub-rede para as contas do Azure Cosmos DB. Essas solicitações não têm o IP público da fonte, portanto, os filtros de IP as rejeitam. Para permitir o acesso de sub-redes específicas em redes virtuais, adicione uma lista de controle de acesso, conforme descrito em Como configurar a rede virtual e o acesso baseado em sub-rede para sua conta do Azure Cosmos DB. Pode levar até 15 minutos para que as regras de firewall sejam aplicadas e o firewall pode apresentar um comportamento inconsistente durante esse período.

Endereços IP privados na lista de endereços permitidos

Falha ao criar ou atualizar uma conta do Azure Cosmos DB com uma lista de endereços permitidos contendo endereços IP privados. Certifique-se de que nenhum endereço IP privado está especificado na lista.