Azure DocumentDB'de özel erişimi etkinleştirme

Azure Özel Bağlantı, kullanıcıların belirlenen özel uç nokta üzerinden Azure DocumentDB'ye bağlanmasına olanak tanıyan güçlü bir hizmettir. Bu özel uç nokta, kendi sanal ağınızdaki bir alt ağda bulunan özel IP adreslerinden oluşur. Uç nokta, Azure DocumentDB ürününe erişimi yalnızca özel IP'ler üzerinden kısıtlamanızı sağlar. Özel Bağlantı'yı sıkı NSG ilkeleriyle tümleştirerek veri sızdırma riski önemli ölçüde azalır. Özel uç noktaları daha ayrıntılı anlamak için Azure Özel Bağlantı nedir? konusunu gözden geçirmeyi göz önünde bulundurun.

Note

Özel Bağlantı bağlantınızın güvenliğini sağlar, ancak Azure DocumentDB uç noktalarınızın genel DNS tarafından çözümlenmesini engellemez. Gelen isteklerin filtrelemesi, aktarım veya ağ düzeyinde değil, uygulama düzeyinde işlenir.

Özel Bağlantı, Azure DocumentDB'ye sanal ağınızdan veya bağlı eşlenmiş herhangi bir sanal ağdan erişme esnekliği sunar. Buna ek olarak, Özel Bağlantı'ya bağlı kaynaklara özel eşleme aracılığıyla, VPN veya Azure ExpressRoute aracılığıyla şirket içinde erişilebilir.

Bağlantı kurmak için, Özel Bağlantı ile Azure DocumentDB hem otomatik hem de el ile onay yöntemlerini destekler.

Prerequisites

  • Mevcut bir Azure DocumentDB kümesi

Azure portalını kullanarak özel uç nokta ile küme oluşturma

Azure portalını kullanarak özel uç nokta ile yeni bir Azure DocumentDB kümesi oluşturmak için şu adımları izleyin:

  1. Azure portalında oturum açın ve ardından Azure portalının sol üst köşesindeki Kaynak oluştur'u seçin.

  2. Kaynak oluştur sayfasında Veritabanları'nı ve ardından Azure DocumentDB'yi seçin.

  3. API seç seçeneği sayfasındaki MongoDB kutucuğunda Oluştur'u seçin.

  4. Küme kaynak türünü seçin.

  5. Azure DocumentDB kümesi oluştur sayfasında Bir Kaynak grubu seçin veya oluşturun, bir Küme adı ve Konum girin ve yönetici Parolası girin ve onaylayın.

  6. Sonraki: 'ı seçin.

  7. Ağ Ayarları sekmesini seçin, Bağlantı yöntemi için Özel erişim seçin.

  8. Özel uç nokta oluştur ekranında, aşağıdakiler için uygun değerleri girin veya seçin:

    Ayarlar Value
    Kaynak Grubu Kaynak grubunu seçin.
    Name Özel uç noktanız için herhangi bir ad girin. Bu ad alınırsa benzersiz bir ad oluşturun.
    Ağ Arabirimi adı Ağ Arabiriminiz için herhangi bir ad girin. Bu ad alınırsa benzersiz bir ad oluşturun.
    Yer Özel Bağlantı dağıtmak istediğiniz bölgeyi seçin. Özel uç noktayı sanal ağınızın bulunduğu konumda oluşturun.
    Kaynak türü Microsoft.DocumentDB/mongoClustersseçin.
    Hedef kaynak Oluşturduğunuz Azure DocumentDB kaynağını seçin.
    Hedef alt kaynak Daha önce seçilen ve özel uç noktanızın erişim iznine sahip olması gereken kaynak için alt kaynak türünü seçin.
    Sanal ağ Sanal ağınızı seçin.
    Alt ağ (subnet) Alt ağınızı seçin.
    Özel DNS bölgesi ile tümleştirme Evet'i seçin. Özel uç noktanızla özel olarak bağlanmak için bir DNS kaydına sahip olmanız gerekir. Özel uç noktanızı özel bir DNS bölgesiyle tümleştirmenizi öneririz. Ayrıca kendi DNS sunucularınızı kullanabilir veya sanal makinelerinizdeki konak dosyalarını kullanarak DNS kayıtları oluşturabilirsiniz. Bu seçenek için evet'i seçtiğinizde, özel bir DNS bölge grubu da oluşturulur. DNS bölge grubu, özel DNS bölgesi ile özel uç nokta arasındaki bir bağlantıdır. Bu bağlantı, özel uç noktada bir güncelleştirme olduğunda özel DNS bölgesini otomatik olarak güncelleştirmenize yardımcı olur. Örneğin, bölgeleri eklediğinizde veya kaldırdığınızda, özel DNS bölgesi otomatik olarak güncelleştirilir.
    Yapılandırma adı Aboneliğinizi ve kaynak grubunuzu seçin. Özel DNS bölgesi otomatik olarak belirlenir. Azure portalını kullanarak değiştiremezsiniz.
  9. tamamseçin.

  10. İleri: Etiketleri>Gözden Geçir ve oluştur'u seçin. Gözden geçir + oluştur sayfasında Oluştur'u seçin.

Mevcut kümede özel erişimi etkinleştirme

Mevcut kümedeki bir düğüme özel uç nokta oluşturmak için kümenin sayfasını açın.

  1. Özel Uç Nokta Ekle'yi seçin.

    Ağ ekranında Özel uç nokta ekle'yi seçme işleminin ekran görüntüsü.

  2. Özel uç nokta oluştur ekranının Temel Bilgiler sekmesinde Abonelik, Kaynak grubu ve Bölge'yi onaylayın. Bir uç nokta için, örneğin my-cluster-1 gibi bir Ad ve örneğin my-cluster-1-nic gibi bir Ağ arabirimi adı girin.

    Note

    Aksini seçmek için iyi bir nedeniniz yoksa, kümenizdekilerle eşleşen bir abonelik ve bölge seçmenizi öneririz. Form alanları için varsayılan değerler doğru olmayabilir. Bunları denetleyin ve gerekirse güncelleştirin.

  3. İleri: Kaynak'ı seçin. Kaynak türü için "Microsoft.DocumentDB/mongoClusters" öğesini seçin ve Kaynak için hedef kümeyi seçin. Hedef alt kaynağı için "MongoCluster" öğesini seçin.

  4. İleri: Sanal Ağ'ı seçin. İstediğiniz Sanal ağı ve Alt ağı seçin. Özel IP yapılandırması'nın altında Ip adresini statik olarak ayır'ı seçin veya varsayılan IP adresini dinamik olarak ayır seçeneğini koruyun.

  5. İleri: DNS'yi seçin.

  6. Özel DNS tümleştirme altında, Özel DNS bölgesiyle tümleştirme için varsayılan Evet'i koruyun veya Hayır'ı seçin.

Note

Uygun DNS çözümlemesi için kümede özel DNS tümleştirmesinin etkinleştirilmesi gerekir.

  1. İleri: Etiketler'i seçin ve istediğiniz etiketleri ekleyin.

  2. Seçin, gözden geçir ve oluştur. Ayarları gözden geçirin ve memnun olduğunuzda Oluştur'u seçin.

Azure CLI kullanarak özel uç nokta oluşturma

Mevcut bir Azure DocumentDB hesabı için myPrivateEndpoint adlı özel bir uç nokta oluşturmak için aşağıdaki Azure CLI betiğini çalıştırın. Değişken değerlerini ortamınızın ayrıntılarıyla değiştirin.

# Resource group where the Azure DocumentDB account and virtual network resources are located  
ResourceGroupName="myResourceGroup" 

# Name of the existing Azure DocumentDB account  
ClusterName="myMongoCluster" 

# Subscription ID where the Azure DocumentDB account and virtual network resources are located  
SubscriptionId="<your Azure subscription ID>"  

# API type of your Azure DocumentDB account: Sql, SqlDedicated, MongoCluster, Cassandra, Gremlin, or Table 
SubResourceType="MongoCluster"  

# Name of the virtual network to create  
VNetName="myVnet"  

# Name of the subnet to create  
SubnetName="mySubnet"  

# Name of the private endpoint to create  
PrivateEndpointName="myPrivateEndpoint"  

# Name of the private endpoint connection to create 
PrivateConnectionName="myConnection" 

az network vnet create \
  --name $VNetName \
  --resource-group $ResourceGroupName \
  --subnet-name $SubnetName 

az network vnet subnet update \
  --name <name> \
  --resource-group $ResourceGroupName \
  --vnet-name $VNetName \
  --disable-private-endpoint-network-policies true 

az network private-endpoint create \
  --name $PrivateEndpointName \
  --resource-group $ResourceGroupName \
  --vnet-name $VNetName \
  --subnet $SubnetName \
  --private-connection-resource-id "/subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.DocumentDB/mongoClusters/$ClusterName" \
  --group-ids MongoCluster --connection-name $PrivateConnectionName 

Özel uç noktayı özel dns bölgesiyle tümleştirme

Özel uç noktayı oluşturduktan sonra, aşağıdaki Azure CLI betiğini kullanarak bunu bir özel DNS bölgesiyle tümleştirmeniz gerekir:

Note

Uygun DNS çözümlemesi için kümede özel DNS tümleştirmesinin etkinleştirilmesi gerekir.

#Zone name differs based on the API type and group ID you are using. 
zoneName="privatelink.mongocluster.cosmos.azure.com" 

az network private-dns zone create \
  --resource-group $ResourceGroupName \
  --name $zoneName 

az network private-dns link vnet create --resource-group $ResourceGroupName \
  --zone-name $zoneName \
  --name <dns-link-name> \
  --virtual-network $VNetName \
  --registration-enabled false 

#Create a DNS zone group
az network private-endpoint dns-zone-group create \
  --resource-group $ResourceGroupName \
  --endpoint-name <pe-name> \
  --name <zone-group-name> \
  --private-dns-zone $zoneName \
  --zone-name mongocluster 

Bağlanmak için bağlantı dizesi alma

Azure DocumentDB kümesine atanmış özel uç noktaya erişimi olan özel IP adresine sahip bir istemciden veritabanına bağlanmak için her zaman bağlantı dizesini kullanın mongodb+srv .

  1. Mevcut bir Azure DocumentDB kümesini seçin.
  2. Küme kenar çubuğunda, Ayarlar'ın altında Bağlantı dizeleri'ni seçin.
  3. Yerel DocumentDB kimlik doğrulaması veya Microsoft Entra Id kimlik doğrulaması için genel okuma-yazma veya kendi kendine bağlantı dizesini kopyalayın.

Note

Bir çoğaltma kümesinde yalnızca kendi kendine bağlantı dizeleri sağlanır.

  1. Kümeye bağlanmak için uygulamanızda veya yönetim araçlarınızda kopyalanan bağlantı dizesini kullanın.
az network private-link-resource list \
  -g <rg-name> \
  -n <resource-name> \
  --type Microsoft.DocumentDB/mongoClusters 

Özel uç nokta bağlantısını doğrulama ve sorunlarını giderme

Azure DocumentDB kümeniz için özel bir uç nokta oluşturduktan sonra, DNS çözümlemesinin düzgün çalıştığını ve uygulamalarınızın özel uç nokta üzerinden bağlanabildiğini doğrulamanız önemlidir.

Özel uç nokta durumunu doğrulama

İlk olarak, özel uç noktanın düzgün bir şekilde sağlandığını ve bağlandığını onaylayın:

  1. Azure portalında Azure DocumentDB kümenize gidin.
  2. Küme yan menüsünde, Ayarlar altından 'ı seçin.
  3. Listede özel uç noktanın Onaylandı durumunda göründüğünü doğrulayın.
  4. Atanan özel IP adresi de dahil olmak üzere ayrıntılarını görüntülemek için özel uç nokta adını seçin.

Özel uç nokta durumunu denetlemek için Azure CLI'yi de kullanabilirsiniz:

az network private-endpoint show \
  --resource-group $ResourceGroupName \
  --name $PrivateEndpointName

DNS çözümlemeyi test edin

Azure DocumentDB, bağlantı dizesi biçimini kullanırken mongodb+srv hizmet bulma için SRV kayıtlarını kullanır. DNS çözümlemesinin düzgün çalıştığını doğrulamak için, dns çözümlemesini aynı sanal ağ veya eşlenmiş ağ içindeki bir sanal makineden veya kaynaktan test edin.

Windows DNS testi

Sanal ağa bağlı bir Windows makinesinden aşağıdaki komutları kullanın:

  1. SRV kayıt çözümlemesini test edin:

    Resolve-DnsName -Name _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com -Type SRV
    

    Çıktıda özel DNS bölgesindeki küme düğümlerinize işaret eden SRV kayıtları gösterilmelidir.

  2. Özel IP adreslerine çözümlendiklerini doğrulamak için her bir düğüm ana bilgisayar adını çözümleyin.

    Resolve-DnsName -Name <your-node-hostname>.mongocluster.cosmos.azure.com
    

    Çıktıda genel IP adresleri yerine özel IP adresleri (örneğin, 10.x.x.x) görüntülenmelidir.

  3. Alternatif olarak kullanın nslookup :

    nslookup -type=SRV _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com
    nslookup <your-node-hostname>.mongocluster.cosmos.azure.com
    

Linux ve macOS DNS testi

Sanal ağa bağlı bir Linux veya macOS makinesinden aşağıdaki komutları kullanın:

  1. SRV kayıt çözümlemesini test edin:

    dig _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com SRV
    

    Çıktıda, hedefleri küme düğümlerinize işaret eden SRV kayıtları gösterilmelidir.

  2. Her bir düğüm konak adını çözümleyin.

    dig <your-node-hostname>.mongocluster.cosmos.azure.com
    

    A kayıtları, sanal ağınızın adres alanında özel IP adreslerine çözümlenmelidir.

  3. Alternatif olarak kullanın nslookup :

    nslookup -type=SRV _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com
    nslookup <your-node-hostname>.mongocluster.cosmos.azure.com
    

Yaygın sorun giderme senaryoları

Bağlantı sorunlarıyla karşılaşırsanız aşağıdakileri denetleyin:

DNS çözümlemesi başarısız oluyor veya genel IP adreslerini döndürüyor

  • Özel DNS bölgesinin sanal ağınıza doğru şekilde bağlandığını doğrulayın.
  • DNS bölge grubunun özel uç noktada düzgün yapılandırıldığını onaylayın.
  • Sanal ağınızın DNS ayarlarının Azure tarafından sağlanan DNS (168.63.129.16) veya sorguları Azure DNS'ye ileden özel bir DNS sunucusu kullanacak şekilde ayarlandığını denetleyin.
  • Sanal ağ içindeki bir kaynaktan veya düzgün eşlenmiş bir ağdan test ettiğinizden emin olun.

Bağlantı zaman aşımları veya hataları

  • Alt ağdaki Ağ Güvenlik Grubu (NSG) kurallarının 27017 numaralı bağlantı noktasında (MongoDB varsayılan bağlantı noktası) giden bağlantıya izin verdiğini doğrulayın.
  • Özel uç noktanın ağ arabirimine doğru özel IP adresinin atandığını onaylayın.
  • Uygulamanın veya istemcinin doğru bağlantı dizesi biçimini (mongodb+srv ) kullanıp kullanmadığını denetleyin.
  • Azure DocumentDB kümesindeki güvenlik duvarı kurallarının, özel uç noktadan gelen bağlantılara izin verdiğinden emin olun.

Özel DNS bölgesi çözümlenmiyor

  • Özel DNS bölgesi adının beklenen biçimle eşleştiklerini doğrulayın: privatelink.mongocluster.cosmos.azure.com.
  • Küme düğümleriniz için özel DNS bölgesinde A kayıtlarının mevcut olup olmadığını denetleyin.
  • Sanal ağ bağlantısının etkin olduğunu ve özel DNS bölgesinde düzgün yapılandırıldığını onaylayın.

Özel uç nokta ayrıntılarını görüntüleme

Özel uç nokta yapılandırmanız hakkında ayrıntılı bilgileri görüntülemek için aşağıdaki Azure CLI komutunu kullanın:

az network private-endpoint show \
  --resource-group $ResourceGroupName \
  --name $PrivateEndpointName \
  --query '{Name:name, PrivateIpAddress:customDnsConfigs[0].ipAddresses[0], FQDN:customDnsConfigs[0].fqdn, ProvisioningState:provisioningState}' \
  --output table

Bu komut, özel IP adresi, tam etki alanı adı (FQDN) ve sağlama durumu gibi önemli bilgileri görüntüler.