Delen via


IP-firewall in Azure Cosmos DB configureren

VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin Tafel

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 ander 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 EEN 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. Het kan tot 15 minuten duren voordat firewallwijzigingen zijn doorgevoerd en de firewall kan gedurende deze periode inconsistent gedrag vertonen.

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

Samenvattend is autorisatietoken altijd vereist voor toegang tot een Azure Cosmos DB-account. Als IP-firewall en toegangsbeheerlijst voor virtuele netwerken (ACL's) niet zijn ingesteld, kan het Azure Cosmos DB-account worden geopend met het autorisatietoken. Nadat de IP-firewall of virtuele netwerk-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 IP-toegangsbeheerbeleid wilt instellen in Azure Portal, gaat u naar de azure Cosmos DB-accountpagina en selecteert u Netwerken in het navigatiemenu. Wijzig de optie Toegang toestaan van waarde tot geselecteerde netwerken en selecteer Opslaan. Als u nog geen IP-adressen toevoegt, moet u ook het selectievakje inschakelen om te bevestigen dat alle VNets en IP-adressen worden geblokkeerd. Als u de netwerkinstellingen voor openbare toegang wijzigt door deze uit te schakelen of toe te staan voor alle netwerken, verliest u het IP-adres van de firewall dat u eerder hebt ingesteld.

Schermopname van de firewallinstellingen voor Azure Cosmos DB-netwerken 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 beleid voor IP-toegangsbeheer programmatisch inschakelt, moet u mogelijk de IP-adressen voor de Azure Portal-services toevoegen aan de eigenschap ipRangeFilter om bepaalde portalfunctionaliteit te kunnen blijven gebruiken.

Portalscenario's waarvoor deze optie moet worden ingeschakeld, zijn onder andere:

  • Specifiek voor de API voor mongoDB of API voor Apache Cassandra, toegang tot accounts met Data Explorer of <cosmos.azure.com>
  • Voor alle API's gebruikt u de volgende Azure Cosmos DB-blades in Azure Portal:
    • Door verzamelingen bladeren
    • Power BI
    • Azure Synapse

U kunt aanvragen inschakelen voor toegang tot Azure Portal door de optie Middleware-IP-adressen van Azure Portal toevoegen te selecteren, zoals wordt weergegeven in de volgende schermopname:

Schermopname van de opties voor het toevoegen van middleware-IP-adressen aan netwerken in Azure Portal.

De IP-adressen van Azure Portal Middleware worden toegevoegd aan een afzonderlijke lijst, zoals wordt weergegeven in de volgende schermopname. Klik op Opslaan om deze adressen toe te voegen aan uw databaseaccount. Meer informatie over de Middleware-IP-adressen vindt u verder hieronder in dit artikel.

Schermopname van de lijst met middleware-IP-adressen voor netwerken in Azure Portal.

De IP-adressen van azure Portal Middleware kunnen worden verwijderd door te klikken op de optie Middleware-IP-adressen van Azure Portal verwijderen en vervolgens Opslaan te selecteren.

Middleware-IP-adressen van Azure Portal

Hieronder vindt u de Middleware-IP-adressen van De Azure-portal. Sommige IP-adressen zijn alleen vereist voor specifieke DATABASEaccount-API's. Wanneer u de Middleware-IP-adressen toevoegt in de portal, zoals hierboven beschreven, worden alleen de IP-adressen toegevoegd die vereist zijn voor uw account.

Voorbeeld:

  • Voor een API voor NoSQL-account worden de IP-adressen uit de categorie Alle toegevoegd.

  • Voor een API voor een MongoDB-account worden de IP-adressen uit de alleen categorieën All en MongoDB toegevoegd.

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

Verouderde Middleware-IP-adressen

De Cosmos DB-portalservices zijn onlangs overgestapt op een nieuwe infrastructuur waarvoor nieuwe Middleware-IP-adressen zijn vereist. Wanneer deze overgang is voltooid, kunnen de verouderde IP-adressen die door de oude infrastructuur worden gebruikt, nu veilig worden verwijderd. Als uw account verouderde Middleware-IP-adressen bevat in de firewallregels, wordt de optie Legacy Middleware-IP-adressen verwijderen in Azure Portal weergegeven. Selecteer deze optie en sla op om de verouderde IP-adressen te verwijderen.

Schermopname van de optie voor het verwijderen van verouderde middleware-IP's voor netwerken in Azure Portal.

De verouderde IP-adressen zijn afhankelijk van de cloudomgeving:

Azure-omgeving IP-adressen
Azure openbaar 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

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 de optie voor het accepteren van verbindingen vanuit openbare Azure-datacenters in Azure Portal.

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 is geen toegang toegestaan voor andere IP-bereiken naar uw Azure Cosmos DB-account.

Notitie

Het instellen van publicNetworkAccess op Disabled heeft voorrang op deze verbinding accepteren vanuit Azure-datacenters . Zie blokkerende openbare netwerktoegang tijdens het maken van het account

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 Uw huidige IP-adres toevoegen. Selecteer vervolgens Opslaan.

Schermopname van de optie om uw huidige IP-adres toe te voegen aan netwerken in Azure Portal.

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 actuele lijst met uitgaande IP-bereiken die u wilt toevoegen aan uw firewall-instellingen.

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 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": "13.91.105.215"
      },
      {
        "ipAddressOrRange": "4.210.172.107"
      },
      {
        "ipAddressOrRange": "13.88.56.148"
      },
      {
        "ipAddressOrRange": "40.91.218.243"
      }
    ]
  }
}

Hier volgt 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":"13.91.105.215,4.210.172.107,13.88.56.148,40.91.218.243"
  }
}

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 voorkomen, wordt een algemeen 403 Verboden antwoord geretourneerd zonder extra details. 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.