Konfigurera en IP-brandvägg i Azure Cosmos DB

GÄLLER FÖR: Nosql Mongodb Cassandra Gremlin Tabell

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 ytterligare en 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 du tillåter att Azure-portalen får åtkomst till ditt konto. Åtkomst krävs för att tillåta användning av datautforskaren samt för att hämta mått för ditt konto som visas på Azure-portalen. När du använder datautforskaren, förutom att tillåta att Azure-portalen får åtkomst till ditt konto, måste du även uppdatera brandväggsinställningarna för att lägga till din aktuella IP-adress i brandväggsreglerna. Observera att brandväggsändringar kan ta upp till 15 minuter att sprida och att brandväggen kan uppvisa ett inkonsekvent beteende under den här perioden.

Du kan kombinera IP-baserad brandvägg med undernät och VNET-åtkomstkontroll. 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 VNET-baserad å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 VNET-åtkomstkontrollistan (ACL) inte har konfigurerats kan Azure Cosmos DB-kontot nås med auktoriseringstoken. När IP-brandväggen eller VNET-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-portalen

Om du vill ange principen för IP-åtkomstkontroll i Azure-portalen 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-portalen

När IP-åtkomstkontroll är aktiverad ger Azure-portalen möjlighet att ange IP-adresser, IP-adressintervall och växlar. Växlar ger åtkomst till andra Azure-tjänster och Azure-portalen. 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-portalen

När du aktiverar en PRINCIP för IP-åtkomstkontroll programmässigt måste du lägga till IP-adressen för Azure-portalen till egenskapen ipRangeFilter för att upprätthålla åtkomsten. 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,40.76.54.131,52.176.6.30,52.169.50.45,52.187.184.26

Du kan aktivera begäranden om åtkomst till Azure-portalen genom att välja alternativet Tillåt åtkomst från Azure-portalen , enligt följande skärmbild:

Skärmbild som visar hur du aktiverar åtkomst till Azure-portalen

Nya IP-adresser för Azure-portalen

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-portalen 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 några andra IP-intervall till ditt Azure Cosmos DB-konto.

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 åtkomst automatiskt från Azure-portalen eftersom Azure-portalen har distribuerats i Azure.

Begäranden från din aktuella IP-adress

För att förenkla utvecklingen hjälper Azure-portalen 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-portalen 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 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-portalen, 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

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 komma åt en aktuell lista över utgående IP-intervall som ska läggas till i brandväggsinställningarna kan du läsa Ladda ned Azure IP-intervall och tjänsttaggar.

Information om hur du automatiserar listan finns i Använda API:et för identifiering av tjänsttagg.

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

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

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 Åtkomst till Azure-portalen 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 ytterligare 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.

Nästa steg

Information om hur du konfigurerar en tjänstslutpunkt för ett virtuellt nätverk för ditt Azure Cosmos DB-konto finns i följande artiklar: