Dela via


Konfigurera en IP-brandvägg i Azure Cosmos DB

GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord

För att skydda data som lagras i ditt konto har Azure Cosmos DB stöd för en hemlig auktoriseringsmodell som använder en stark Hash-baserad kod för meddelandeautentisering (HMAC). Dessutom stöder Azure Cosmos DB IP-baserade åtkomstkontroller för inkommande brandväggsstöd. Den här modellen liknar brandväggsreglerna i ett traditionellt databassystem och ger ett annat säkerhetsnivå för ditt konto. Med brandväggar kan du konfigurera ditt Azure Cosmos DB-konto så att det endast är tillgängligt från en godkänd uppsättning datorer och/eller molntjänster. Åtkomst till data som lagras i din Azure Cosmos DB-databas från dessa godkända uppsättningar av 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, så länge begäran åtföljs av 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 den här konfigurationen har tillämpats får alla begäranden som kommer från datorer utanför den här listan 403 (förbjudet) svar. När du använder IP-brandväggen rekommenderar vi att Azure Portal får åtkomst till ditt konto. Åtkomst krävs för att tillåta användning av datautforskaren och för att hämta mått för ditt konto som visas på Azure Portal. När du använder datautforskaren, förutom att tillåta Azure Portal att komma åt ditt 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 uppvisa ett inkonsekvent beteende under den här perioden.

Du kan kombinera IP-baserad brandvägg 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.

Sammanfattnings gärna att auktoriseringstoken alltid krävs 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 IP-brandväggen eller virtuella nätverks-ACL:er eller båda har konfigurerats på Azure Cosmos DB-kontot får endast begäranden från de källor som du har angett (och med auktoriseringstoken) giltiga 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. Du kan ange en IP-brandvägg på Azure Cosmos DB-kontot på något av följande sätt:

  • 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 Brandvägg och virtuella nätverk på navigeringsmenyn. Ändra värdet Tillåt åtkomst från till Valda nätverk och välj sedan Spara. Om du ändrar nätverksinställningarna för offentlig åtkomst, antingen genom att inaktivera det eller tillåta det för alla nätverk, förlorar du den brandväggs-IP som du kanske har konfigurerat tidigare.

Skärmbild som visar hur du öppnar brandväggssidan i Azure Portal

När IP-åtkomstkontroll är aktiverad ger Azure Portal möjlighet att 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 har aktiverat en PRINCIP för IP-åtkomstkontroll för ditt Azure Cosmos DB-konto avvisas alla begäranden till ditt Azure Cosmos DB-konto från datorer utanför den tillåtna listan över IP-adressintervall. Att bläddra bland Azure Cosmos DB-resurser från portalen blockeras också för att säkerställa åtkomstkontrollens integritet.

Tillåt begäranden från Azure Portal

När du aktiverar en IP-åtkomstkontrollprincip programmatiskt måste du lägga till IP-adressen för Azure Portal till egenskapen ipRangeFilter för att upprätthålla åtkomsten.

Portalscenarier som kräver att det här alternativet aktiveras är:

  • Åtkomst till API för MongoDB eller API för Apache Cassandra-konton med Data Explorer eller <cosmos.azure.com>
  • Använd följande Azure Cosmos DB-blad i Azure Portal:
    • Replikera data globalt
    • Bläddra bland samlingar
    • Power BI
    • Azure Synapse

Portalens IP-adresser är:

Region IP-adress
Kina 139.217.8.252
US Gov 52.244.48.71
Alla andra regioner 104.42.195.92

Du kan aktivera begäranden för att komma åt Azure Portal genom att välja alternativet Tillåt åtkomst från Azure Portal, enligt följande skärmbild:

Skärmbild som visar hur du aktiverar Azure Portal åtkomst

Nya Azure Portal IP-adresser

Cosmos DB-portaltjänster övergår till ny infrastruktur 2024. Som en del av den här övergången kräver konton med brandvägg aktiverat nya IP-adresser för att kunna fortsätta åtkomsten till vissa portalfunktioner, till exempel Datautforskaren. Den här flytten introducerar även dedikerade IP-adresser för Mongo DB- och Apache Cassandra API-konton.

Under den här övergången lägger alternativet Tillåt åtkomst från Azure Portal till både aktuella och nya IP-adresser till kontots brandväggsinställningar (inklusive MongoDB- och Cassandra-specifika adresser för dessa konton) När övergången är klar görs ett portalalternativ tillgängligt för att ta bort de gamla IP-adresserna.

Azure Public
API för databaskonto IP-adresser
Alla 13.91.105.215, 4.210.172.107, 13.88.56.148, 40.91.218.243
Endast MongoDB 20.245.81.54, 40.118.23.126, 40.80.152.199, 13.95.130.121
Endast Apache Cassandra 40.113.96.14, 104.42.11.145, 137.117.230.240, 168.61.72.237
Azure Kina
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 US Government
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

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

Om du kommer åt ditt Azure Cosmos DB-konto från tjänster som inte tillhandahåller en statisk IP-adress (till exempel Azure Stream Analytics och Azure Functions) kan du fortfarande använda IP-brandväggen för att begränsa åtkomsten. Du kan aktivera åtkomst från andra källor i Azure genom att välja alternativet Acceptera anslutningar inifrån Azure-datacenter , enligt följande skärmbild:

Skärmbild som visar hur du accepterar anslutningar från Azure-datacenter

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 det hä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 Portal dig 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 min aktuella IP-adress. Välj sedan Spara.

Skärmbild som visar hur du konfigurerar brandväggsinställningar för den aktuella IP-adressen

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 aktivera åtkomst till ditt Azure Cosmos DB-konto från en molntjänst måste du lägga till molntjänstens offentliga IP-adress i listan över tillåtna IP-adresser som är associerade med ditt Azure Cosmos DB-konto genom att konfigurera principen för IP-åtkomstkontroll. Detta 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 Portal

När du skalar ut molntjänsten genom att lägga till rollinstanser får 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 konfigurera ditt Azure Cosmos DB-konto så att det tillåter åtkomst från virtuella datorer måste du konfigurera den offentliga IP-adressen för den virtuella datorn och/eller vm-skalningsuppsättningen som en av de tillåtna IP-adresserna för ditt Azure Cosmos DB-konto genom att konfigurera principen för IP-åtkomstkontroll.

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 Portal

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

När du kommer åt ditt Azure Cosmos DB-konto från en dator på Internet måste klientens IP-adress eller IP-adressintervall för datorn läggas till i listan över tillåtna IP-adresser för ditt konto.

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

Om du vill få en aktuell lista över utgående IP-intervall att lägga till i dina brandväggsinställningar kan du läsa 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 till 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 till ett redan distribuerat Azure Cosmos DB-konto kontrollerar du att matrisen locations matchar det som för närvarande distribueras. 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 har introducerats med API-version 2020-04-01. Tidigare versioner exponerade en ipRangeFilter-egenskap i stället, vilket är en lista med 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 alla API-versioner före 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 PRINCIP för IP-åtkomstkontroll 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'

# 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

Konfigurera en PRINCIP för IP-åtkomstkontroll med hjälp av 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 en PRINCIP 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

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

SDK:er

När du får åtkomst till Azure Cosmos DB-resurser med hjälp av 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 kontrollera att rätt principkonfiguration tillämpas på ditt Azure Cosmos DB-konto.

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

Aktivera diagnostikloggning på ditt Azure Cosmos DB-konto. Dessa loggar visar varje begäran och svar. 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 som har en tjänstslutpunkt för Azure Cosmos DB aktiverad 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.