Konfigurace brány firewall protokolu IP ve službě Azure Cosmos DB

PLATÍ PRO: NoSQL MongoDB Cassandra Gremlin Tabulka

K zabezpečení dat uložených ve vašem účtu azure Cosmos DB podporuje autorizační model založený na tajných kódech, který využívá silný kód HMAC (Hash-based Message Authentication Code). Azure Cosmos DB navíc podporuje řízení přístupu na základě PROTOKOLU IP pro podporu příchozí brány firewall. Tento model se podobá pravidlům brány firewall tradičního databázového systému a poskytuje další úroveň zabezpečení vašeho účtu. Pomocí bran firewall můžete nakonfigurovat přístup k účtu služby Azure Cosmos DB jenom ze schválené sady počítačů nebo cloudových služeb. Přístup k datům uloženým v databázi Azure Cosmos DB z těchto schválených sad počítačů a služeb bude stále vyžadovat, aby volající předložil platný autorizační token.

Řízení přístupu PROTOKOLU IP

Ve výchozím nastavení je váš účet služby Azure Cosmos DB přístupný z internetu, pokud je k žádosti připojen platný autorizační token. Pokud chcete nakonfigurovat řízení přístupu na základě zásad PROTOKOLU IP, musí uživatel zadat sadu IP adres nebo rozsahů IP adres ve formuláři CIDR (Classless Inter-Domain Routing), který se zahrne jako seznam povolených IP adres klientů pro přístup k danému účtu služby Azure Cosmos DB. Jakmile se tato konfigurace použije, všechny požadavky pocházející z počítačů mimo tento seznam povolených obdrží odpověď 403 (Zakázáno). Při používání brány firewall protokolu IP se doporučuje povolit Azure Portal přístup k vašemu účtu. Přístup se vyžaduje, aby bylo možné používat Průzkumník dat a načítat metriky pro váš účet, které se zobrazují na Azure Portal. Pokud používáte Průzkumník dat, musíte kromě povolení přístupu k vašemu účtu Azure Portal také aktualizovat nastavení brány firewall a přidat aktuální IP adresu do pravidel brány firewall. Upozorňujeme, že šíření změn brány firewall může trvat až 15 minut a brána firewall může během této doby vykazovat nekonzistentní chování.

Bránu firewall založenou na PROTOKOLU IP můžete kombinovat s podsítí a řízením přístupu k virtuální síti. Jejich kombinací můžete omezit přístup k jakémukoli zdroji, který má veřejnou IP adresu, nebo z konkrétní podsítě v rámci virtuální sítě. Další informace o používání podsítě a řízení přístupu na základě virtuální sítě najdete v tématu Přístup k prostředkům služby Azure Cosmos DB z virtuálních sítí.

Abychom to shrnuli, pro přístup k účtu služby Azure Cosmos DB se vždy vyžaduje autorizační token. Pokud není nastavená brána firewall protokolu IP a seznam Access Control virtuální sítě (ACL), je k účtu služby Azure Cosmos DB přístup pomocí autorizačního tokenu. Po nastavení seznamů ACL brány firewall protokolu IP nebo virtuální sítě nebo obojího v účtu služby Azure Cosmos DB budou platné odpovědi pouze na požadavky pocházející ze zdrojů, které jste zadali (a s autorizačním tokenem).

Data uložená ve vašem účtu služby Azure Cosmos DB můžete zabezpečit pomocí bran firewall protokolu IP. Azure Cosmos DB podporuje řízení přístupu na základě IP pro podporu příchozí brány firewall. Bránu firewall protokolu IP můžete u účtu služby Azure Cosmos DB nastavit jedním z následujících způsobů:

  • Pomocí webu Azure Portal
  • Deklarativně pomocí šablony Azure Resource Manageru
  • Programově prostřednictvím Azure CLI nebo Azure PowerShell aktualizací vlastnosti ipRangeFilter

Konfigurace brány firewall protokolu IP pomocí Azure Portal

Pokud chcete nastavit zásady řízení přístupu IP v Azure Portal, přejděte na stránku účtu služby Azure Cosmos DB a v navigační nabídce vyberte Brána firewall a virtuální sítě. Změňte hodnotu Povolit přístup z na Vybrané sítě a pak vyberte Uložit.

Snímek obrazovky znázorňující, jak otevřít stránku Firewall v Azure Portal

Pokud je zapnuté řízení přístupu IP, Azure Portal umožňuje zadat IP adresy, rozsahy IP adres a přepínače. Přepínače umožňují přístup k dalším službám Azure a Azure Portal. Následující části obsahují podrobnosti o těchto přepínačích.

Poznámka

Po povolení zásad řízení přístupu ip adres pro váš účet služby Azure Cosmos DB se všechny požadavky na váš účet služby Azure Cosmos DB z počítačů mimo seznam povolených rozsahů IP adres zamítnou. Zablokované je také procházení prostředků Azure Cosmos DB z portálu, aby se zajistila integrita řízení přístupu.

Povolit požadavky z Azure Portal

Když programově povolíte zásady řízení přístupu PROTOKOLU IP, musíte přidat IP adresu pro Azure Portal do vlastnosti ipRangeFilter, aby se zachoval přístup. IP adresy portálu jsou:

Oblast IP adresa
Čína 139.217.8.252
US Gov 52.244.48.71
Všechny ostatní oblasti 104.42.195.92,40.76.54.131,52.176.6.30,52.169.50.45,52.187.184.26

Žádosti o přístup k Azure Portal můžete povolit tak, že vyberete možnost Povolit přístup z Azure Portal, jak je znázorněno na následujícím snímku obrazovky:

Snímek obrazovky znázorňující, jak povolit přístup k Azure Portal

Povolení požadavků z globálních datacenter Azure nebo jiných zdrojů v rámci Azure

Pokud ke svému účtu Azure Cosmos DB přistupujete ze služeb, které neposkytují statickou IP adresu (například Azure Stream Analytics a Azure Functions), můžete přístup omezit pomocí brány firewall protokolu IP. Přístup z jiných zdrojů v rámci Azure můžete povolit výběrem možnosti Přijímat připojení z datových center Azure , jak je znázorněno na následujícím snímku obrazovky:

Snímek obrazovky ukazující, jak přijímat připojení z datacenter Azure

Když tuto možnost povolíte, IP adresa 0.0.0.0 se přidá do seznamu povolených IP adres. IP 0.0.0.0 adresa omezuje požadavky na váš účet služby Azure Cosmos DB z rozsahu IP adres datacentra Azure. Toto nastavení neumožňuje přístup k účtu služby Azure Cosmos DB z žádného jiného rozsahu IP adres.

Poznámka

Tato možnost nakonfiguruje bránu firewall tak, aby umožňovala všechny požadavky z Azure, včetně požadavků z předplatných jiných zákazníků nasazených v Azure. Seznam IP adres povolených touto možností je široký, takže omezuje účinnost zásad brány firewall. Tuto možnost použijte jenom v případě, že vaše požadavky nepocházejí ze statických IP adres nebo podsítí ve virtuálních sítích. Volba této možnosti automaticky povolí přístup z Azure Portal, protože Azure Portal je nasazená v Azure.

Požadavky z vaší aktuální IP adresy

Pro zjednodušení vývoje vám Azure Portal pomůže identifikovat a přidat IP adresu vašeho klientského počítače do seznamu povolených. Aplikace, na kterých běží váš počítač, pak mají přístup k vašemu účtu služby Azure Cosmos DB.

Portál automaticky rozpozná IP adresu klienta. Může to být IP adresa klienta vašeho počítače nebo IP adresa síťové brány. Před uvedením úloh do produkčního prostředí nezapomeňte tuto IP adresu odebrat.

Pokud chcete přidat aktuální IP adresu do seznamu IP adres, vyberte Přidat aktuální IP adresu. Pak vyberte Uložit.

Snímek obrazovky znázorňující, jak nakonfigurovat nastavení brány firewall pro aktuální IP adresu

Požadavky z cloudových služeb

V Azure jsou cloudové služby běžným způsobem hostování logiky služby střední vrstvy pomocí služby Azure Cosmos DB. Pokud chcete povolit přístup k účtu služby Azure Cosmos DB z cloudové služby, musíte do seznamu povolených IP adres přidružených k vašemu účtu služby Azure Cosmos DB přidat veřejnou IP adresu cloudové služby tím, že nakonfigurujete zásady řízení přístupu PROTOKOLU IP. Tím se zajistí, že všechny instance rolí cloudových služeb budou mít přístup k vašemu účtu služby Azure Cosmos DB.

IP adresy pro cloudové služby můžete načíst v Azure Portal, jak je znázorněno na následujícím snímku obrazovky:

Snímek obrazovky znázorňující veřejnou IP adresu cloudové služby zobrazenou v Azure Portal

Při horizontálním navýšení kapacity cloudové služby přidáním instancí rolí budou mít tyto nové instance automaticky přístup k účtu Azure Cosmos DB, protože jsou součástí stejné cloudové služby.

Požadavky z virtuálních počítačů

Virtuální počítače nebo škálovací sady virtuálních počítačů můžete také použít k hostování služeb střední vrstvy pomocí služby Azure Cosmos DB. Pokud chcete nakonfigurovat účet služby Azure Cosmos DB tak, aby umožňoval přístup z virtuálních počítačů, musíte nakonfigurovat veřejnou IP adresu virtuálního počítače nebo škálovací sady virtuálních počítačů jako jednu z povolených IP adres pro váš účet služby Azure Cosmos DB tím, že nakonfigurujete zásady řízení přístupu IP.

IP adresy virtuálních počítačů můžete načíst v Azure Portal, jak je znázorněno na následujícím snímku obrazovky:

Snímek obrazovky znázorňující veřejnou IP adresu virtuálního počítače zobrazenou v Azure Portal

Když do skupiny přidáte instance virtuálních počítačů, automaticky získají přístup k vašemu účtu služby Azure Cosmos DB.

Požadavky z internetu

Při přístupu k účtu služby Azure Cosmos DB z počítače na internetu musí být ip adresa klienta nebo rozsah IP adres počítače přidány do seznamu povolených IP adres pro váš účet.

Přidání pravidel odchozích přenosů do brány firewall

Pokud chcete získat přístup k aktuálnímu seznamu rozsahů odchozích IP adres, které chcete přidat do nastavení brány firewall, přečtěte si téma Stažení rozsahů IP adres a značek služeb Azure.

Pokud chcete seznam automatizovat, přečtěte si téma Použití rozhraní API pro zjišťování značek služeb.

Konfigurace brány firewall protokolu IP pomocí šablony Resource Manager

Pokud chcete nakonfigurovat řízení přístupu k účtu služby Azure Cosmos DB, ujistěte se, že šablona Resource Manager určuje vlastnost ipRules s polem povolených rozsahů IP adres. Pokud konfigurujete bránu firewall protokolu IP na už nasazený účet služby Azure Cosmos DB, ujistěte se, že locations pole odpovídá aktuálně nasazenýmu poli. Pole a další vlastnosti nelze současně upravovat locations . Další informace a ukázky šablon Azure Resource Manager pro službu Azure Cosmos DB najdete v tématu Šablony Azure Resource Manager pro Azure Cosmos DB.

Důležité

Vlastnost ipRules byla zavedena v rozhraní API verze 2020-04-01. Předchozí verze místo toho zveřejnily vlastnost ipRangeFilter , což je seznam IP adres oddělených čárkami.

Následující příklad ukazuje, jak je vlastnost ipRules zpřístupněna v rozhraní API verze 2020-04-01 nebo novější:

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

Tady je stejný příklad pro všechny verze rozhraní API před 1. 4. 2020:

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

Konfigurace zásad řízení přístupu IP pomocí Azure CLI

Následující příkaz ukazuje, jak vytvořit účet služby Azure Cosmos DB s řízením přístupu IP:

# 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

Konfigurace zásad řízení přístupu IP pomocí PowerShellu

Následující skript ukazuje, jak vytvořit účet služby Azure Cosmos DB s řízením přístupu IP:

# 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

Řešení potíží se zásadami řízení přístupu IP adres

Problémy se zásadami řízení přístupu IP adres můžete vyřešit pomocí následujících možností:

portál Azure

Povolením zásad řízení přístupu IP pro účet služby Azure Cosmos DB zablokujete všechny požadavky na váš účet z počítačů mimo seznam povolených rozsahů IP adres. Pokud chcete povolit operace roviny dat portálu, jako je procházení kontejnerů a dotazování dokumentů, musíte Azure Portal přístup explicitně povolit pomocí podokna Brána firewall na portálu.

Sady SDK

Při přístupu k prostředkům Azure Cosmos DB pomocí sad SDK z počítačů, které nejsou na seznamu povolených, se vrátí obecná odpověď 403 Zakázáno bez dalších podrobností. Ověřte seznam povolených IP adres pro váš účet a ujistěte se, že je pro váš účet služby Azure Cosmos DB použita správná konfigurace zásad.

Zdrojové IP adresy v blokovaných požadavcích

Povolte protokolování diagnostiky pro účet služby Azure Cosmos DB. Tyto protokoly zobrazují jednotlivé požadavky a odpovědi. Zprávy související s bránou firewall se protokolují pomocí návratového kódu 403. Filtrováním těchto zpráv zobrazíte zdrojové IP adresy blokovaných požadavků. Viz Protokolování diagnostiky služby Azure Cosmos DB.

Požadavky z podsítě s povoleným koncovým bodem služby pro službu Azure Cosmos DB

Požadavky z podsítě ve virtuální síti s povoleným koncovým bodem služby Azure Cosmos DB odesílají identitu virtuální sítě a podsítě do účtů služby Azure Cosmos DB. Tyto požadavky nemají veřejnou IP adresu zdroje, takže je filtry IP adres odmítnou. Pokud chcete povolit přístup z konkrétních podsítí ve virtuálních sítích, přidejte seznam řízení přístupu, jak je popsáno v tématu Konfigurace přístupu k virtuální síti a podsíti pro váš účet služby Azure Cosmos DB. Použití pravidel brány firewall může trvat až 15 minut a brána firewall může během této doby vykazovat nekonzistentní chování.

Privátní IP adresy v seznamu povolených adres

Vytvoření nebo aktualizace účtu služby Azure Cosmos DB se seznamem povolených adres obsahujících privátní IP adresy se nezdaří. Ujistěte se, že v seznamu není zadaná žádná privátní IP adresa.

Další kroky

Informace o konfiguraci koncového bodu služby pro virtuální síť pro účet služby Azure Cosmos DB najdete v následujících článcích: