sanal ağlardan (VNet) Azure Cosmos DB erişimi yapılandırma
Uygulama hedefı:
MongoDB için SQL API Cassandra API gremlin API
tablo API'si
Azure Cosmos DB API 'si
Azure Cosmos hesabını yalnızca belirli bir sanal ağ (VNet) alt ağından erişime izin verecek şekilde yapılandırabilirsiniz. hizmet uç noktasının bir sanal ağ içindeki alt ağda Azure Cosmos DB erişmesini etkinleştirerek, bu alt ağdan gelen trafik, alt ağın ve sanal ağın kimliğiyle Azure Cosmos DB gönderilir. Azure Cosmos DB hizmeti uç noktası etkinleştirildikten sonra, Azure Cosmos hesabınıza ekleyerek alt ağa erişimi sınırlayabilirsiniz.
varsayılan olarak, isteğe geçerli bir yetkilendirme belirteciyle eşlik eden bir Azure Cosmos hesabına herhangi bir kaynaktan erişilebilir. VNET 'ler içinde bir veya daha fazla alt ağ eklediğinizde, yalnızca bu alt ağlardan kaynaklanan istekler geçerli bir yanıt alır. Diğer kaynaklardan gelen istekler, 403 (yasak) yanıtı alır.
Azure Cosmos DB hesaplarını, yalnızca Azure sanal ağının belirli bir alt ağından erişime izin verecek şekilde yapılandırabilirsiniz. bir Azure Cosmos DB hesabına erişimi, bir sanal ağdaki bir alt ağdan bağlantılarla sınırlamak için:
alt ağ ve sanal ağ kimliğini Azure Cosmos DB göndermek için alt ağı etkinleştirin. bu, belirli bir alt ağdaki Azure Cosmos DB için bir hizmet uç noktası etkinleştirerek elde edebilirsiniz.
alt ağı hesabın erişebileceği bir kaynak olarak belirtmek için Azure Cosmos DB hesaba bir kural ekleyin.
Not
bir alt ağda Azure Cosmos DB hesabınız için bir hizmet uç noktası etkinleştirildiğinde, bir genel ıp 'den bir sanal ağa ve alt ağa Azure Cosmos DB anahtarlara ulaşan trafik kaynağıdır. trafik geçişi, bu alt ağdan erişilen tüm Azure Cosmos DB hesapları için geçerlidir. Azure Cosmos DB hesaplarınızın bu alt ağa izin veren ıp tabanlı bir güvenlik duvarı varsa, hizmet etkin alt ağdan gelen istekler artık ıp güvenlik duvarı kurallarıyla eşleşmez ve reddedilir.
Daha fazla bilgi edinmek için, bu makalenin IP güvenlik duvarı kuralından bir sanal ağ erişim denetim listesine geçme bölümünde özetlenen adımlara bakın.
aşağıdaki bölümlerde, bir Azure Cosmos DB hesabı için sanal ağ hizmeti uç noktasının nasıl yapılandırılacağı açıklanır.
Azure portal kullanarak bir hizmet uç noktası yapılandırma
Mevcut bir Azure sanal ağı ve alt ağı için bir hizmet uç noktası yapılandırın
tüm kaynaklar dikey penceresinde, güvenli hale getirmek istediğiniz Azure Cosmos DB hesabını bulun.
Ayarlar menüsünden güvenlik duvarları ve sanal ağlar ' ı seçin ve Seçilen ağlardan erişime izin ver ' i seçin.
Var olan bir sanal ağın alt ağına erişim vermek için, sanal ağlar altında var olan Azure sanal ağını Ekle' yi seçin.
Azure sanal ağını eklemek istediğiniz aboneliği seçin. Azure Cosmos DB hesabınıza erişim sağlamak istediğiniz Azure sanal ağlarını ve alt ağlarını seçin. Sonra, "Microsoft. Azu, Smosdb" için hizmet uç noktalarına sahip seçili ağları etkinleştirmek üzere Etkinleştir ' i seçin. Tamamlandıktan sonra Ekle' yi seçin.
Not
VNET hizmet uç noktasının, yayılması 15 dakika kadar sürebilir ve bu süre içinde uç nokta tutarsız bir davranış gösterebilir.
Azure Cosmos DB hesabı bir sanal ağdan erişim için etkinleştirildikten sonra, yalnızca bu seçili alt ağdan gelen trafiğe izin verir. Eklediğiniz sanal ağ ve alt ağ aşağıdaki ekran görüntüsünde gösterildiği gibi görünmelidir:
Not
Sanal ağ hizmet uç noktalarını etkinleştirmek için aşağıdaki Abonelik izinlerine sahip olmanız gerekir:
- Sanal ağı olan abonelik: ağ katılımcısı
- Azure Cosmos DB hesabıyla abonelik: DocumentDB hesabı katılımcısı
- sanal ağınız ve Azure Cosmos DB hesabınız farklı aboneliklerdeyse, sanal ağa sahip aboneliğin de
Microsoft.DocumentDBkaynak sağlayıcısı kayıtlı olduğundan emin olun. Bir kaynak sağlayıcısını kaydetmek için bkz. Azure kaynak sağlayıcıları ve türleri makalesi.
Aboneliği kaynak sağlayıcısına kaydetme yönergeleri aşağıda verilmiştir.
Yeni bir Azure sanal ağı ve alt ağı için hizmet uç noktası yapılandırma
tüm kaynaklar dikey penceresinde, güvenli hale getirmek istediğiniz Azure Cosmos DB hesabını bulun.
Ayarlar menüsünden güvenlik duvarları ve Azure sanal ağları ' nı seçin ve Seçilen ağlardan erişime izin ver ' i seçin.
Yeni bir Azure sanal ağına erişim vermek için, sanal ağlar altında Yeni sanal ağ ekle' yi seçin.
Yeni bir sanal ağ oluşturmak için gereken ayrıntıları girip Oluştur' u seçin. Alt ağ "Microsoft. Azu, Smosdb" etkin bir hizmet uç noktası ile oluşturulur.
Azure Cosmos DB hesabınız azure Bilişsel Arama gibi diğer azure hizmetleri tarafından kullanılıyorsa veya Stream analytics veya Power BI 'e erişildiğinde, genel Azure veri merkezlerinden gelen bağlantıları kabul et' i seçerek erişime izin verebilirsiniz.
portaldan Azure Cosmos DB ölçümlerine erişiminizin olduğundan emin olmak için Azure portal seçeneklerinden erişime izin ver ' i etkinleştirmeniz gerekir. Bu seçenekler hakkında daha fazla bilgi edinmek için bkz. IP güvenlik duvarı yapılandırma makalesi. Erişimi etkinleştirdikten sonra ayarları kaydetmek için Kaydet ' i seçin.
Sanal ağ veya alt ağ kaldırma
tüm kaynaklar dikey penceresinde, hizmet uç noktalarını atadığınız Azure Cosmos DB hesabını bulun.
Ayarlar menüsünden güvenlik duvarları ve sanal ağlar ' ı seçin.
Bir sanal ağ veya alt ağ kuralını kaldırmak için, sanal ağ veya alt ağın yanındaki ... öğesini seçin ve Kaldır' ı seçin.
Değişikliklerinizi uygulamak için Kaydet’i seçin.
Azure PowerShell kullanarak bir hizmet uç noktası yapılandırma
Not
Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Azure PowerShell kullanarak bir hizmet uç noktasını bir Azure Cosmos DB hesabına yapılandırmak için aşağıdaki adımları kullanın:
Azure PowerShell yükleyip oturum açın.
Bir sanal ağın mevcut alt ağı için hizmet uç noktasını etkinleştirin.
$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-AzVirtualNetworkNot
PowerShell veya Azure CLı kullanırken, yalnızca eklenmesi gereken tek değil, parametrelerde IP filtrelerinin ve sanal ağ ACL 'lerinin tam listesini belirttiğinizden emin olun.
Sanal ağ bilgilerini al.
$vnet = Get-AzVirtualNetwork ` -ResourceGroupName $resourceGroupName ` -Name $vnetName $subnetId = $vnet.Id + "/subnets/" + $subnetNameCosmos DB sanal ağ kuralı hazırlama
$vnetRule = New-AzCosmosDBVirtualNetworkRule ` -Id $subnetIdyeni sanal ağ uç noktası yapılandırmasıyla Azure Cosmos DB hesabı özelliklerini güncelleştirin:
$accountName = "<Cosmos DB account name>" Update-AzCosmosDBAccount ` -ResourceGroupName $resourceGroupName ` -Name $accountName ` -EnableVirtualNetwork $true ` -VirtualNetworkRuleObject @($vnetRule)Azure Cosmos DB hesabınızın, önceki adımda yapılandırdığınız sanal ağ hizmeti uç noktasıyla güncelleştirildiğinden emin olmak için aşağıdaki komutu çalıştırın:
$account = Get-AzCosmosDBAccount ` -ResourceGroupName $resourceGroupName ` -Name $accountName $account.IsVirtualNetworkFilterEnabled $account.VirtualNetworkRules
Azure CLı kullanarak hizmet uç noktası yapılandırma
Azure Cosmos hesapları, alt ağ zaten yapılandırılmışsa, daha sonra oluşturulduklarında veya güncellendiklerinde hizmet uç noktaları için yapılandırılabilir. hizmet uç noktaları ayrıca alt ağın henüz kendileri için yapılandırılmadığı Cosmos hesapta etkinleştirilebilir ve sonra alt ağ daha sonra yapılandırıldığında çalışmaya başlar. bu esneklik, yapılandırmalarının birbirleriyle bağımsız olması için hem Cosmos hem de sanal ağ kaynaklarına erişimi olmayan yöneticilere izin verir.
yeni bir Cosmos hesabı oluşturun ve yeni bir sanal ağ için bir arka uç alt ağına bağlayın
Bu örnekte, sanal ağ ve alt ağ, her ikisi de oluşturulduğunda etkinleştirilmiş hizmet uç noktaları ile oluşturulur.
# 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
bir Cosmos hesabını bağımsız olarak arka uç alt ağına Bağlan ve yapılandırma
bu örnek, bir Azure Cosmos hesabının alt ağın henüz hizmet uç noktaları için yapılandırılmadığı mevcut yeni bir sanal ağa nasıl bağlanacağını göstermek için tasarlanmıştır. Bu, parametresi kullanılarak yapılır --ignore-missing-vnet-service-endpoint . bu, Cosmos hesabının yapılandırmasının, sanal ağın alt ağının yapılandırması tamamlanmadan önce hatasız olarak tamamlanmasını sağlar. alt ağ yapılandırması tamamlandıktan sonra, Cosmos hesaba daha sonra yapılandırılan alt ağ üzerinden erişilebilecektir.
# 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
Doğrudan mod kullanılırken bağlantı noktası aralığı
bir Azure Cosmos hesabıyla hizmet uç noktalarını doğrudan mod bağlantısıyla kullanırken, TCP bağlantı noktasının 10000 ile 20000 arasında olduğundan emin olmanız gerekir.
IP güvenlik duvarı kuralından bir sanal ağ ACL 'sine geçiş
sanal ağ hizmet uç noktalarını kullanmak için ıp güvenlik duvarı kurallarını kullanarak bir Azure Cosmos DB hesabını geçirmek için aşağıdaki adımları kullanın.
bir alt ağ için hizmet uç noktası için bir Azure Cosmos DB hesabı yapılandırıldıktan sonra, bu alt ağdan gelen istekler, kaynak genel ıp adresi yerine sanal ağ ve alt ağ kaynak bilgileriyle Azure Cosmos DB gönderilir. bu istekler artık Azure Cosmos DB hesabında yapılandırılmış bir ıp filtresiyle eşleşmez, bu nedenle kapalı kalma süresini önlemek için aşağıdaki adımların gerekli olmasının nedeni budur.
devam etmeden önce, sanal ağ ve alt ağ üzerindeki Azure Cosmos DB hizmet uç noktasını, "sanal ağın mevcut alt ağı için hizmet uç noktasını etkinleştir" bölümünde gösterilen adımı kullanarak etkinleştirin.
Sanal ağ ve alt ağ bilgilerini al:
$resourceGroupName = "myResourceGroup" $accountName = "mycosmosaccount" $vnetName = "myVnet" $subnetName = "mySubnet" $vnet = Get-AzVirtualNetwork ` -ResourceGroupName $resourceGroupName ` -Name $vnetName $subnetId = $vnet.Id + "/subnets/" + $subnetNameAzure Cosmos DB hesabı için yeni bir sanal ağ kuralı nesnesi hazırlayın:
$vnetRule = New-AzCosmosDBVirtualNetworkRule ` -Id $subnetIdalt ağdan hizmet uç noktası erişimini etkinleştirmek için Azure Cosmos DB hesabını güncelleştirin:
Update-AzCosmosDBAccount ` -ResourceGroupName $resourceGroupName ` -Name $accountName ` -EnableVirtualNetwork $true ` -VirtualNetworkRuleObject @($vnetRule)alt ağdan erişilen tüm Azure Cosmos DB hesapları için önceki adımları tekrarlayın.
alt ağ için ıp güvenlik duvarı kuralını Azure Cosmos DB hesabının güvenlik duvarı kurallarından kaldırın.
Sık sorulan sorular
Aşağıda, sanal ağlardan erişimi yapılandırma hakkında sık sorulan bazı sorular verilmiştir:
Not defterleri ve Mongo/Cassandra kabuğu Şu anda sanal ağ etkin hesaplarıyla uyumlu mı?
şu anda Cosmos DB Veri Gezgini mongo kabuğu ve cassandra kabuğu tümleştirmeleri ve jupi not defterleri hizmeti, VNET erişimiyle desteklenmez. Bu, şu anda etkin geliştirme aşamasındadır.
Azure Cosmos hesabında hem sanal ağ hizmeti uç noktası hem de ıp erişim denetim ilkesi belirtebilir miyim?
Azure Cosmos hesabınızda hem sanal ağ hizmeti uç noktasını hem de bir ıp erişim denetimi ilkesini (güvenlik duvarı olarak da bilinir) etkinleştirebilirsiniz. bu iki özellik tamamlayıcı ve Azure Cosmos hesabınızın yalıtımına ve güvenliğine topluca güvendiğinden emin olun. IP güvenlik duvarının kullanılması, statik IP 'Lerin hesabınıza erişmesini sağlar.
Nasıl yaparım? bir sanal ağ içindeki alt ağa erişimi mi sınırlayın?
Azure Cosmos hesabına erişimi bir alt ağdan sınırlamak için gereken iki adım vardır. ilk olarak, alt ağdan gelen trafiğin alt ağını ve sanal ağ kimliğini Azure Cosmos DB olarak taşıması için izin verebilirsiniz. bu işlem, alt ağdaki Azure Cosmos DB için hizmet uç noktası etkinleştirilerek yapılır. daha sonra, bu alt ağı, hesaba erişilebilen bir kaynak olarak belirten Azure Cosmos hesabına bir kural ekleniyor.
Sanal ağ ACL 'Leri ve IP güvenlik duvarı istekleri veya bağlantıları reddeder mi?
IP güvenlik duvarı veya sanal ağ erişim kuralları eklendiğinde, yalnızca izin verilen kaynaklardan gelen istekler geçerli yanıtlar alır. Diğer istekler 403 (yasak) ile reddedilir. Azure Cosmos hesabının güvenlik duvarını bir bağlantı düzeyi güvenlik duvarıyla ayırt etmek önemlidir. Kaynak hizmete hala bağlanabilir ve bağlantılar reddedilmez.
hizmet uç noktasını, alt ağda Azure Cosmos DB için etkinleştirdiğimde, isteklerim engellendi almaya başladı. Neler oldu?
bir alt ağda Azure Cosmos DB için hizmet uç noktası etkinleştirildikten sonra, hesap anahtarlarına genel ıp 'den sanal ağa ve alt ağa ulaşan trafik kaynağıdır. Azure Cosmos hesabınızda yalnızca ıp tabanlı güvenlik duvarı varsa, hizmet etkin alt ağdan gelen trafik artık ıp güvenlik duvarı kurallarıyla eşleşmez ve bu nedenle reddedilir. IP tabanlı güvenlik duvarından sanal ağ tabanlı erişim denetimine sorunsuz bir şekilde geçiş yapmak için adımlara gidin.
VNET hizmet uç noktaları olan azure Cosmos hesapları için ek Azure RBAC izinleri gerekiyor mu?
VNet hizmet uç noktalarını bir Azure Cosmos hesabına ekledikten sonra, hesap ayarlarında herhangi bir değişiklik yapmak için Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action azure Cosmos hesabınızda yapılandırılan tüm sanal ağlar için eyleme erişmeniz gerekir. Bu izin, yetkilendirme işlemi herhangi bir özelliği değerlendirmeden önce kaynaklara erişimi (veritabanı ve sanal ağ kaynakları gibi) doğruladığından gereklidir.
Kullanıcı sanal ağ ACL 'Lerini Azure CLı kullanarak belirtmese bile, yetkilendirme VNet kaynak eylemi iznini doğrular. şu anda azure Cosmos hesabının denetim düzlemi, azure Cosmos hesabının tamamlanma durumunu ayarlamayı destekler. Denetim düzlemi çağrılarında parametrelerden biri virtualNetworkRules . Bu parametre belirtilmezse Azure CLı, bir veritabanı al çağrısını öğesini alır virtualNetworkRules ve güncelleştirme çağrısında bu değeri kullanır.
eşlenen sanal ağların Azure Cosmos hesabına erişimi de var mı?
yalnızca sanal ağ ve Azure Cosmos hesabına eklenen alt ağları erişimi vardır. Eşlenen sanal ağlarda bulunan alt ağlar hesaba eklenene kadar, eşlenen VNET 'ler hesaba erişemez.
tek bir Cosmos hesabına erişmelerine izin verilen en fazla alt ağ sayısı nedir?
şu anda, bir Azure Cosmos hesabı için en fazla 256 alt ağa izin verilebilir.
VPN ve Express rotalarından erişimi etkinleştirebilir miyim?
şirket içindeki Express route üzerinden Azure Cosmos hesabına erişim için, Microsoft eşlemesini etkinleştirmeniz gerekir. ıp güvenlik duvarı veya sanal ağ erişim kuralları eklediğinizde, azure Cosmos hesabınızın ıp güvenlik duvarında Microsoft eşlemesi için kullanılan genel ıp adreslerini, şirket içi hizmetlere azure Cosmos hesabına erişim sağlamak için ekleyebilirsiniz.
Ağ güvenlik grupları (NSG) kurallarını güncelleştirmem gerekiyor mu?
NSG kuralları, sanal ağı olan bir alt ağ ile bağlantıyı sınırlamak için kullanılır. alt ağa Azure Cosmos DB için hizmet uç noktası eklediğinizde, Azure Cosmos hesabınız için nsg 'de giden bağlantıyı açmaya gerek yoktur.
Hizmet uç noktaları tüm VNET 'ler için kullanılabilir mi?
Hayır, yalnızca Azure Resource Manager sanal ağlarda hizmet uç noktası etkin olabilir. Klasik sanal ağlar hizmet uç noktalarını desteklemez.
hizmet uç noktası erişimi Azure Cosmos DB için etkinleştirildiğinde, "genel Azure veri merkezlerinden gelen bağlantıları kabul edebilir" miyim?
bu, yalnızca Azure Cosmos DB hesabınıza azure Data factory, azure Bilişsel Arama veya belirtilen azure bölgesinde dağıtılan herhangi bir hizmet gibi diğer azure birinci taraf hizmetleri tarafından erişilmesini istediğinizde gereklidir.
Sonraki adımlar
- Azure Cosmos DB için bir güvenlik duvarı yapılandırmak için, güvenlik duvarı destek makalesine bakın.