IP-firewall in Azure Cosmos DB configureren

VAN TOEPASSING OP: Nosql MongoDB Cassandra Gremlin Tabel

Om de gegevens die zijn opgeslagen in uw account te beveiligen, ondersteunt Azure Cosmos DB een op geheim gebaseerd autorisatiemodel dat gebruikmaakt van een sterk HMAC (Hash-based Message Authentication Code). Daarnaast biedt Azure Cosmos DB ondersteuning voor op IP gebaseerde toegangsbeheer voor binnenkomende firewallondersteuning. Dit model is vergelijkbaar met de firewallregels van een traditioneel databasesysteem en biedt een extra beveiligingsniveau voor uw account. Met firewalls kunt u uw Azure Cosmos DB-account zo configureren dat dit alleen toegankelijk is vanaf een goedgekeurde set machines en/of cloudservices. Voor toegang tot gegevens die zijn opgeslagen in uw Azure Cosmos DB-database vanaf deze goedgekeurde sets machines en services, moet de aanroeper nog steeds een geldig autorisatietoken presenteren.

IP-toegangsbeheer

Uw Azure Cosmos DB-account is standaard toegankelijk vanaf internet, zolang de aanvraag vergezeld gaat van een geldig autorisatietoken. Als u op IP-beleid gebaseerd toegangsbeheer wilt configureren, moet de gebruiker de set IP-adressen of IP-adresbereiken opgeven in CIDR-formulier (Classless Inter-Domain Routing) die moet worden opgenomen als de toegestane lijst met client-IP-adressen voor toegang tot een bepaald Azure Cosmos DB-account. Zodra deze configuratie is toegepast, ontvangen alle aanvragen die afkomstig zijn van computers buiten deze lijst 403 (verboden). Wanneer u IP-firewall gebruikt, is het raadzaam om Azure Portal toegang te geven tot uw account. Toegang is vereist om het gebruik van Data Explorer toe te staan en om metrische gegevens op te halen voor uw account dat wordt weergegeven in Azure Portal. Wanneer u Data Explorer gebruikt, moet u niet alleen Azure Portal toegang geven tot uw account, maar ook uw firewallinstellingen bijwerken om uw huidige IP-adres toe te voegen aan de firewallregels. Houd er rekening mee dat het maximaal 15 minuten kan duren voordat firewallwijzigingen zijn doorgevoerd en dat de firewall gedurende deze periode inconsistent gedrag vertoont.

U kunt een firewall op basis van IP combineren met subnet- en VNET-toegangsbeheer. Door deze te combineren, kunt u de toegang beperken tot elke bron met een openbaar IP-adres en/of van een specifiek subnet in VNET. Zie Toegang tot Azure Cosmos DB-resources van virtuele netwerken voor meer informatie over het gebruik van subnet- en VNET-toegangsbeheer.

Samenvattend is autorisatietoken altijd vereist voor toegang tot een Azure Cosmos DB-account. Als IP-firewall en VNET-toegangsbeheerlijst (ACL's) niet zijn ingesteld, kan het Azure Cosmos DB-account worden geopend met het autorisatietoken. Nadat de IP-firewall of VNET-ACL's of beide zijn ingesteld op het Azure Cosmos DB-account, krijgen alleen aanvragen die afkomstig zijn van de bronnen die u hebt opgegeven (en met het autorisatietoken) geldige antwoorden krijgen.

U kunt de gegevens die zijn opgeslagen in uw Azure Cosmos DB-account beveiligen met behulp van IP-firewalls. Azure Cosmos DB ondersteunt op IP gebaseerde toegangsbeheer voor binnenkomende firewallondersteuning. U kunt een IP-firewall instellen voor het Azure Cosmos DB-account op een van de volgende manieren:

  • Vanuit Azure Portal
  • Declaratief met behulp van een Azure Resource Manager-sjabloon
  • Programmatisch via de Azure CLI of Azure PowerShell door de eigenschap ipRangeFilter bij te werken

Een IP-firewall configureren met behulp van Azure Portal

Als u het BELEID voor IP-toegangsbeheer in Azure Portal wilt instellen, gaat u naar de azure Cosmos DB-accountpagina en selecteert u Firewall en virtuele netwerken in het navigatiemenu. Wijzig de optie Toegang toestaan van waarde tot geselecteerde netwerken en selecteer Opslaan. Als u de instellingen voor het openbare toegangsnetwerk wijzigt door deze uit te schakelen of toe te staan voor alle netwerken, verliest u het ip-adres van de firewall dat u mogelijk eerder hebt ingesteld.

Schermopname die laat zien hoe u de firewallpagina opent in Azure Portal

Wanneer IP-toegangsbeheer is ingeschakeld, biedt Azure Portal de mogelijkheid om IP-adressen, IP-adresbereiken en switches op te geven. Schakelopties maken toegang tot andere Azure-services en Azure Portal mogelijk. In de volgende secties vindt u meer informatie over deze switches.

Notitie

Nadat u een IP-toegangsbeheerbeleid voor uw Azure Cosmos DB-account hebt ingeschakeld, worden alle aanvragen voor uw Azure Cosmos DB-account van computers buiten de toegestane lijst met IP-adresbereiken geweigerd. Bladeren door de Azure Cosmos DB-resources vanuit de portal wordt ook geblokkeerd om de integriteit van toegangsbeheer te garanderen.

Aanvragen vanuit Azure Portal toestaan

Wanneer u via een programma een IP-toegangsbeheerbeleid inschakelt, moet u het IP-adres voor de Azure-portal toevoegen aan de eigenschap ipRangeFilter om de toegang te behouden. De IP-adressen van de portal zijn:

Regio IP-adres
China 139.217.8.252
US Gov 52.244.48.71
Alle andere regio's 104.42.195.92,40.76.54.131,52.176.6.30,52.169.50.45,52.187.184.26

U kunt aanvragen inschakelen voor toegang tot De Azure-portal door de optie Toegang toestaan vanuit De Azure-portal te selecteren, zoals wordt weergegeven in de volgende schermopname:

Schermopname van het inschakelen van toegang tot Azure Portal

Nieuwe IP-adressen van Azure Portal

De cosmos DB-portalservices worden in 2024 overgestapt op een nieuwe infrastructuur. Als onderdeel van deze overgang moeten voor accounts waarvoor firewall is ingeschakeld, nieuwe IP-adressen toegang krijgen tot bepaalde portalfunctionaliteit, zoals Data Explorer. Deze verplaatsing introduceert ook toegewezen IP-adressen voor Mongo DB- en Apache Cassandra-API-accounts.

Tijdens deze overgang voegt de optie Toegang vanuit Azure Portal zowel huidige als nieuwe IP-adressen toe aan accountfirewallinstellingen (inclusief MongoDB- en Cassandra-specifieke adressen voor die accounts) Wanneer de overgang is voltooid, wordt er een portaloptie beschikbaar gesteld om de oude IP-adressen te verwijderen.

Azure openbaar
Databaseaccount-API IP-adressen
Alle 13.91.105.215, 4.210.172.107, 13.88.56.148, 40.91.218.243
Alleen MongoDB 20.245.81.54, 40.118.23.126, 40.80.152.199, 13.95.130.121
Alleen Apache Cassandra 40.113.96.14, 104.42.11.145, 137.117.230.240, 168.61.72.237
Azure China
Databaseaccount-API IP-adressen
Alle 163.228.137.6, 143.64.170.142
Alleen MongoDB 52.131.240.99, 143.64.61.130
Alleen Apache Cassandra 40.73.99.146, 143.64.62.47
Azure US Government
Databaseaccount-API IP-adressen
Alle 52.247.163.6, 52.244.134.181
Alleen MongoDB 52.244.176.112, 52.247.148.42
Alleen Apache Cassandra 52.244.50.101, 52.227.165.24

Notitie

Als u problemen ondervindt bij het maken van verbinding met uw Azure Cosmos DB-account vanuit Data Explorer, raadpleegt u de handleiding voor het oplossen van problemen met Data Explorer.

Aanvragen van globale Azure-datacenters of andere bronnen in Azure toestaan

Als u toegang krijgt tot uw Azure Cosmos DB-account vanuit services die geen statisch IP-adres bieden (bijvoorbeeld Azure Stream Analytics en Azure Functions), kunt u de IP-firewall nog steeds gebruiken om de toegang te beperken. U kunt toegang vanuit andere bronnen in Azure inschakelen door de optie Verbindingen accepteren vanuit Azure-datacenters te selecteren, zoals wordt weergegeven in de volgende schermopname:

Schermopname van het accepteren van verbindingen vanuit Azure-datacenters

Wanneer u deze optie inschakelt, wordt het IP-adres 0.0.0.0 toegevoegd aan de lijst met toegestane IP-adressen. Het 0.0.0.0 IP-adres beperkt aanvragen tot uw Azure Cosmos DB-account vanuit het IP-bereik van het Azure-datacenter. Met deze instelling wordt geen toegang van andere IP-adresbereiken tot uw Azure Cosmos DB-account toegestaan.

Notitie

Met deze optie configureert u de firewall om alle aanvragen van Azure toe te staan, inclusief aanvragen van de abonnementen van andere klanten die zijn geïmplementeerd in Azure. De lijst met IP-adressen die door deze optie zijn toegestaan, is breed, zodat de effectiviteit van een firewallbeleid wordt beperkt. Gebruik deze optie alleen als uw aanvragen niet afkomstig zijn van statische IP-adressen of subnetten in virtuele netwerken. Als u deze optie kiest, wordt automatisch toegang vanuit Azure Portal toegestaan omdat Azure Portal is geïmplementeerd in Azure.

Aanvragen van uw huidige IP-adres

Om de ontwikkeling te vereenvoudigen, helpt Azure Portal u bij het identificeren en toevoegen van het IP-adres van uw clientcomputer aan de lijst met toegestane adressen. Apps waarop uw computer wordt uitgevoerd, hebben vervolgens toegang tot uw Azure Cosmos DB-account.

In de portal wordt automatisch het IP-adres van de client gedetecteerd. Dit kan het client-IP-adres van uw computer of het IP-adres van uw netwerkgateway zijn. Zorg ervoor dat u dit IP-adres verwijdert voordat u uw workloads naar productie gaat.

Als u uw huidige IP-adres wilt toevoegen aan de lijst met IP-adressen, selecteert u Mijn huidige IP toevoegen. Selecteer vervolgens Opslaan.

Schermopname van het configureren van firewallinstellingen voor het huidige IP-adres

Aanvragen van cloudservices

In Azure zijn cloudservices een veelgebruikte manier voor het hosten van servicelogica in de middelste laag met behulp van Azure Cosmos DB. Als u toegang tot uw Azure Cosmos DB-account wilt inschakelen vanuit een cloudservice, moet u het openbare IP-adres van de cloudservice toevoegen aan de lijst met toegestane IP-adressen die zijn gekoppeld aan uw Azure Cosmos DB-account door het IP-toegangsbeheerbeleid te configureren. Dit zorgt ervoor dat alle rolinstanties van cloudservices toegang hebben tot uw Azure Cosmos DB-account.

U kunt IP-adressen voor uw cloudservices ophalen in Azure Portal, zoals wordt weergegeven in de volgende schermopname:

Schermopname van het openbare IP-adres voor een cloudservice die wordt weergegeven in Azure Portal

Wanneer u uw cloudservice uitschaalt door rolinstanties toe te voegen, hebben deze nieuwe exemplaren automatisch toegang tot het Azure Cosmos DB-account omdat ze deel uitmaken van dezelfde cloudservice.

Aanvragen van virtuele machines

U kunt ook virtuele machines of virtuele-machineschaalsets gebruiken om services in de middelste laag te hosten met behulp van Azure Cosmos DB. Als u uw Azure Cosmos DB-account zodanig wilt configureren dat dit toegang toestaat vanaf virtuele machines, moet u het openbare IP-adres van de virtuele machine en/of virtuele-machineschaalset configureren als een van de toegestane IP-adressen voor uw Azure Cosmos DB-account door het BELEID voor IP-toegangsbeheer te configureren.

U kunt IP-adressen voor virtuele machines ophalen in Azure Portal, zoals wordt weergegeven in de volgende schermopname:

Schermopname van een openbaar IP-adres voor een virtuele machine die wordt weergegeven in Azure Portal

Wanneer u exemplaren van virtuele machines toevoegt aan de groep, ontvangen ze automatisch toegang tot uw Azure Cosmos DB-account.

Aanvragen van internet

Wanneer u toegang hebt tot uw Azure Cosmos DB-account vanaf een computer op internet, moet het IP-adres van de client of het IP-adresbereik van de computer worden toegevoegd aan de lijst met toegestane IP-adressen voor uw account.

Uitgaande regels toevoegen aan de firewall

Zie Azure IP-bereiken en servicetags downloaden voor toegang tot een huidige lijst met uitgaande IP-bereiken die u wilt toevoegen aan uw firewallinstellingen.

Zie De Service Tag Discovery-API gebruiken om de lijst te automatiseren.

Een IP-firewall configureren met behulp van een Resource Manager-sjabloon

Als u toegangsbeheer wilt configureren voor uw Azure Cosmos DB-account, moet u ervoor zorgen dat de Resource Manager-sjabloon de eigenschap ipRules opgeeft met een matrix met toegestane IP-bereiken. Als u IP Firewall configureert voor een al geïmplementeerd Azure Cosmos DB-account, moet u ervoor zorgen dat de locations matrix overeenkomt met wat momenteel is geïmplementeerd. U kunt de locations matrix en andere eigenschappen niet tegelijk wijzigen. Zie Azure Resource Manager-sjablonen voor Azure Cosmos DB voor meer informatie en voorbeelden van Azure Resource Manager-sjablonen voor Azure Cosmos DB

Belangrijk

De eigenschap ipRules is geïntroduceerd met API-versie 2020-04-01. In eerdere versies is in plaats daarvan een ipRangeFilter-eigenschap weergegeven. Dit is een lijst met door komma's gescheiden IP-adressen.

In het onderstaande voorbeeld ziet u hoe de eigenschap ipRules wordt weergegeven in API-versie 2020-04-01 of hoger:

{
  "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": "40.76.54.131"
      },
      {
        "ipAddressOrRange": "52.176.6.30"
      },
      {
        "ipAddressOrRange": "52.169.50.45"
      },
      {
        "ipAddressOrRange": "52.187.184.26"
      }
    ]
  }
}

Dit is hetzelfde voorbeeld voor elke API-versie vóór 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":"40.76.54.131,52.176.6.30,52.169.50.45,52.187.184.26"
  }
}

Beleid voor IP-toegangsbeheer configureren met behulp van de Azure CLI

De volgende opdracht laat zien hoe u een Azure Cosmos DB-account maakt met IP-toegangsbeheer:

# 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

Beleid voor IP-toegangsbeheer configureren met behulp van PowerShell

In het volgende script ziet u hoe u een Azure Cosmos DB-account maakt met IP-toegangsbeheer:

# 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

Problemen met ip-toegangsbeheerbeleid oplossen

U kunt problemen met een IP-toegangsbeheerbeleid oplossen met behulp van de volgende opties:

Azure Portal

Door een IP-toegangsbeheerbeleid in te schakelen voor uw Azure Cosmos DB-account, blokkeert u alle aanvragen voor uw account van computers buiten de toegestane lijst met IP-adresbereiken. Als u portalgegevensvlakbewerkingen wilt inschakelen, zoals het bladeren door containers en het uitvoeren van query's op documenten, moet u azure Portal expliciet toegang verlenen met behulp van het deelvenster Firewall in de portal.

SDK's

Wanneer u toegang krijgt tot Azure Cosmos DB-resources met behulp van SDK's van computers die niet in de lijst met toegestane machines staan, wordt een algemeen antwoord 403 Verboden geretourneerd zonder aanvullende informatie. Controleer de toegestane IP-lijst voor uw account en zorg ervoor dat de juiste beleidsconfiguratie wordt toegepast op uw Azure Cosmos DB-account.

Bron-IP's in geblokkeerde aanvragen

Schakel diagnostische logboekregistratie in voor uw Azure Cosmos DB-account. In deze logboeken worden elke aanvraag en elk antwoord weergegeven. De firewallberichten worden vastgelegd met een retourcode van 403. Door deze berichten te filteren, ziet u de bron-IP-adressen voor de geblokkeerde aanvragen. Zie diagnostische logboekregistratie van Azure Cosmos DB.

Aanvragen van een subnet waarvoor een service-eindpunt is ingeschakeld voor Azure Cosmos DB

Aanvragen van een subnet in een virtueel netwerk met een service-eindpunt voor Azure Cosmos DB verzenden het virtuele netwerk en de subnetidentiteit naar Azure Cosmos DB-accounts. Deze aanvragen hebben niet het openbare IP-adres van de bron, dus IP-filters weigeren ze. Als u toegang wilt toestaan vanuit specifieke subnetten in virtuele netwerken, voegt u een toegangsbeheerlijst toe, zoals wordt beschreven in Het configureren van virtuele netwerken en subnettoegang voor uw Azure Cosmos DB-account. Het kan tot 15 minuten duren voordat firewallregels zijn toegepast en de firewall kan gedurende deze periode inconsistent gedrag vertonen.

Privé-IP-adressen in lijst met toegestane adressen

Het maken of bijwerken van een Azure Cosmos DB-account met een lijst met toegestane adressen met privé-IP-adressen mislukt. Zorg ervoor dat er geen privé-IP-adres is opgegeven in de lijst.

Volgende stappen

Zie de volgende artikelen voor het configureren van een service-eindpunt voor een virtueel netwerk voor uw Azure Cosmos DB-account: