Sanal ağlardan (VNet) Azure Cosmos DB'ye erişimi yapılandırma

ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Cassandra Gremlin Tablo

Azure Cosmos DB hesabını yalnızca sanal ağın (VNET) belirli bir alt ağından erişime izin verecek şekilde yapılandırabilirsiniz. Azure Cosmos DB'ye erişimi denetlemek için sanal ağ içindeki bir alt ağda hizmet uç noktasını etkinleştirin. Bu alt ağdan gelen trafik, alt ağ ve Sanal Ağ kimliğiyle Azure Cosmos DB'ye gönderilir. Azure Cosmos DB hizmet uç noktası etkinleştirildikten sonra alt ağa erişimi Azure Cosmos DB hesabınıza ekleyerek sınırlayabilirsiniz.

varsayılan olarak, isteğe geçerli bir yetkilendirme belirteci eşlik ederse azure cosmos DB hesabına herhangi bir kaynaktan erişilebilir. Sanal ağlara bir veya daha fazla alt ağ eklediğinizde, yalnızca bu alt ağlardan gelen istekler geçerli bir yanıt alır. Başka bir kaynaktan 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. Sanal ağdaki bir alt ağdan gelen bağlantılarla Azure Cosmos DB hesabına erişimi sınırlamak için:

  1. Alt ağı ve sanal ağ kimliğini Azure Cosmos DB'ye göndermek için Azure Cosmos DB için hizmet uç noktasını etkinleştirin.

  2. Alt ağı, hesaba erişilebilen bir kaynak olarak belirtmek için Azure Cosmos DB hesabına bir kural ekleyin.

Dekont

Azure Cosmos DB hesabınız için bir hizmet uç noktası bir alt ağda etkinleştirildiğinde, Azure Cosmos DB'ye ulaşan trafiğin kaynağı genel IP'den sanal ağa ve alt ağa geçer. Trafik değiştirme, 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 vermek için IP tabanlı bir güvenlik duvarı varsa, hizmet etkin alt ağdan gelen istekler artık IP güvenlik duvarı kurallarıyla eşleşmez ve reddedilir.

Daha fazla bilgi edinmek için bu makalenin IP güvenlik duvarı kuralından sanal ağ erişim denetimine geçiş listesi bölümünde açıklanan adımlara bakın.

Aşağıdaki bölümlerde Bir Azure Cosmos DB hesabı için sanal ağ hizmet uç noktasının nasıl yapılandırıldığı açıklanmaktadır.

Azure portalını kullanarak hizmet uç noktasını yapılandırma

Mevcut bir Azure sanal ağı ve alt ağı için hizmet uç noktası yapılandırma

  1. Tüm kaynaklar bölmesinden, güvenliğini sağlamak istediğiniz Azure Cosmos DB hesabını bulun.

  2. Ayarlar menüsünden Ağ'ı seçin

    Screenshot of the networking menu option.

  3. Seçili ağlardan erişime izin vermeyi seçin.

  4. Mevcut bir sanal ağın alt ağına erişim izni vermek için Sanal ağlar'ın altında Mevcut Azure sanal ağını ekle'yi seçin.

  5. Azure sanal ağı 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ı seçin. Ardından, "Microsoft.AzureCosmosDB" için hizmet uç noktalarıyla seçili ağları etkinleştirmek için Etkinleştir'i seçin. Tamamlandığında Ekle'yi seçin.

    Screenshot of the dialog to select an existing Azure Virtual Network and subnet with an Azure Cosmos DB service endpoint.

    Dekont

    Sanal ağ hizmet uç noktasının yapılandırılması 15 dakika kadar sürebilir ve uç nokta bu süre boyunca tutarsız bir davranış gösterebilir.

  6. Azure Cosmos DB hesabı bir sanal ağdan erişim için etkinleştirildikten sonra yalnızca bu seçilen 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:

    Screenshot of an Azure Virtual Network and subnet configured successfully in the list.

Dekont

Sanal ağ hizmet uç noktalarını etkinleştirmek için aşağıdaki abonelik izinlerine ihtiyacınız vardır:

  • Sanal ağ ile abonelik: Ağ katkıda bulunanı
  • Azure Cosmos DB hesabıyla abonelik: DocumentDB hesabı katkıda bulunanı
  • Sanal ağınız ve Azure Cosmos DB hesabınız farklı aboneliklerdeyse, sanal ağa sahip aboneliğin de Microsoft.DocumentDB kaynak sağlayıcısının kayıtlı olduğundan emin olun. Kaynak sağlayıcısını kaydetmek için Azure kaynak sağlayıcıları ve türleri makalesine bakın.

Aboneliği kaynak sağlayıcısına kaydetme yönergeleri aşağıda belirtilmiştir.

Yeni bir Azure sanal ağı ve alt ağı için hizmet uç noktası yapılandırma

  1. Tüm kaynaklar bölmesinden, güvenliğini sağlamak istediğiniz Azure Cosmos DB hesabını bulun.

  2. Ayarlar menüsünden Ağ'ı seçin ve Seçili ağlardan erişime izin vermeyi seçin.

  3. Yeni bir Azure sanal ağına erişim izni vermek için Sanal ağlar'ın altında Yeni sanal ağ ekle'yi seçin.

  4. Yeni bir sanal ağ oluşturmak için gereken ayrıntıları sağlayın ve oluştur'u seçin. Alt ağ, "Microsoft.AzureCosmosDB" için bir hizmet uç noktası etkin olarak oluşturulur.

    Screenshot of the dialog to create a new Azure Virtual Network, configure a subnet, and then enable the Azure Cosmos DB service endpoint.

Azure Cosmos DB hesabınız Azure AI Search gibi diğer Azure hizmetleri tarafından kullanılıyorsa veya Stream analytics veya Power BI'dan erişiliyorsa, Genel Azure veri merkezlerinden bağlantıları kabul et'i seçerek erişime izin verirsiniz.

Portaldan Azure Cosmos DB ölçümlerine erişiminiz olduğundan emin olmak için Azure portalından erişime izin ver seçeneklerini etkinleştirmeniz gerekir. Bu seçenekler hakkında daha fazla bilgi edinmek için IP güvenlik duvarı yapılandırma makalesine bakın. Erişimi etkinleştirdikten sonra, ayarları kaydetmek için Kaydet'i seçin.

Sanal ağı veya alt ağı kaldırma

  1. Tüm kaynaklar bölmesinde hizmet uç noktaları atadığınız Azure Cosmos DB hesabını bulun.

  2. Ayarlar menüsünden Ağ'ı seçin.

  3. Bir sanal ağı veya alt ağ kuralını kaldırmak için sanal ağın veya alt ağın yanındaki ... öğesini ve ardından Kaldır'ı seçin.

    Screenshot of the menu option to remove an associated Azure Virtual Network.

  4. Yaptığınız değişiklikleri uygulamak için Kaydet'i seçin.

Azure PowerShell kullanarak hizmet uç noktasını yapılandırma

Dekont

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. 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 Azure Cosmos DB hesabına hizmet uç noktası yapılandırmak için aşağıdaki adımları kullanın:

  1. Azure PowerShell'i yükleyin ve oturum açın.

  2. 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-AzVirtualNetwork
    

    Dekont

    PowerShell veya Azure CLI kullanırken, yalnızca eklenmesi gerekenleri değil, parametrelerde IP filtrelerinin ve sanal ağ ACL'lerinin tam listesini belirttiğinizden emin olun.

  3. Sanal ağ bilgilerini alın.

    $vnet = Get-AzVirtualNetwork `
       -ResourceGroupName $resourceGroupName `
       -Name $vnetName
    
    $subnetId = $vnet.Id + "/subnets/" + $subnetName
    
  4. Azure Cosmos DB Sanal Ağ Kuralı Hazırlama

    $vnetRule = New-AzCosmosDBVirtualNetworkRule `
       -Id $subnetId
    
  5. Azure Cosmos DB hesap özelliklerini yeni Sanal Ağ uç nokta yapılandırmasıyla güncelleştirin:

    $accountName = "<Azure Cosmos DB account name>"
    
    Update-AzCosmosDBAccount `
       -ResourceGroupName $resourceGroupName `
       -Name $accountName `
       -EnableVirtualNetwork $true `
       -VirtualNetworkRuleObject @($vnetRule)
    
  6. Azure Cosmos DB hesabınızın önceki adımda yapılandırdığınız sanal ağ hizmet uç noktasıyla güncelleştirildiğini doğrulamak için aşağıdaki komutu çalıştırın:

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

Azure CLI kullanarak hizmet uç noktasını yapılandırma

Azure Cosmos DB hesapları, alt ağ önceden yapılandırılmışsa, daha sonra oluşturulduklarında veya güncelleştirildiklerinde hizmet uç noktaları için yapılandırılabilir. Hizmet uç noktaları, alt ağın henüz yapılandırılmadığı Azure Cosmos DB hesabında da etkinleştirilebilir. Daha sonra alt ağ yapılandırıldığında hizmet uç noktası çalışmaya başlar. Bu esneklik, hem Azure Cosmos DB hesabına hem de sanal ağ kaynaklarına erişimi olmayan yöneticilerin yapılandırmalarını birbirinden bağımsız hale getirmelerini sağlar.

Yeni bir Azure Cosmos DB hesabı oluşturun ve yeni bir sanal ağ için arka uç alt ağına bağlayın

Bu örnekte, sanal ağ ve alt ağ, her ikisi de oluşturulduğunda hizmet uç noktaları etkin olarak oluşturulur.

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

# Resource group and Azure Cosmos DB 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 Azure 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 an Azure Cosmos DB account with default values and service endpoints
az cosmosdb create \
   -n $accountName \
   -g $resourceGroupName \
   --enable-virtual-network true \
   --virtual-network-rules $svcEndpoint

Azure Cosmos DB hesabını bağımsız olarak arka uç alt aya Bağlan ve yapılandırma

Bu örnek, bir Azure Cosmos DB hesabını mevcut veya yeni bir sanal ağa bağlamayı göstermek için tasarlanmıştır. Bu örnekte alt ağ henüz hizmet uç noktaları için yapılandırılmamış. parametresini kullanarak --ignore-missing-vnet-service-endpoint hizmet uç noktasını yapılandırın. Bu yapılandırma, sanal ağın alt ağına yönelik yapılandırma tamamlanmadan önce Azure Cosmos DB hesabının hatasız tamamlanmasını sağlar. Alt ağ yapılandırması tamamlandıktan sonra Azure Cosmos DB hesabına yapılandırılan alt ağ üzerinden erişilebilir.

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

# Resource group and Azure Cosmos DB 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 an Azure 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ığı

Doğrudan mod bağlantısı üzerinden Azure Cosmos DB hesabıyla hizmet uç noktalarını kullanırken, 10000 ile 20000 arasındaki TCP bağlantı noktası aralığının açık olduğundan emin olmanız gerekir.

IP güvenlik duvarı kuralından sanal ağ ACL'sine geçiş

Azure Cosmos DB hesabını IP güvenlik duvarı kurallarını kullanmaktan sanal ağ hizmet uç noktalarını kullanmaya geçirmek için aşağıdaki adımları kullanın.

Bir alt ağ için bir Azure Cosmos DB hesabı bir hizmet uç noktası için yapılandırıldıktan sonra, bu alt ağdan gelen her istek Azure Cosmos DB'ye farklı şekilde gönderilir. İstekler, kaynak genel IP adresi yerine sanal ağ ve alt ağ kaynak bilgileriyle gönderilir. Bu istekler artık Azure Cosmos DB hesabında yapılandırılmış bir IP filtresiyle eşleşmez. Bu nedenle kapalı kalma süresini önlemek için aşağıdaki adımlar gereklidir.

  1. Sanal ağ ve alt ağ bilgilerini alın:

    $resourceGroupName = "myResourceGroup"
    $accountName = "mycosmosaccount"
    $vnetName = "myVnet"
    $subnetName = "mySubnet"
    
    $vnet = Get-AzVirtualNetwork `
       -ResourceGroupName $resourceGroupName `
       -Name $vnetName
    
    $subnetId = $vnet.Id + "/subnets/" + $subnetName
    
  2. Azure Cosmos DB hesabı için yeni bir Sanal Ağ kuralı nesnesi hazırlayın:

    $vnetRule = New-AzCosmosDBVirtualNetworkRule `
       -Id $subnetId
    
  3. Alt 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)
    
  4. Alt ağdan erişilen tüm Azure Cosmos DB hesapları için önceki adımları yineleyin.

  5. Bu makalenin Mevcut bir sanal ağ alt ağı için hizmet uç noktasını etkinleştirme bölümünde gösterilen adımı kullanarak sanal ağda ve alt ağda Azure Cosmos DB hizmet uç noktasını etkinleştirin.

  6. Azure Cosmos DB hesabının Güvenlik duvarı kurallarından alt ağın IP güvenlik duvarı kuralını kaldırın.

Sık sorulan sorular

Sanal ağlardan erişimi yapılandırma hakkında sık sorulan bazı sorular şunlardır:

Not Defterleri ve Mongo/Cassandra Shell şu anda Sanal Ağ etkin hesaplarla uyumlu mu?

Şu anda Azure Cosmos DB Veri Gezgini ve Jupyter Notebooks hizmetindeki Mongo kabuğu ve Cassandra kabuğu tümleştirmeleri sanal ağ erişimiyle desteklenmemektedir. Bu tümleştirme şu anda etkin geliştirme aşamasındadır.

Azure Cosmos DB hesabında hem sanal ağ hizmet uç noktası hem de IP erişim denetimi ilkesi belirtebilir miyim?

Azure Cosmos DB hesabınızda hem sanal ağ hizmet uç noktasını hem de IP erişim denetimi ilkesini (güvenlik duvarı olarak da bilinir) etkinleştirebilirsiniz. Bu iki özellik tamamlayıcıdır ve Azure Cosmos DB hesabınızın yalıtımını ve güvenliğini topluca güvence altına alır. IP güvenlik duvarının kullanılması, statik IP'lerin hesabınıza erişebilmesini sağlar.

Sanal ağ içindeki alt ağa erişimi Nasıl yaparım? sınırlasın?

Bir alt ağdan Azure Cosmos DB hesabına erişimi sınırlamak için gereken iki adım vardır. İlk olarak, alt ağdan gelen trafiğin alt ağ ve sanal ağ kimliğini Azure Cosmos DB'ye taşımasına izin verirsiniz. Trafiğin kimliğini değiştirmek, alt ağda Azure Cosmos DB için hizmet uç noktası etkinleştirilerek gerçekleştirilir. Ardından Azure Cosmos DB hesabına bu alt ağı, hesaba erişilebilen bir kaynak olarak belirten bir kural eklemektir.

Sanal ağ ACL'leri ve IP Güvenlik Duvarı istekleri veya bağlantıları reddedecek 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 DB hesabının güvenlik duvarını bağlantı düzeyi güvenlik duvarından ayırmak önemlidir. Kaynak hizmete bağlanmaya devam edebilir ve bağlantılar reddedilir.

Alt ağda Azure Cosmos DB'ye hizmet uç noktasını etkinleştirdiğimde isteklerim engellenmeye başladı. Neler oldu?

Azure Cosmos DB hizmet uç noktası bir alt ağda etkinleştirildikten sonra, hesaba ulaşan trafiğin kaynağı genel IP'den sanal ağa ve alt ağa geçer. Azure Cosmos DB hesabınızda yalnızca IP tabanlı güvenlik duvarı varsa, hizmet etkin alt ağdan gelen trafik artık IP 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 geçiş adımlarını gözden geçirin.

Sanal ağ hizmet uç noktalarına sahip Azure Cosmos DB hesapları için ek Azure rol tabanlı erişim denetimi izinleri gerekiyor mu?

VNet hizmet uç noktalarını bir Azure Cosmos DB hesabına ekledikten sonra hesap ayarlarında herhangi bir değişiklik yapmak için Azure Cosmos DB hesabınızda yapılandırılan tüm VNET'ler için eyleme erişmeniz Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action gerekir. Yetkilendirme işlemi herhangi bir özelliği değerlendirmeden önce kaynaklara (veritabanı ve sanal ağ kaynakları gibi) erişimi doğruladığı için bu izin gereklidir.

Kullanıcı Azure CLI kullanarak sanal ağ ACL'lerini belirtmese bile yetkilendirme, sanal ağ kaynak eylemi için izni doğrular. Şu anda Azure Cosmos DB hesabının denetim düzlemi, Azure Cosmos DB hesabının tam durumunu ayarlamayı destekler. Denetim düzlemi çağrılarına yönelik parametrelerden biri olur virtualNetworkRules. Bu parametre belirtilmezse Azure CLI, öğesini almak virtualNetworkRules için bir get veritabanı çağrısı yapar ve güncelleştirme çağrısında bu değeri kullanır.

Eşlenen sanal ağların Azure Cosmos DB hesabına da erişimi var mı?

Yalnızca Azure Cosmos DB hesabına eklenen sanal ağ ve alt ağların erişimi vardır. Eşlenen sanal ağlar içindeki alt ağlar hesaba ekleninceye kadar eşlenen sanal ağları hesaba erişemez.

Tek bir Azure Cosmos DB hesabına erişmesine izin verilen en fazla alt ağ sayısı nedir?

Şu anda bir Azure Cosmos DB hesabı için en fazla 256 alt ağa izin verilebiliyor.

VPN ve Express Route'dan erişimi etkinleştirebilir miyim?

Şirket içinden Express yolu üzerinden Azure Cosmos DB hesabına erişmek için Microsoft eşlemesini etkinleştirmeniz gerekir. IP güvenlik duvarı veya sanal ağ erişim kuralları koyduktan sonra, şirket içi hizmetlerin Azure Cosmos DB hesabına erişmesine izin vermek için Azure Cosmos DB hesabınızın IP güvenlik duvarına Microsoft eşlemesi için kullanılan genel IP adreslerini ekleyebilirsiniz.

Ağ Güvenlik Grupları (NSG) kurallarını güncelleştirmem gerekiyor mu?

NSG kuralları, sanal ağ içeren bir alt ağa ve alt ağdan bağlantıyı sınırlamak için kullanılır. Alt ağa Azure Cosmos DB hizmet uç noktası eklediğinizde, Azure Cosmos DB hesabınız için NSG'de giden bağlantıyı açmanız gerekmez.

Hizmet uç noktaları tüm sanal ağlarda kullanılabilir mi?

Hayır, yalnızca Azure Resource Manager sanal ağlarının hizmet uç noktası etkinleştirilebilir. Klasik sanal ağlar hizmet uç noktalarını desteklemez.

Azure Cosmos DB hesabı için genel Azure veri merkezlerinden gelen bağlantıları ne zaman kabul etmeliyim?

Bu ayar yalnızca Azure Cosmos DB hesabınızın herhangi bir Azure bölgesindeki herhangi bir Azure hizmeti için erişilebilir olmasını istediğinizde etkinleştirilmelidir. Azure Data Factory ve Azure AI Search gibi diğer Azure birinci taraf hizmetleri, Azure Cosmos DB hesapları da dahil olmak üzere veri kaynaklarına erişimin güvenliğini sağlamaya yönelik belgeler sağlar, örneğin:

Sonraki adımlar

  • Azure Cosmos DB için güvenlik duvarı yapılandırmak için Güvenlik duvarı destek makalesine bakın.