konfigurace přístupu k Azure Cosmos DB z virtuálních sítí (VNet)

platí pro: SQL api rozhraní API Cassandra Gremlin api rozhraní API pro tabulky Azure Cosmos DB api pro MongoDB

účet Azure Cosmos můžete nakonfigurovat tak, aby povoloval přístup jenom z konkrétní podsítě virtuální sítě (VNet). povolením koncového bodu služby pro přístup k Azure Cosmos DB v podsíti ve virtuální síti se přenos z této podsítě pošle Azure Cosmos DB s identitou podsítě a Virtual Network. po povolení koncového bodu služby Azure Cosmos DB můžete omezit přístup k podsíti tím, že ji přidáte do svého účtu Azure Cosmos.

ve výchozím nastavení je účet Azure Cosmos přístupný z libovolného zdroje, pokud je žádost doprovázena platným autorizačním tokenem. Když do virtuální sítě přidáte jednu nebo víc podsítí, budou se v rámci požadavků, které pocházejí z těchto podsítí, získat platná odpověď. Žádosti pocházející z jakéhokoliv jiného zdroje obdrží odpověď 403 (zakázáno).

Účty služby Azure Cosmos DB můžete nakonfigurovat tak, aby umožňovaly přístup pouze z konkrétní podsítě virtuální sítě Azure. chcete-li omezit přístup k účtu Azure Cosmos DB s připojením z podsítě ve virtuální síti:

  1. umožněte, aby podsíť odesílala podsíť a identitu virtuální sítě do Azure Cosmos DB. to můžete dosáhnout povolením koncového bodu služby pro Azure Cosmos DB v konkrétní podsíti.

  2. přidejte do účtu Azure Cosmos DB pravidlo, abyste mohli určit podsíť jako zdroj, ze kterého je účet k účtu k dispozici.

Poznámka

pokud je v podsíti povolen koncový bod služby pro váš Azure Cosmos DB účet, zdroj provozu, který dosáhne Azure Cosmos DB přepínačů z veřejné IP adresy do virtuální sítě a podsítě. přepínání přenosů se vztahuje na libovolný účet Azure Cosmos DB, který je z této podsítě k dispozici. pokud vaše účty Azure Cosmos DB mají bránu firewall založenou na protokolu IP, která by umožňovala tuto podsíť, požadavky z podsítě s povolenými službami už nebudou odpovídat pravidlům brány firewall protokolu IP a budou odmítnuty.

Další informace najdete v části Postup migrace z pravidla brány firewall protokolu IP na virtuální síť v tomto článku.

následující části popisují, jak nakonfigurovat koncový bod služby virtuální sítě pro účet Azure Cosmos DB.

Konfigurace koncového bodu služby pomocí Azure Portal

Konfigurace koncového bodu služby pro existující virtuální síť Azure a podsíť

  1. v okně všechny prostředky najděte Azure Cosmos DB účet, který chcete zabezpečit.

  2. V nabídce nastavení vyberte možnost brány firewall a virtuální sítě a zvolte možnost povolení přístupu z vybraných sítí.

  3. Pokud chcete udělit přístup k podsíti existující virtuální sítě, vyberte v části virtuální sítě možnost Přidat existující virtuální síť Azure.

  4. Vyberte předplatné , ze kterého chcete přidat virtuální síť Azure. vyberte virtuální sítě a podsítě Azure, které chcete poskytnout přístup k vašemu Azure Cosmos DB účtu. V dalším kroku vyberte Povolit a povolte vybrané sítě s koncovými body služby pro Microsoft. AzureCosmosDB. Až se dokončí, vyberte Přidat.

    Vybrat virtuální síť a podsíť

    Poznámka

    Konfigurace koncového bodu služby virtuální sítě může trvat až 15 minut a koncový bod může během této doby vykazovat nekonzistentní chování.

  5. až bude účet Azure Cosmos DB povolený pro přístup z virtuální sítě, povolí provoz jenom z této zvolené podsítě. Virtuální síť a podsíť, kterou jste přidali, by se měla zobrazit, jak je znázorněno na následujícím snímku obrazovky:

    Virtuální síť a podsíť se úspěšně nakonfigurovaly.

Poznámka

K povolení koncových bodů služby virtuální sítě budete potřebovat následující oprávnění předplatného:

  • Předplatné s virtuální sítí: Přispěvatel sítě
  • předplatné s Azure Cosmos DBm účtem: přispěvatel účtu DocumentDB
  • pokud je vaše virtuální síť a účet Azure Cosmos DB v různých předplatných, ujistěte se, že odběr, který má virtuální síť, má taky Microsoft.DocumentDB zaregistrovaný poskytovatel prostředků. Pokud chcete zaregistrovat poskytovatele prostředků, přečtěte si článek poskytovatelé a typy prostředků Azure .

Tady jsou pokyny pro registraci předplatného u poskytovatele prostředků.

Konfigurace koncového bodu služby pro novou virtuální síť Azure a podsíť

  1. v okně všechny prostředky najděte Azure Cosmos DB účet, který chcete zabezpečit.

  2. V nabídce nastavení vyberte brány firewall a Azure Virtual Networks a zvolte možnost povolení přístupu z vybraných sítí.

  3. Pokud chcete udělit přístup k nové službě Azure Virtual Network, vyberte v části virtuální sítě možnost Přidat novou virtuální síť.

  4. Zadejte podrobnosti požadované k vytvoření nové virtuální sítě a pak vyberte vytvořit. Podsíť se vytvoří s koncovým bodem služby pro Microsoft. AzureCosmosDB, který je povolený.

    Vyberte virtuální síť a podsíť pro novou virtuální síť.

pokud váš Azure Cosmos DB účet používají jiné služby azure, jako je Azure Kognitivní hledání nebo ke kterému se přistupuje ze služby Stream analytics nebo Power BI, povolíte přístup tak, že v globálním datacentru Azure vyberete přijímat připojení.

abyste měli jistotu, že máte přístup k Azure Cosmos DB metriky z portálu, musíte povolit možnost povolit přístup z možností Azure Portal . Další informace o těchto možnostech najdete v článku Konfigurace brány firewall protokolu IP . Po povolení přístupu vyberte Uložit a uložte nastavení.

Odebrat virtuální síť nebo podsíť

  1. v okně všechny prostředky najděte účet Azure Cosmos DB, pro který jste přiřadili koncové body služby.

  2. V nabídce nastavení vyberte možnost brány firewall a virtuální sítě .

  3. Chcete-li odebrat virtuální síť nebo pravidlo podsítě, vyberte ... vedle virtuální sítě nebo podsítě a vyberte možnost Odebrat.

    Odebrání virtuální sítě

  4. Vyberte Uložit, aby se tyto změny použily.

Konfigurace koncového bodu služby pomocí Azure PowerShell

Poznámka

Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

pomocí následujících kroků můžete nakonfigurovat koncový bod služby na účet Azure Cosmos DB pomocí Azure PowerShell:

  1. nainstalujte Azure PowerShell a přihlaste se.

  2. Povolte koncový bod služby pro existující podsíť virtuální sítě.

    $resourceGroupName = "<Resource group name>"
    $vnetName = "<Virtual network name>"
    $subnetName = "<Subnet name>"
    $subnetPrefix = "<Subnet address range>"
    $serviceEndpoint = "Microsoft.AzureCosmosDB"
    
    Get-AzVirtualNetwork `
       -ResourceGroupName $resourceGroupName `
       -Name $vnetName | Set-AzVirtualNetworkSubnetConfig `
       -Name $subnetName `
       -AddressPrefix $subnetPrefix `
       -ServiceEndpoint $serviceEndpoint | Set-AzVirtualNetwork
    

    Poznámka

    Pokud používáte PowerShell nebo rozhraní příkazového řádku Azure CLI, nezapomeňte v parametrech zadat úplný seznam filtrů IP adres a seznamů ACL virtuální sítě v parametrech, nikoli jenom ty, které je potřeba přidat.

  3. Získat informace o virtuální síti

    $vnet = Get-AzVirtualNetwork `
       -ResourceGroupName $resourceGroupName `
       -Name $vnetName
    
    $subnetId = $vnet.Id + "/subnets/" + $subnetName
    
  4. příprava pravidla Cosmos DB Virtual Network

    $vnetRule = New-AzCosmosDBVirtualNetworkRule `
       -Id $subnetId
    
  5. aktualizujte Azure Cosmos DB vlastností účtu novou konfigurací Virtual Network koncového bodu:

    $accountName = "<Cosmos DB account name>"
    
    Update-AzCosmosDBAccount `
       -ResourceGroupName $resourceGroupName `
       -Name $accountName `
       -EnableVirtualNetwork $true `
       -VirtualNetworkRuleObject @($vnetRule)
    
  6. spuštěním následujícího příkazu ověřte, že se účet Azure Cosmos DB aktualizoval pomocí koncového bodu služby virtuální sítě, který jste nakonfigurovali v předchozím kroku:

    $account = Get-AzCosmosDBAccount `
       -ResourceGroupName $resourceGroupName `
       -Name $accountName
    
    $account.IsVirtualNetworkFilterEnabled
    $account.VirtualNetworkRules
    

Konfigurace koncového bodu služby pomocí rozhraní příkazového řádku Azure

účty Azure Cosmos je možné nakonfigurovat pro koncové body služby při jejich vytvoření nebo aktualizaci později, pokud je podsíť pro ně už nakonfigurovaná. koncové body služby je možné povolit taky na účtu Cosmos, kde pro ně není ještě nakonfigurovaná podsíť, a pak začnou fungovat, když je podsíť nakonfigurovaná později. tato flexibilita umožňuje správcům, kteří nemají přístup k prostředkům Cosmos a virtuálním síťovým prostředkům, zajistit vzájemnou vzájemnou konfiguraci.

vytvořit nový účet Cosmos a připojit ho k podsíti back-end pro novou virtuální síť

V tomto příkladu se vytvoří virtuální síť a podsíť s povolenými koncovými body služby při jejich vytváření.

# Create an Azure Cosmos Account with a service endpoint connected to a backend subnet

# Resource group and Cosmos account variables
resourceGroupName='MyResourceGroup'
location='West US 2'
accountName='mycosmosaccount'

# Variables for a new Virtual Network with two subnets
vnetName='myVnet'
frontEnd='FrontEnd'
backEnd='BackEnd'

# Create a resource group
az group create -n $resourceGroupName -l $location

# Create a virtual network with a front-end subnet
az network vnet create \
   -n $vnetName \
   -g $resourceGroupName \
   --address-prefix 10.0.0.0/16 \
   --subnet-name $frontEnd \
   --subnet-prefix 10.0.1.0/24

# Create a back-end subnet with service endpoints enabled for Cosmos DB
az network vnet subnet create \
   -n $backEnd \
   -g $resourceGroupName \
   --address-prefix 10.0.2.0/24 \
   --vnet-name $vnetName \
   --service-endpoints Microsoft.AzureCosmosDB

svcEndpoint=$(az network vnet subnet show -g $resourceGroupName -n $backEnd --vnet-name $vnetName --query 'id' -o tsv)

# Create a Cosmos DB account with default values and service endpoints
az cosmosdb create \
   -n $accountName \
   -g $resourceGroupName \
   --enable-virtual-network true \
   --virtual-network-rules $svcEndpoint

Připojení a konfigurace účtu Cosmos na podsíť back-endu nezávisle na sobě

v této ukázce se dozvíte, jak připojit účet Azure Cosmos k existující nové virtuální síti, ve které ještě není nakonfigurovaná podsíť pro koncové body služby. To se provádí pomocí --ignore-missing-vnet-service-endpoint parametru. to umožňuje, aby se konfigurace Cosmos účtu dokončila bez chyby, než se dokončí konfigurace do podsítě virtuální sítě. po dokončení konfigurace podsítě bude účet Cosmos přístupný prostřednictvím nakonfigurované podsítě.

# Create an Azure Cosmos Account with a service endpoint connected to a backend subnet
# that is not yet enabled for service endpoints.

# Resource group and Cosmos account variables
resourceGroupName='MyResourceGroup'
location='West US 2'
accountName='mycosmosaccount'

# Variables for a new Virtual Network with two subnets
vnetName='myVnet'
frontEnd='FrontEnd'
backEnd='BackEnd'

# Create a resource group
az group create -n $resourceGroupName -l $location

# Create a virtual network with a front-end subnet
az network vnet create \
   -n $vnetName \
   -g $resourceGroupName \
   --address-prefix 10.0.0.0/16 \
   --subnet-name $frontEnd \
   --subnet-prefix 10.0.1.0/24

# Create a back-end subnet but without configuring service endpoints (--service-endpoints Microsoft.AzureCosmosDB)
az network vnet subnet create \
   -n $backEnd \
   -g $resourceGroupName \
   --address-prefix 10.0.2.0/24 \
   --vnet-name $vnetName

svcEndpoint=$(az network vnet subnet show -g $resourceGroupName -n $backEnd --vnet-name $vnetName --query 'id' -o tsv)

# Create a Cosmos DB account with default values
az cosmosdb create -n $accountName -g $resourceGroupName

# Add the virtual network rule but ignore the missing service endpoint on the subnet
az cosmosdb network-rule add \
   -n $accountName \
   -g $resourceGroupName \
   --virtual-network $vnetName \
   --subnet svcEndpoint \
   --ignore-missing-vnet-service-endpoint true

read -p'Press any key to now configure the subnet for service endpoints'

az network vnet subnet update \
   -n $backEnd \
   -g $resourceGroupName \
   --vnet-name $vnetName \
   --service-endpoints Microsoft.AzureCosmosDB

Rozsah portů při použití přímého režimu

pokud používáte koncové body služby s účtem Azure Cosmos prostřednictvím připojení přímého režimu, musíte zajistit, aby byl rozsah portů TCP od 10000 do 20000 otevřený.

Migrace z pravidla brány firewall protokolu IP do seznamu ACL virtuální sítě

chcete-li migrovat účet Azure Cosmos DB pomocí pravidel brány firewall protokolu IP pro použití koncových bodů služby virtuální sítě, použijte následující postup.

po nakonfigurování účtu Azure Cosmos DB pro koncový bod služby pro podsíť se požadavky z této podsítě odesílají do Azure Cosmos DB pomocí virtuální sítě a zdroje informací o zdroji podsítě namísto zdrojové veřejné IP adresy. tyto požadavky již nebudou odpovídat filtru IP nakonfigurovanému na účtu Azure Cosmos DB, což je důvod, proč je nutné, abyste se vyhnuli výpadkům.

než budete pokračovat, povolte koncový bod služby Azure Cosmos DB ve virtuální síti a podsíti pomocí kroku uvedeného výše v tématu povolení koncového bodu služby pro existující podsíť virtuální sítě.

  1. Získat informace o virtuální síti a podsíti:

    $resourceGroupName = "myResourceGroup"
    $accountName = "mycosmosaccount"
    $vnetName = "myVnet"
    $subnetName = "mySubnet"
    
    $vnet = Get-AzVirtualNetwork `
       -ResourceGroupName $resourceGroupName `
       -Name $vnetName
    
    $subnetId = $vnet.Id + "/subnets/" + $subnetName
    
  2. příprava nového objektu Virtual Network pravidla pro účet Azure Cosmos DB:

    $vnetRule = New-AzCosmosDBVirtualNetworkRule `
       -Id $subnetId
    
  3. aktualizujte účet Azure Cosmos DB, aby se povolil přístup koncového bodu služby z podsítě:

    Update-AzCosmosDBAccount `
       -ResourceGroupName $resourceGroupName `
       -Name $accountName `
       -EnableVirtualNetwork $true `
       -VirtualNetworkRuleObject @($vnetRule)
    
  4. opakujte předchozí kroky pro všechny účty Azure Cosmos DB, ke kterým přistupovala z podsítě.

  5. odeberte pravidlo brány firewall protokolu IP pro podsíť z pravidel brány firewall účtu Azure Cosmos DB.

Nejčastější dotazy

Tady jsou některé nejčastější dotazy týkající se konfigurace přístupu z virtuálních sítí:

Jsou poznámkové bloky a prostředí Mongo/Cassandra aktuálně kompatibilní s účty s povoleným Virtual Network?

v současné době se Mongo prostředí powershellu a prostředí Cassandra ve službě Cosmos DB Průzkumník dat a služba Jupyter poznámkových blokůnepodporuje s přístupem VNET. Toto je aktuálně aktivní vývoj.

můžu na účtu Azure Cosmos zadat jak koncový bod služby virtuální sítě, tak i zásady řízení přístupu IP?

můžete povolit koncový bod služby virtuální sítě a zásadu řízení přístupu IP (označovanou taky jako brána firewall) na vašem účtu Azure Cosmos. tyto dvě funkce jsou doplňující a společně zajišťují izolaci a zabezpečení účtu Azure Cosmos. Použití brány firewall protokolu IP zajišťuje, že ke svému účtu budou mít přístup statické IP adresy.

Návody omezit přístup k podsíti v rámci virtuální sítě?

k omezení přístupu k účtu Azure Cosmos z podsítě se vyžadují dva kroky. nejdřív povolíte provoz z podsítě, aby se mohla Azure Cosmos DBa identita vaší podsítě a virtuální sítě. To se provádí povolením koncového bodu služby pro Azure Cosmos DB v podsíti. Dále do účtu Azure Cosmos pravidlo, které určuje tuto podsíť jako zdroj, ze kterého je možné získat přístup k účtu.

Budou seznamy ACL virtuální sítě a brána FIREWALL protokolu IP zamítat žádosti nebo připojení?

Když se přidávají pravidla přístupu k bráně firewall protokolu IP nebo virtuální síti, platné odpovědi budou dosažovat pouze požadavky z povolených zdrojů. Ostatní žádosti se zamítají s 403 (Zakázáno). Je důležité rozlišit bránu firewall účtu Azure Cosmos od brány firewall na úrovni připojení. Zdroj se stále může ke službě připojit a samotné připojení se neodmítnou.

Po povolení koncového bodu služby pro Azure Cosmos DB v podsíti se začaly blokovat moje požadavky. Co se stalo?

Jakmile je v podsíti povolený koncový bod služby pro Azure Cosmos DB, zdroj přenosů do účtu se přepne z veřejné IP adresy na virtuální síť a podsíť. Pokud váš účet Azure Cosmos jenom bránu firewall založenou na protokolu IP, provoz z podsítě s povolenou službou už neodpovídá pravidlům brány firewall protokolu IP, a proto se zamítne. Pokud chcete bezproblémovou migraci z brány firewall založené na protokolu IP na řízení přístupu na základě virtuální sítě, postupujte podle těchto kroků.

Jsou pro účty Azure Cosmos s koncovými body služeb virtuální sítě potřeba další oprávnění Azure RBAC?

Po přidání koncových bodů služeb virtuální sítě do účtu Azure Cosmos budete k provedení jakýchkoli změn nastavení účtu potřebovat přístup k akci pro všechny virtuální sítě nakonfigurované ve vašem účtu Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action Azure Cosmos. Toto oprávnění se vyžaduje, protože proces autorizace před vyhodnocením vlastností ověří přístup k prostředkům (například k prostředkům databáze a virtuální sítě).

Autorizace ověří oprávnění pro akci prostředku virtuální sítě i v případě, že uživatel pomocí Azure CLI nezadá seznamy ACL virtuální sítě. Řídicí rovina účtu Azure Cosmos v současné době podporuje nastavení úplného stavu účtu azure Cosmos účtu. Jedním z parametrů volání řídicí roviny je virtualNetworkRules . Pokud tento parametr nezadáte, Azure CLI provede volání databáze get, které načte a použije tuto hodnotu virtualNetworkRules ve volání aktualizace.

Mají partnerské virtuální sítě také přístup k účtu Azure Cosmos?

Přístup má pouze virtuální síť a jejich podsítě přidané Cosmos účtu Azure. Jejich partnerské virtuální sítě nebudou mít k účtu přístup, dokud se k účtu nepřidá podsítě v rámci partnerských virtuálních sítí.

Jaký je maximální počet podsítí povolených pro přístup k jednomu Cosmos účtu?

V současné době můžete mít pro účet azure Cosmos povolených až 256 podsítí.

Můžu povolit přístup z VPN a Express Route?

Pokud chcete získat Cosmos Azure přes Express Route z místního prostředí, musíte povolit partnerský vztah Microsoftu. Po umístění pravidel přístupu k bráně firewall protokolu IP nebo virtuální síti můžete do brány firewall protokolu IP účtu Azure Cosmos přidat veřejné IP adresy používané pro partnerský vztah Microsoftu, abyste místním službám umožnili přístup k účtu azure Cosmos.

Musím aktualizovat pravidla skupin zabezpečení sítě (NSG)?

Pravidla NSG slouží k omezení připojení k podsíti s virtuální sítí a z podsítě. Když do podsítě přidáte koncový bod služby pro Azure Cosmos DB, není pro váš účet azure Cosmos potřeba otevírat odchozí připojení ve zprostředkovateli zabezpečení sítě.

Jsou koncové body služby dostupné pro všechny virtuální sítě?

Ne, koncový bod Azure Resource Manager povolené jenom pro virtuální sítě. Klasické virtuální sítě nepodporují koncové body služby.

Můžu při povolení přístupu ke koncovým bodům služby pro Azure Cosmos DB přijímat připojení z veřejných datacenter Azure?

To se vyžaduje jenom v případě, že chcete, aby k vašemu účtu Azure Cosmos DB měly přístup jiné služby Azure, jako je Azure Data Factory, Azure Cognitive Search nebo jakákoli jiná služba nasazená v dané oblasti Azure.

Další kroky

  • Informace o konfiguraci brány firewall pro Azure Cosmos DB najdete v článku Podpora brány firewall.