Configurar o firewall de IP no Azure Cosmos DB
APLICA-SE AO: NoSQL MongoDB Cassandra Gremlin Table
Para proteger dados armazenados na 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 baseado em hash) forte. Além disso, o Azure Cosmos DB dá suporte a controles de acesso baseados em IP para suporte de firewall de entrada. Esse modelo é semelhante às regras de firewall de um sistema de banco de dados tradicional e fornece outro nível de segurança à conta. Com firewalls, é possível configurar a conta do Azure Cosmos DB para ser acessível somente de um conjunto aprovado de computadores e/ou serviços de nuvem. O acesso aos dados armazenados no banco de dados do Azure Cosmos DB desses conjuntos de computadores e serviços aprovados exigirá que o chamador apresente um token de autorização válido.
Controle de acesso do IP
Por padrão, a conta do Azure Cosmos DB pode ser acessada da 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 deverá 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 do cliente para acessar uma determinada conta do Azure Cosmos DB. Depois que essa configuração for aplicada, todas as solicitações originadas de computadores fora dessa lista permitida receberão uma resposta 403 (Proibido). Ao usar o firewall de IP, é recomendável permitir que o portal do Azure acesse a sua conta. O acesso é necessário para permitir o uso do Data Explorer e recuperar as métricas da conta que aparecem no portal do Azure. Ao usar o data explorer, além de permitir que 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. O firewall propaga as alterações em até 15 minutos e pode apresentar comportamento divergente durante esse período.
É possível combinar firewall baseado em IP com sub-rede e controle de acesso à rede virtual. Ao combiná-los, você poderá 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 o controle de acesso baseado em sub-rede e rede virtual, confira o artigo Acessar recursos do Azure Cosmos DB a partir de redes virtuais.
Para resumir, o token de autorização sempre será necessário para acessar uma conta do Azure Cosmos DB. Se o firewall de IP e as ACLs (listas de controle de acesso) de 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 de IP ou as ACLs de rede virtual, ou ambos, estiverem configurados na conta do Azure Cosmos DB, somente as solicitações originadas das fontes especificadas (e com o token de autorização) receberão respostas válidas.
Você pode proteger os dados armazenados na sua conta do Azure Cosmos DB usando firewalls de IP. O Azure Cosmos DB é compatível com 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
- Declarativamente usando 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, acesse 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, em seguida, selecione Salvar. Se você ainda não estiver adicionando nenhum endereço IP, também precisará marcar a caixa para reconhecer que todas as VNets e IPs serão bloqueadas. Se você alterar as configurações de rede de acesso público, desativando-a ou permitindo-a para todas as redes, perderá o IP de firewall que você pode ter configurado anteriormente.
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 comutadores. Opções de habilitam o acesso a outros serviços do Azure e o portal do Azure. As seções a seguir fornecem detalhes sobre esses switches.
Observação
Depois de habilitar uma diretiva 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 serão rejeitadas. A navegação nos recursos do Azure Cosmos DB do portal também é bloqueada para garantir a integridade do controle de acesso.
Permitir solicitações do portal do Azure
Ao habilitar 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 do portal que exigem que essa opção seja habilitada incluem:
- Especificamente para a API do MongoDB ou API para Apache Cassandra, acessando contas com o Data Explorer ou <cosmos.azure.com>
- Para todas as APIs, usando os seguintes painéis do Azure Cosmos DB no portal do Azure:
- Procurar por coleções
- Power BI
- Azure Synapse
Você pode habilitar o acesso ao portal do Azure selecionando a opção Adicionar IPs de middleware do portal do Azure, conforme mostrado na seguinte captura de tela:
Os endereços IP de 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 de middleware podem ser encontrados mais abaixo neste artigo.
Os endereços IP de middleware do portal do Azure podem ser removidos clicando na opção Remover IPs de middleware do portal do Azure e selecionando Salvar.
Endereços IP de middleware do portal do Azure
Os endereços IP de 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ê adicionar os endereços IP de middleware no portal, conforme descrito acima, somente os endereços IP necessários para sua conta serão adicionados.
Por exemplo:
Para uma conta da API para NoSQL, os endereços IP da categoria Todos serão adicionados.
Para uma conta da API para MongoDB, os endereços IP das categorias Todos e Somente MongoDB serão adicionados.
Público do Azure
API da Conta de Banco de dados | Endereços IP |
---|---|
Tudo | 13.91.105.215, 4.210.172.107, 13.88.56.148, 40.91.218.243 |
Somente MongoDB | 20.245.81.54, 40.118.23.126, 40.80.152.199, 13.95.130.121 |
Somente Apache Cassandra | 40.113.96.14, 104.42.11.145, 137.117.230.240, 168.61.72.237 |
Azure China
API da Conta de Banco de dados | Endereços IP |
---|---|
Tudo | 163.228.137.6, 143.64.170.142 |
Somente MongoDB | 52.131.240.99, 143.64.61.130 |
Somente Apache Cassandra | 40.73.99.146, 143.64.62.47 |
Governo dos EUA para Azure
API da Conta de Banco de dados | Endereços IP |
---|---|
Tudo | 52.247.163.6, 52.244.134.181 |
Somente MongoDB | 52.244.176.112, 52.247.148.42 |
Somente Apache Cassandra | 52.244.50.101, 52.227.165.24 |
Endereços IP de middleware herdados
Os serviços do portal do Cosmos DB recentemente passaram 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 herdado do portal do Azure será exibida. Selecione essa opção e salve para remover os endereços IP herdados.
Os endereços IP herdados dependem do ambiente de nuvem:
Azure Environment | Endereços IP |
---|---|
Público do Azure | 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 |
Observação
Se estiver tendo dificuldades 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 solicitações de datacenters do Azure global ou de outras fontes dentro do Azure
Se você acessar sua conta do Azure Cosmos DB a partir de serviços que não fornecem um IP estático (por exemplo, o Azure Stream Analytics e o Azure Functions), ainda é possível usar o firewall de IP para limitar o acesso. Você pode habilitar o acesso ao portal do Azure selecionando a opção Aceitar conexões de dentro do datacenters do Azure, conforme mostrado na captura de tela a seguir:
Quando você habilita essa opção, o endereço IP 0.0.0.0
é 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 IP do datacenter do Azure. Essa configuração não permite o acesso de nenhum outro intervalo de IP à sua conta do Azure Cosmos DB.
Observação
Definir publicNetworkAccess como Desabilitado tem precedência sobre a opção Aceitar conexão de dentro dos datacenters do Azure. Confira blocking-public-network-access-during-account-creation
Observação
Essa 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 essa opção é ampla, limitando a eficácia de uma política de firewall. Use essa opção somente se suas solicitações não forem originadas de IPs ou sub-redes estáticas em redes virtuais. A escolha desta opção permite automaticamente o acesso do portal do Azure, porque o portal do Azure é implantado no Azure.
Solicitações do seu IP atual
Para simplificar o desenvolvimento, o portal do Azure ajuda a identificar e adicionar o IP de sua máquina cliente à lista permitida. Os aplicativos que executam sua máquina podem acessar sua conta do Azure Cosmos DB.
O portal detecta 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 este endereço IP antes de levar suas cargas de trabalho para produção.
Para adicionar seu IP atual à lista de IPs, selecione Adicionar meu IP atual. Em seguida, selecione Salvar.
Solicitações dos serviços de nuvem
No Azure, os serviços de nuvem são uma maneira comum de hospedar a lógica do 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 dos serviços de nuvem tenham acesso à sua conta do Azure Cosmos DB.
Você pode recuperar endereços IP de seus serviços de nuvem no Portal do Azure, conforme mostra a captura de tela a seguir:
Quando você dimensiona seu serviço de nuvem adicionando instâncias de função, essas novas instâncias automaticamente terão acesso à conta do Azure Cosmos DB, pois 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 da camada intermediária usando o Azure Cosmos DB. Para configurar sua conta do Azure Cosmos DB de modo que ela permita o acesso de máquinas virtuais, você deve configurar o endereço IP público da máquina virtual e/ou conjunto de dimensionamento de máquinas virtuais como um dos endereços IP permitidos para sua conta do Azure Cosmos DB ao configurar a política de controle de acesso IP.
Você pode recuperar endereços IP de máquinas virtuais no Portal do Azure, conforme mostra a captura de tela a seguir:
Quando você adiciona instâncias de máquina virtual ao grupo, elas recebem automaticamente acesso à sua conta do Azure Cosmos DB.
Solicitações da Internet
Quando você acessa sua conta do Azure Cosmos DB a partir 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 da sua conta.
Adicionar regras de saída ao firewall
Para acessar uma lista atual de intervalos de IP de saída para adicionar às suas configurações de firewall, confira Baixar intervalos de IP do Azure e marcas de serviço.
Para automatizar a lista, confira Usar a API de descoberta de marca de serviço.
Configurar um firewall IP usando um modelo do Resource Manager
Para configurar o controle de acesso a sua conta do Azure Cosmos DB, certifique-se de que o modelo do gerenciador de recursos especifique o atributo ipRangeFilter com uma lista de intervalos de IP permitidos. Se estiver configurando o Firewall de IP para uma conta do Azure Cosmos DB já implantada, verifique se a matriz locations
corresponde ao que está implantado atualmente. Não é possível modificar simultaneamente a matriz locations
e outras propriedades. Para obter mais informações e exemplos de modelos do ARM para o Azure Cosmos DB, confira o artigo Modelos do Azure Resource Manager para Azure Cosmos DB
Importante
A propriedade ipRules foi introduzida com a versão de API 2020-04-01. As versões anteriores expuseram uma propriedade ipRangeFilter, que é uma lista de endereços IP separados por vírgulas.
O exemplo mostra como a propriedade ipRules é exposta na versão de API 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"
}
]
}
}
Este é o mesmo exemplo para qualquer versão de API anterior a 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 o 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 o 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
Solucione 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 ativar 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 Microsoft Azure Cosmos DB usando SDKs de computadores que não estão na lista permitida, uma resposta genérica 403 Proibido é retornada sem detalhes extras. Verifique a lista de IPs permitidos para sua conta e verifique se a configuração de política correta está aplicada à sua conta do Azure Cosmos DB.
IPs de origem em solicitações bloqueadas
Ative o log de diagnóstico na 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. Confira Log de diagnósticos do Azure Cosmos DB.
Solicitações de uma sub-rede com um ponto de extremidade de serviço para o Azure Cosmos DB ativado
Solicitações de uma sub-rede em uma rede virtual que possui um ponto de extremidade de serviço para o Azure Cosmos DB habilitado envia a identidade da rede virtual e da sub-rede às contas do Azure Cosmos DB. Essas solicitações não têm o IP público da origem, portanto, os filtros IP as rejeitam. Para permitir 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 as regras de firewall serem aplicadas e o firewall pode exibir um comportamento inconsistente durante esse período.
Endereços IP privados na lista de endereços permitidos
A criação ou atualização de uma conta do Azure Cosmos DB falha quando a lista de endereços permitidos inclui endereços IP privados. Certifique-se de que nenhum endereço IP privado esteja especificado na lista.