Dela via


Konfigurera IP-brandvägg för Azure Cosmos DB

För att skydda data som lagras i ditt konto använder Azure Cosmos DB en hemlighetsbaserad auktoriseringsmodell med en stark hashbaserad kod för meddelandeautentisering (HMAC). Dessutom använder Azure Cosmos DB IP-baserade åtkomstkontroller för inkommande brandväggssäkerhet. Den här modellen liknar brandväggsreglerna i ett traditionellt databassystem och lägger till ytterligare ett säkerhetslager till ditt konto. Med brandväggar konfigurerar du ditt Azure Cosmos DB-konto så att det endast tillåter åtkomst från en godkänd uppsättning datorer eller molntjänster. Åtkomst till data som lagras i din Azure Cosmos DB-databas från dessa godkända datorer och tjänster kräver fortfarande att anroparen presenterar en giltig auktoriseringstoken.

IP-åtkomstkontroll

Som standard är ditt Azure Cosmos DB-konto tillgängligt från Internet om begäran innehåller en giltig auktoriseringstoken. För att konfigurera IP-principbaserad åtkomstkontroll måste användaren ange den uppsättning IP-adresser eller IP-adressintervall i CIDR-formulär (klasslös routning mellan domäner) som ska ingå som tillåten lista över klient-IP-adresser för åtkomst till ett visst Azure Cosmos DB-konto. När du har tillämpat den här konfigurationen får alla begäranden från datorer utanför den här listan ett svar på 403 (förbjudet). När du använder en IP-brandvägg kan vissa scenarier kräva att du aktiverar åtkomst från Azure-portalen. Mer information finns i Tillåt begäranden från Azure-portalen. När du använder datautforskaren för ett API för NoSQL-, Gremlin- eller Table-konto måste du också uppdatera brandväggsinställningarna för att lägga till din aktuella IP-adress i brandväggsreglerna. Det kan ta upp till 15 minuter att sprida brandväggsändringar och brandväggen kan bete sig inkonsekvent under den här perioden.

Kombinera IP-baserade brandväggar med undernät och åtkomstkontroll för virtuella nätverk. Genom att kombinera dem kan du begränsa åtkomsten till alla källor som har en offentlig IP-adress och/eller från ett specifikt undernät i det virtuella nätverket. Mer information om hur du använder undernät och virtuell nätverksbaserad åtkomstkontroll finns i Åtkomst till Azure Cosmos DB-resurser från virtuella nätverk.

En auktoriseringstoken krävs alltid för att få åtkomst till ett Azure Cosmos DB-konto. Om IP-brandväggen och åtkomstkontrollistan för virtuella nätverk inte har konfigurerats kan Azure Cosmos DB-kontot nås med auktoriseringstoken. När du har konfigurerat IP-brandväggsregler eller åtkomstlistor för virtuella nätverk för ditt Azure Cosmos DB-konto fungerar endast begäranden från de tillåtna källorna. Dessa begäranden måste också innehålla en giltig auktoriseringstoken för att få ett svar.

Du kan skydda data som lagras i ditt Azure Cosmos DB-konto med hjälp av IP-brandväggar. Azure Cosmos DB stöder IP-baserade åtkomstkontroller för inkommande brandväggsstöd. Ange en IP-brandvägg på Azure Cosmos DB-kontot med någon av följande metoder:

  • Från Azure-portalen
  • Deklarativt med hjälp av en Azure Resource Manager-mall
  • Programmatiskt via Azure CLI eller Azure PowerShell genom att uppdatera egenskapen ipRangeFilter

Konfigurera en IP-brandvägg med hjälp av Azure Portal

Om du vill ange principen för IP-åtkomstkontroll i Azure Portal går du till kontosidan för Azure Cosmos DB och väljer Nätverk på navigeringsmenyn. Ange värdet Tillåt åtkomst från till Valda nätverk och välj sedan Spara. Om du inte lägger till några IP-adresser ännu måste du också markera kryssrutan för att bekräfta att alla virtuella nätverk och IP-adresser är blockerade. Om du ändrar åtkomstinställningen för det offentliga nätverket, till exempel om du inaktiverar eller låter alla nätverk ansluta, tas alla brandväggs-IP-adresser som du anger innan bort.

Skärmbild av brandväggsinställningarna för Azure Cosmos DB-nätverk i Azure Portal.

När IP-åtkomstkontroll är på kan du på Azure-portalen ange IP-adresser, IP-adressintervall och växlar. Växlar ger åtkomst till andra Azure-tjänster och Azure Portal. Följande avsnitt innehåller information om dessa växlar.

Kommentar

När du aktiverar IP-åtkomstkontroll för ditt Azure Cosmos DB-konto kan endast begäranden från tillåtna IP-adresser nå ditt konto. Om en IP-adress inte finns med i listan över tillåtna, blockeras dess begäranden. Du kan inte heller bläddra bland dina Cosmos DB-resurser i Azure-portalen om du inte tillåter portalåtkomst.

Tillåt begäranden från Azure Portal

När du aktiverar en PRINCIP för IP-åtkomstkontroll programmatiskt kan du behöva lägga till IP-adresserna för Azure-portaltjänsterna i egenskapen ipRangeFilter för att fortsätta använda vissa portalfunktioner.

Portalscenarier som kräver aktivering av det här alternativet är:

  • Specifikt för API:et för MongoDB eller API för Apache Cassandra, åtkomst till konton med Data Explorer eller https://cosmos.azure.com
  • För alla API:er använder du följande Azure Cosmos DB-avsnitt i Azure-portalen:
    • Bläddra bland samlingar
    • Power BI
    • Azure Synapse

Du kan aktivera begäranden för att komma åt Azure Portal genom att välja alternativet Lägg till IP-adresser för Mellanprogram i Azure-portalen, enligt följande skärmbild:

Skärmbild av alternativen för att lägga till IP-adresser för mellanprogram i nätverk i Azure Portal.

Ip-adresserna för Mellanprogram i Azure-portalen läggs till i en separat lista, enligt följande skärmbild. Välj Spara för att lägga till dessa adresser i ditt databaskonto. Mer information om IP-adresserna för mellanprogram finns i den här artikeln.

Skärmbild av listan över IP-adresser för mellanprogram för nätverk i Azure Portal.

Ip-adresserna för Mellanprogram i Azure-portalen kan tas bort genom att välja alternativet Ta bort IP-adresser för Mellanprogram i Azure-portalen och sedan välja Spara.

IP-adresser för Mellanprogram i Azure-portalen

Ip-adresserna för Mellanprogram i Azure-portalen visas här. Vissa IP-adresser krävs endast för specifika API:er för databaskonton. När du lägger till IP-adresserna för mellanprogram i portalen, enligt beskrivningen tidigare, läggs endast de IP-adresser som krävs för ditt konto till.

Till exempel:

  • För ett API för NoSQL-konto läggs IP-adresserna från kategorin Alla till.
  • För ett API för MongoDB-konto läggs ENDAST IP-adresserna från kategorierna Alla och MongoDB till.
Azure offentlig
API för databaskonto IP-adresser
Alla 13.91.105.215, 4.210.172.107, , 13.88.56.14840.91.218.243
Endast MongoDB 20.245.81.54, 40.118.23.126, , 40.80.152.19913.95.130.121
Endast Apache Cassandra 40.113.96.14, 104.42.11.145, , 137.117.230.240168.61.72.237
Azure drivs av 21Vianet
API för databaskonto IP-adresser
Alla 163.228.137.6, 143.64.170.142
Endast MongoDB 52.131.240.99, 143.64.61.130
Endast Apache Cassandra 40.73.99.146, 143.64.62.47
Azure för USA:s regering
API för databaskonto IP-adresser
Alla 52.247.163.6, 52.244.134.181
Endast MongoDB 52.244.176.112, 52.247.148.42
Endast Apache Cassandra 52.244.50.101, 52.227.165.24

Äldre IP-adresser för mellanprogram

Cosmos DB-portaltjänsterna övergick nyligen till ny infrastruktur som krävde nya IP-adresser för Mellanprogram. När övergången har slutförts kan de äldre IP-adresser som används av den gamla infrastrukturen nu tas bort på ett säkert sätt. Om ditt konto har äldre IP-adresser för Mellanprogram som finns i brandväggsreglerna visas alternativet Ta bort äldre IP-adresser för Mellanprogram i Azure Portal . Välj det alternativet och sedan Spara för att ta bort de äldre IP-adresserna.

Skärmbild av alternativet att ta bort äldre ip-adresser för mellanprogram för nätverk i Azure Portal.

De äldre IP-adresserna är beroende av molnmiljön:

Azure Environment IP-adresser
Azure offentlig 104.42.195.92, 40.76.54.131, 52.176.6.30, , , 52.169.50.4552.187.184.26
Azure drivs av 21Vianet 139.217.8.252, 52.176.6.30, , 52.169.50.4552.187.184.26
Azure för USA:s regering 52.244.48.71, 52.176.6.30, , 52.169.50.4552.187.184.26

Kommentar

Om du har problem med att ansluta till ditt Azure Cosmos DB-konto från Datautforskaren läser du felsökningsguiden för Datautforskaren.

Tillåt förfrågningar från globala Azure-datacenter eller andra källor i Azure

Vissa Azure-tjänster, till exempel Azure Stream Analytics och Azure Functions, använder inte en fast IP-adress. Du kan fortfarande använda IP-brandväggen för att styra åtkomsten för dessa tjänster. Om du vill tillåta åtkomst från andra Azure-resurser väljer du alternativet Acceptera anslutningar inifrån Azure-datacenter . Med det här alternativet kan tjänster som körs i Azure ansluta till ditt Cosmos DB-konto.

Skärmbild av alternativet att acceptera anslutningar från offentliga Azure-datacenter i Azure Portal.

När du aktiverar det här alternativet läggs IP-adressen 0.0.0.0 till i listan över tillåtna IP-adresser. 0.0.0.0 IP-adressen begränsar begäranden till ditt Azure Cosmos DB-konto från IP-intervallet för Azure-datacenter. Den här inställningen tillåter inte åtkomst för andra IP-intervall till ditt Azure Cosmos DB-konto.

Kommentar

Inställningen publicNetworkAccess till Inaktiverad har företräde framför alternativet Acceptera anslutning inifrån Azure-datacenter . Se blockering av offentligt nätverk-åtkomst-under kontoskapande

Kommentar

Det här alternativet konfigurerar brandväggen för att tillåta alla begäranden från Azure, inklusive begäranden från prenumerationer för andra kunder som distribuerats i Azure. Listan över IP-adresser som tillåts med det här alternativet är bred, så den begränsar effektiviteten för en brandväggsprincip. Använd endast det här alternativet om dina begäranden inte kommer från statiska IP-adresser eller undernät i virtuella nätverk. Om du väljer det här alternativet tillåts automatiskt åtkomst från Azure Portal eftersom Azure Portal distribueras i Azure.

Begäranden från din aktuella IP-adress

För att förenkla utvecklingen hjälper Azure-portalen till att identifiera och lägga till IP-adressen för klientdatorn i listan över tillåtna. Appar som kör datorn kan sedan komma åt ditt Azure Cosmos DB-konto.

Portalen identifierar automatiskt klientens IP-adress. Det kan vara datorns klient-IP-adress eller IP-adressen för nätverksgatewayen. Se till att ta bort den här IP-adressen innan du tar dina arbetsbelastningar till produktion.

Om du vill lägga till din aktuella IP-adress i listan över IP-adresser väljer du Lägg till din aktuella IP-adress. Välj sedan Spara.

Skärmbild av alternativet att lägga till din aktuella IP-adress i nätverk i Azure Portal.

Begäranden från molntjänster

I Azure är molntjänster ett vanligt sätt att hantera tjänstlogik på mellannivå med hjälp av Azure Cosmos DB. Om du vill låta en molntjänst ansluta till ditt Azure Cosmos DB-konto lägger du till molntjänstens offentliga IP-adress i din tillåtna IP-lista. Du kan utföra den här åtgärden genom att uppdatera principen för IP-åtkomstkontroll i Azure-portalen. Det här steget säkerställer att alla rollinstanser av molntjänster har åtkomst till ditt Azure Cosmos DB-konto.

Du kan hämta IP-adresser för dina molntjänster i Azure Portal, enligt följande skärmbild:

Skärmbild som visar den offentliga IP-adressen för en molntjänst som visas i Azure-portalen. När du skalar ut molntjänsten genom att lägga till rollinstanser har de nya instanserna automatiskt åtkomst till Azure Cosmos DB-kontot eftersom de ingår i samma molntjänst.

Begäranden från virtuella datorer

Du kan också använda virtuella datorer eller VM-skalningsuppsättningar som värd för mellannivåtjänster med hjälp av Azure Cosmos DB. Om du vill låta en virtuell dator ansluta till ditt Azure Cosmos DB-konto lägger du till dess offentliga IP-adress i listan över tillåtna. Du kan utföra det här steget genom att uppdatera principen för IP-åtkomstkontroll. Den här konfigurationen fungerar också för VM-skalningsuppsättningar. När du har lagt till den offentliga IP-adressen kan den virtuella datorn komma åt ditt Cosmos DB-konto.

Du kan hämta IP-adresser för virtuella datorer i Azure Portal, enligt följande skärmbild:

Skärmbild som visar en offentlig IP-adress för en virtuell dator som visas i Azure-portalen.

När du lägger till virtuella datorinstanser i gruppen får de automatiskt åtkomst till ditt Azure Cosmos DB-konto.

Begäranden från Internet

Om du vill ansluta till ditt Azure Cosmos DB-konto från en dator på Internet lägger du till datorns IP-adress eller IP-intervall i listan över tillåtna. Endast datorer som du lägger till i den här listan kan nå ditt Cosmos DB-konto.

Lägg till regler för utgående trafik i brandväggen

En aktuell lista över utgående IP-intervall som ska läggas till i brandväggsinställningarna finns i Ladda ned Azure IP-intervall och tjänsttaggar.

Läs Använda API:et för identifiering av tjänsttaggar för mer information om hur du automatiserar listan.

Konfigurera en IP-brandvägg med hjälp av en Resource Manager-mall

Om du vill konfigurera åtkomstkontroll för ditt Azure Cosmos DB-konto kontrollerar du att Resource Manager-mallen anger egenskapen ipRules med en matris med tillåtna IP-intervall. Om du konfigurerar IP-brandväggen för ett redan distribuerat Azure Cosmos DB-konto kontrollerar du att matrisen locations matchar den aktuella distributionen. Du kan inte ändra matrisen locations och andra egenskaper samtidigt. Mer information och exempel på Azure Resource Manager-mallar för Azure Cosmos DB finns i Azure Resource Manager-mallar för Azure Cosmos DB.

Viktigt!

Egenskapen ipRules introduceras med API-versionen 2020-04-01. Tidigare versioner använder en ipRangeFilter-egenskap i stället, vilket är en lista över kommaavgränsade IP-adresser.

Exemplet visar hur egenskapen ipRules exponeras i API-version 2020-04-01 eller senare:

{
  "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"
      }
    ]
  }
}

Här är samma exempel för en tidigare API-version än 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"
  }
}

Konfigurera en IP-åtkomstkontrollprincip med hjälp av Azure CLI

Följande kommando visar hur du skapar ett Azure Cosmos DB-konto med IP-åtkomstkontroll:

# 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'

# Ensure 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

Konfigurera en IP-åtkomstkontrollprincip med PowerShell

Följande skript visar hur du skapar ett Azure Cosmos DB-konto med IP-åtkomstkontroll:

# 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

Felsöka problem med PRINCIPER för IP-åtkomstkontroll

Du kan felsöka problem med en PRINCIP för IP-åtkomstkontroll med hjälp av följande alternativ:

Azure Portal

Om du aktiverar en IP-åtkomstkontrollprincip för ditt Azure Cosmos DB-konto blockeras alla begäranden från datorer utanför den tillåtna listan över IP-adressintervall. Om du vill aktivera portaldataplansåtgärder som att bläddra i containrar och köra frågor mot dokument tillåter du uttryckligen åtkomst till Azure-portalen med hjälp av fönstret Brandvägg i portalen.

Programutvecklingspaket

När du kommer åt Azure Cosmos DB-resurser med hjälp av programutvecklingspaket (SDK:er) från datorer som inte finns i listan över tillåtna, returneras ett allmänt 403-förbjudet svar utan extra information. Kontrollera den tillåtna IP-listan för ditt konto och se till att rätt principkonfiguration tillämpas på ditt Azure Cosmos DB-konto.

Käll-IP-adresser i blockerade begäranden

Visa varje begäran och svar genom att aktivera diagnostikloggning på ditt Azure Cosmos DB-konto. De brandväggsrelaterade meddelandena loggas med en 403-returkod. Genom att filtrera dessa meddelanden kan du se käll-IP-adresser för blockerade begäranden. Se Diagnostikloggning för Azure Cosmos DB.

Begäranden från ett undernät med en tjänstslutpunkt för Azure Cosmos DB aktiverat

Begäranden från ett undernät i ett virtuellt nätverk med en tjänstslutpunkt för Azure Cosmos DB aktiverat skickar det virtuella nätverket och undernätsidentiteten till Azure Cosmos DB-konton. Dessa begäranden har inte källans offentliga IP-adress, så IP-filter avvisar dem. Om du vill tillåta åtkomst från specifika undernät i virtuella nätverk lägger du till en åtkomstkontrolllista enligt beskrivningen i Konfigurera virtuellt nätverk och undernätsbaserad åtkomst för ditt Azure Cosmos DB-konto. Det kan ta upp till 15 minuter innan brandväggsregler tillämpas och brandväggen kan uppvisa ett inkonsekvent beteende under den här perioden.

Privata IP-adresser i listan över tillåtna adresser

Det går inte att skapa eller uppdatera ett Azure Cosmos DB-konto med en lista över tillåtna adresser som innehåller privata IP-adresser. Kontrollera att ingen privat IP-adress har angetts i listan.