Büyük ölçekte Özel Bağlantı ve DNS tümleştirmesi

Bu makalede, PaaS hizmetleri için Azure Özel Bağlantı merkez-uç ağ mimarilerindeki Azure Özel DNS bölgeleriyle nasıl tümleştirilip tümleştirilene anlatılmaktadır.

Giriş

Birçok müşteri hub ve uç ağ mimarisini kullanarak Azure'da ağ altyapılarını oluşturur. Burada:

  • Ağ paylaşımlı hizmetler (ağ sanal gereçleri, ExpressRoute/VPN ağ geçitleri veya DNS sunucuları gibi) merkez sanal ağına (VNet) dağıtılır.
  • sanal ağlar, sanal ağ eşleme yoluyla paylaşılan hizmetleri kullanır.

Merkez-uç ağ mimarilerinde uygulama sahiplerine genellikle merkez sanal ağına bağlı bir sanal ağ () içeren bir Azure aboneliği sağlanır. Bu mimaride sanal makinelerini dağıtabilir ve ExpressRoute veya VPN yoluyla diğer sanal ağlara veya şirket içi ağlara özel bağlantı sahibi olabilirler.

Azure Güvenlik Duvarı gibi bir merkezi ağ sanal gereci (NVA), İnternet'e giden bağlantı sağlar.

Birçok uygulama ekibi, Azure IaaS ve PaaS kaynaklarının bir bileşimini kullanarak çözümlerini oluşturur. Bazı Azure PaaS hizmetleri (SQL Yönetilen Örneği gibi) müşteri sanal ağlarına dağıtılabilir. Sonuç olarak, trafik Azure ağı içinde özel kalır ve şirket içinden tamamen yönlendirilebilir.

Ancak bazı Azure PaaS hizmetleri (Azure Depolama veya Azure Cosmos DB gibi) müşterinin sanal ağlarına dağıtılamaz ve genel uç noktaları üzerinden erişilebilir. Bazı durumlarda bu yapılandırma müşterinin güvenlik ilkeleriyle çekişmelere neden olur. Şirket trafiği, genel uç noktalar üzerinden şirket kaynaklarının (SQL veritabanı gibi) dağıtımına veya erişimine izin vermeyebilir.

Azure Özel Bağlantı özel uç noktalar üzerinden Azure hizmetleri listesine erişimi destekler, ancak bu özel uç nokta kayıtlarını ilgili özel DNS bölgesine kaydetmeniz gerekir.

Bu makalede, uygulama ekiplerinin aboneliklerinde yalnızca özel uç noktalar üzerinden erişilebilen Azure PaaS hizmetlerini nasıl dağıtabilecekleri açıklanmaktadır.

Bu makalede, uygulama ekiplerinin hizmetlerin özel DNS bölgeleriyle otomatik olarak tümleştirilmesini nasıl sağlayabileceğiniz de açıklanır. Otomasyonu Azure Özel DNS aracılığıyla yapar ve bu da DNS'de kayıtları el ile oluşturma veya silme gereksinimini ortadan kaldırır.

Özel DNS bölgeleri genellikle merkez sanal net'in dağıtıldığı azure aboneliğinde merkezi olarak barındırılır. Bu merkezi barındırma uygulaması, şirket içi dns ad çözümlemesi ve Active Directory gibi merkezi DNS çözümlemesi için diğer gereksinimler tarafından yönlendirilir. Çoğu durumda, yalnızca ağ ve kimlik yöneticilerinin bölgelerdeki DNS kayıtlarını yönetme izinleri vardır.

Uygulama ekiplerinin kendi aboneliklerinde Azure kaynağı oluşturma izinleri vardır. Merkezi ağ bağlantısı aboneliğinde, özel DNS bölgelerindeki DNS kayıtlarını yönetmeyi içeren herhangi bir izni yoktur. Bu erişim sınırlaması, Azure PaaS hizmetlerini özel uç noktalarla dağıtırken gereken DNS kayıtlarını oluşturamadıkları anlamına gelir.

Aşağıdaki diyagramda, merkezi DNS çözümlemesi olan ve Özel Bağlantı kaynaklar için ad çözümlemesinin Azure Özel DNS aracılığıyla yapıldığı kurumsal ortamlar için tipik bir üst düzey mimari gösterilmektedir:

A diagram of a high-level architecture with central DNS resolution and name resolution for Private Link resources.

Önceki diyagramda şunları vurgulamak önemlidir:

  • Şirket içi DNS sunucularının her özel uç nokta genel DNS bölgesi için yapılandırılmış koşullu ileticileri vardır ve merkez sanal ağında barındırılan Özel DNS Çözümleyicisi'ne işaret eder.
  • Merkez sanal akında barındırılan Özel DNS Çözümleyicisi, iletici olarak Azure tarafından sağlanan DNS'yi (168.63.129.16) kullanır.
  • Hub sanal ağı, Azure hizmetlerinin (diyagramda gösterildiği gibi gibiprivatelink.blob.core.windows.net) Özel DNS bölge adlarına bağlanmalıdır.
  • Tüm Azure sanal ağları, merkez sanal asında barındırılan Özel DNS Çözümleyici'yi kullanır
  • Özel DNS Çözümleyicisi müşterinin şirket etki alanları için yetkili olmadığından, Yalnızca bir iletici olduğundan (örneğin, Active Directory etki alanı adları), şirket içi DNS Sunucularına (172.16.1.10 ve 172.16.1.11) veya Azure'da dağıtılan ve bu bölgeler için yetkili olan DNS sunucularına işaret eden giden uç nokta ileticileri olmalıdır.

Önceki diyagramda tek bir merkez-uç mimarisi gösterilmiş olsa da müşterilerin dayanıklılık, yakınlık veya veri yerleşimi gereksinimlerini karşılamak için Azure ayak izinin birden çok bölgeye genişletilmesi gerekebilir. Aynı Özel Bağlantı özellikli PaaS örneğine birden çok Özel Uç Nokta (PE) üzerinden erişilmesi gereken çeşitli senaryolar ortaya çıkmıştır.

A diagram of a high-level architecture with central DNS resolution and name resolution for Private Link resources in multi region.

Aşağıdaki diyagramda, Özel Bağlantı kaynaklar için ad çözümlemesinin Azure Özel DNS aracılığıyla yapıldığı merkezdeki (bölge başına bir) merkezi DNS çözümlemesi dağıtılan kurumsal ortamlar için tipik bir üst düzey mimari gösterilmektedir.

İstemcilerin bulunduğu her bölgede bir tane olmak üzere PaaS örneğiyle ilişkili birden çok bölgesel özel uç noktanın dağıtılması, bölge başına Özel Bağlantı ve Özel DNS Bölgeleri'ni etkinleştirmeniz önerilir. Yerleşik DR özelliklerine (coğrafi olarak yedekli depolama hesapları, SQL DB yük devretme grupları vb.) sahip PaaS hizmetleriyle çalışırken birden çok bölge Özel Uç Noktası zorunlu olur.

Bu senaryo, şu anda bunlar için otomatik yaşam döngüsü yönetimi olmadığından, her bölgede ayarlanan Özel Bağlantı DNS kaydının el ile bakımını/güncelleştirmelerini gerektirir.

Diğer kullanım örnekleri için tek bir genel Özel Uç Nokta dağıtılabilir ve ilgili bölgelerden tek bir bölgedeki tek Özel Uç Noktaya yönlendirme eklenerek tüm istemciler tarafından erişilebilir hale getirilebilir.

Çözümlemeyi ve dolayısıyla şirket içi ağlardan özel DNS bölgesine ve özel uç noktalara bağlantıyı etkinleştirmek için privatelink DNS altyapısında uygun DNS yapılandırmasının (koşullu ileticiler vb.) sağlanması gerekir.

Uygulama ekiplerinin aboneliklerinde gerekli Azure PaaS kaynaklarını oluşturması için geçerli olması gereken iki koşul vardır:

  • Merkezi ağ ve/veya merkezi platform ekibi, uygulama ekiplerinin yalnızca özel uç noktalar aracılığıyla Azure PaaS hizmetlerini dağıtabildiğinden ve bunlara erişebildiğinden emin olmalıdır.
  • Merkezi ağ ve/veya merkezi platform ekipleri, özel uç noktalar oluşturduğunuzda ilgili kayıtların nasıl işleneceğini ayarlamaları gerekir. İlgili kayıtları, oluşturulan hizmetle eşleşen merkezi özel DNS bölgesinde otomatik olarak oluşturulacak şekilde ayarlayın.
  • DNS kayıtlarının özel uç noktanın yaşam döngüsünü izlemesi gerekir; bu durumda, özel uç nokta silindiğinde otomatik olarak kaldırılır.

Not

Azure Güvenlik Duvarı ve Güvenlik Duvarı ilkesinde DNS çözümlemesine dayalı ağ kurallarındaki FQDN'lerin kullanılması gerekiyorsa (Bu özellik, NTP, SSH, RDP ve daha fazlası dahil olmak üzere tüm TCP/UDP protokolleriyle giden trafiği filtrelemenize olanak tanır). ağ kurallarınızda FQDN'leri kullanmak için Azure Güvenlik Duvarı DNS Ara Sunucusu'nu etkinleştirmeniz gerekir, ardından bu uç sanal ağları özel DNS sunucusundan DNS ara sunucusuna Azure Güvenlik Duvarı DNS ayarlarını değiştirmeye zorlanır. Uç sanal ağın DNS ayarlarının değiştirilmesi, bu sanal ağın içindeki tüm VM'lerin yeniden başlatılmasını gerektirir.

Aşağıdaki bölümlerde, uygulama ekiplerinin Azure İlkesi kullanarak bu koşulları nasıl etkinleştirdiği açıklanmaktadır. Örnek, uygulama ekiplerinin dağıtması gereken Azure hizmeti olarak Azure Depolama kullanır. Ancak aynı ilke, Özel Bağlantı destekleyen çoğu Azure hizmeti için de geçerlidir.

Platform ekibinin gerektirdiği yapılandırma

Platform ekibi yapılandırma gereksinimleri arasında özel DNS bölgeleri oluşturma, ilke tanımlarını ayarlama, ilkeleri dağıtma ve ilke atamalarını ayarlama yer alır.

Özel DNS bölgeleri oluşturma

Desteklenen Özel Bağlantı hizmetleri için merkezi bağlantı aboneliğinde özel DNS bölgeleri oluşturun. Daha fazla bilgi için bkz. Azure Özel Uç Nokta DNS yapılandırması.

Bu örnekte blob ile Depolama hesabı verilmiştir. Bağlantı aboneliğinde özel bir privatelink.blob.core.windows.net DNS bölgesi oluşturmaya çevrilir.

A screenshot that shows the private DNS zone in the connectivity subscription.

İlke tanımları

Özel DNS bölgelerine ek olarak, bir dizi özel Azure İlkesi tanımı da oluşturmanız gerekir. Bu tanımlar özel uç noktaların kullanımını zorunlu tutar ve oluşturduğunuz DNS bölgesinde DNS kaydını oluşturmayı otomatikleştirir:

  1. Deny PaaS hizmetleri ilkesi için genel uç nokta.

    Bu ilke, kullanıcıların ortak uç noktalarla Azure PaaS hizmetleri oluşturmasını engeller ve kaynağı oluştururken özel uç noktayı seçmezse onlara bir hata iletisi verir.

    A screenshot that shows the public endpoint for all networks option selected.

    A screenshot that shows the error message that results from picking a public endpoint.

    A screenshot that shows the full error details from picking a public endpoint.

    Tam ilke kuralı PaaS hizmetleri arasında farklılık gösterebilir. Azure Depolama hesapları için, ortak ağlardan gelen isteklere izin verilip verilmeyeceğini tanımlayan networkAcls.defaultAction özelliğine bakın. Bu durumda, Microsoft.Depolama oluşturmayı reddedecek bir koşul ayarlayınnetworkAcls.defaultAction özelliği değilse Deny/storageAccounts kaynak türü. Aşağıdaki ilke tanımı davranışı gösterir:

    {
      "mode": "All",
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Storage/storageAccounts"
            },
            {
              "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction",
              "notEquals": "Deny"
            }
          ]
        },
        "then": {
          "effect": "Deny"
        }
      }
    }
    
  2. Deny ön ek ilkesiyle privatelink özel bir DNS bölgesi oluşturma olanağı.

    Platform ekibi tarafından yönetilen aboneliklerde barındırılan koşullu iletici ve özel DNS bölgeleriyle merkezi bir DNS mimarisi kullanın. Uygulama ekipleri sahiplerinin kendi Özel Bağlantı özel DNS bölgelerini oluşturmalarını ve hizmetleri aboneliklerine bağlamalarını önlemek gerekir.

    Uygulama ekibiniz özel bir uç nokta oluşturduğunda seçeneğinin Integrate with private DNS zone Azure portalında olarak ayarlandığından No emin olun.

    A screenshot that shows the Integrate with private DNS zone option set to no in the Azure portal.

    öğesini seçerseniz YesAzure İlkesi özel uç nokta oluşturmanızı engeller. İlke tanımında, bölge ön ekine sahipse privatelink Microsoft.Network/privateDnsZones kaynak türünü oluşturma özelliğini reddeder. Aşağıdaki ilke tanımı ön privatelink eki gösterir:

    {
      "description": "This policy restricts creation of private DNS zones with the `privatelink` prefix",
      "displayName": "Deny-PrivateDNSZone-PrivateLink",
      "mode": "All",
      "parameters": null,
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Network/privateDnsZones"
            },
            {
              "field": "name",
              "contains": "privatelink."
            }
          ]
        },
        "then": {
          "effect": "Deny"
        }
      }
    }
    
  3. DeployIfNotExists ilkesini kullanarak merkezi özel DNS bölgesinde gerekli DNS kaydını otomatik olarak oluşturun.

    Aşağıdaki ilke örneklerinde privateDNSZoneGroup , Özel Uç Nokta üzerinde oluşturulan iki yaklaşım gösterilmektedir.

    İlk ilke, ikinci ilke hem hem groupIDde privateLinkServiceId kullanırken öğesine dayanırgroupId. Başka bir kaynakla çakışmak groupId (çakışmak) için ikinci ilkeyi kullanın.

    Örneğin, groupIdSQL hem Cosmos DB hem de Synapse Analytics için kullanılır. Her iki kaynak türü de dağıtılırsa ve özel uç nokta girişinde öğesini oluşturmak privateDNSZoneGroup için ilk ilke atanmışsa, Cosmos DB veya Synapse Analytics'in yanlış Özel DNS Bölgesi oluşturulur ve eşlenir. Ardından, ilk ilkenin ilke kuralında arayabileceği çakışma groupId nedeniyle bölgelerin her biri arasında geçiş yapar.

    Özel bağlantı kaynaklarının groupIdlistesi için Özel uç nokta nedir? altındaki alt kaynaklar sütununa bakın.

İpucu

Azure İlkesi yerleşik tanımlar sürekli ekleniyor, siliniyor ve güncelleştiriliyor. Yerleşik ilkeleri kullanmanız ve kendi ilkelerinizi yönetmeniz (varsa) kesinlikle önerilir. Aşağıdaki adı ' xxx... olan mevcut yerleşik ilkeleri bulmak için AzPolicyAdvertizer'ı kullanın. özel DNS bölgelerini kullanmak için. Buna ek olarak, Azure Giriş Bölgeleri 'nin (ALZ) yerleşik ilkeleri içeren ve düzenli olarak güncelleştirilen özel DNS bölgelerini kullanmak için Azure PaaS hizmetlerini yapılandırma adlı bir ilke girişimi vardır. Yerleşik bir ilke sizin durumunuz için kullanılamıyorsa Azure İdaresi geri bildirim sitesinde sorun azure-policy oluşturmayı göz önünde bulundurun · Azure İlkesi GitHub deposundaki Yeni yerleşik İlke Teklifleri işlemini izleyen topluluk.

İlke DeployIfNotExists - Yalnızca üzerinde groupId eşleştirme

Hizmete özgü groupIdbir özel uç nokta kaynağı oluşturursanız bu ilke tetikler. groupId, bu özel uç noktanın bağlanması gereken uzak kaynaktan (hizmet) alınan grubun kimliğidir. Ardından özel uç nokta içinde bir dağıtımı privateDNSZoneGroup tetikler ve özel uç noktayı özel DNS bölgesiyle ilişkilendirir. Örnekte Azure groupId Depolama blobları için şeklindedirblob. Diğer Azure hizmetleri hakkında groupId daha fazla bilgi için Alt Kaynak sütununun altındaki Azure Özel Uç Nokta DNS yapılandırması bölümüne bakın. İlke özel uç noktada öğesini bulduğunda groupId , özel uç nokta içinde bir privateDNSZoneGroup dağıtır ve bunu parametre olarak belirtilen özel DNS bölgesi kaynak kimliğine bağlar. Örnekte, özel DNS bölgesi kaynak kimliği şöyledir:

/subscriptions/<subscription-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/privateDnsZones/privatelink.blob.core.windows.net

Aşağıdaki kod örneği ilke tanımını gösterir:

{
  "mode": "Indexed",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Network/privateEndpoints"
        },
        {
          "count": {
            "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]",
            "where": {
              "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]",
              "equals": "blob"
            }
          },
          "greaterOrEquals": 1
        }
      ]
    },
    "then": {
      "effect": "deployIfNotExists",
      "details": {
        "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
        "roleDefinitionIds": [
          "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7"
        ],           
        "deployment": {
          "properties": {
            "mode": "incremental",
            "template": {
              "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
              "contentVersion": "1.0.0.0",
              "parameters": {
                "privateDnsZoneId": {
                  "type": "string"
                },
                "privateEndpointName": {
                  "type": "string"
                },
                "location": {
                  "type": "string"
                }
              },
              "resources": [
                {
                  "name": "[concat(parameters('privateEndpointName'), '/deployedByPolicy')]",
                  "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
                  "apiVersion": "2020-03-01",
                  "location": "[parameters('location')]",
                  "properties": {
                    "privateDnsZoneConfigs": [
                      {
                        "name": "storageBlob-privateDnsZone",
                        "properties": {
                          "privateDnsZoneId": "[parameters('privateDnsZoneId')]"
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "parameters": {
              "privateDnsZoneId": {
                "value": "[parameters('privateDnsZoneId')]"
              },
              "privateEndpointName": {
                "value": "[field('name')]"
              },
              "location": {
                "value": "[field('location')]"
              }
            }
          }
        }
      }
    }
  },
  "parameters": {
    "privateDnsZoneId": {
      "type": "String",
      "metadata": {
        "displayName": "privateDnsZoneId",
        "strongType": "Microsoft.Network/privateDnsZones"
      }
    }
  }
}

İkinci DeployIfNotExists İlke - & üzerinde groupId eşleştirme privateLinkServiceId

Hizmete özgü groupId ve privateLinkServiceIdile özel bir uç nokta kaynağı oluşturursanız bu ilke tetikler. groupId, bu özel uç noktanın bağlanması gereken uzak kaynaktan (hizmet) alınan grubun kimliğidir. privateLinkServiceId, bu özel uç noktanın bağlanması gereken uzak kaynağın (hizmetin) kaynak kimliğidir. Ardından, özel uç nokta içinde özel uç noktayı özel DNS bölgesiyle ilişkilendiren bir privateDNSZoneGroup dağıtımı tetikleyin.

Örnekte Azure groupId Cosmos DB (SQL) için değeri ve SQLprivateLinkServiceId içermelidir Microsoft.DocumentDb/databaseAccounts. ve diğer Azure hizmetleri hakkında groupId daha fazla bilgi için Alt Kaynak sütununun altındaki Azure Özel Uç Nokta DNS yapılandırması bölümüne bakın.privateLinkServiceId İlke özel uç noktayı bulduğunda groupId ve privateLinkServiceId özel uç nokta içinde bir privateDNSZoneGroup dağıtır. Ve parametre olarak belirtilen özel DNS bölgesi kaynak kimliğine bağlanır. Aşağıdaki ilke tanımı özel DNS bölgesi kaynak kimliğini gösterir:

/subscriptions/<subscription-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/privateDnsZones/privatelink.documents.azure.com

Aşağıdaki kod örneği ilke tanımını gösterir:

{
  "mode": "Indexed",
  "policyRule": {
    "if": {
     "allOf": [
       {
         "field": "type",
         "equals": "Microsoft.Network/privateEndpoints"
       },
       {
         "count": {
           "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*]",
           "where": {
             "allOf": [
               {
                 "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].privateLinkServiceId",
                 "contains": "Microsoft.DocumentDb/databaseAccounts"
               },
               {
                 "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]",
                 "equals": "[parameters('privateEndpointGroupId')]"
               }
             ]
           }
         },
         "greaterOrEquals": 1
       }
     ]
   },
    "then": {
      "effect": "[parameters('effect')]",
      "details": {
        "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
        "roleDefinitionIds": [
          "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7"
        ],           
        "deployment": {
          "properties": {
            "mode": "incremental",
            "template": {
              "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
              "contentVersion": "1.0.0.0",
              "parameters": {
                "privateDnsZoneId": {
                  "type": "string"
                },
                "privateEndpointName": {
                  "type": "string"
                },
                "location": {
                  "type": "string"
                }
              },
              "resources": [
                {
                  "name": "[concat(parameters('privateEndpointName'), '/deployedByPolicy')]",
                  "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
                  "apiVersion": "2020-03-01",
                  "location": "[parameters('location')]",
                  "properties": {
                    "privateDnsZoneConfigs": [
                      {
                        "name": "cosmosDB-privateDnsZone",
                        "properties": {
                          "privateDnsZoneId": "[parameters('privateDnsZoneId')]"
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "parameters": {
              "privateDnsZoneId": {
                "value": "[parameters('privateDnsZoneId')]"
              },
              "privateEndpointName": {
                "value": "[field('name')]"
              },
              "location": {
                "value": "[field('location')]"
              }
            }
          }
        }
      }
    }
  },
  "parameters": {
     "privateDnsZoneId": {
       "type": "String",
       "metadata": {
         "displayName": "Private Dns Zone Id",
         "description": "The private DNS zone to deploy in a new private DNS zone group and link to the private endpoint",
         "strongType": "Microsoft.Network/privateDnsZones"
       }
     },
     "privateEndpointGroupId": {
       "type": "String",
       "metadata": {
         "displayName": "Private Endpoint Group Id",
         "description": "A group Id for the private endpoint"
       }
     },
     "effect": {
       "type": "String",
       "metadata": {
         "displayName": "Effect",
         "description": "Enable or disable the execution of the policy"
       },
       "allowedValues": [
         "DeployIfNotExists",
         "Disabled"
       ],
       "defaultValue": "DeployIfNotExists"
     }
  }
}

İlke atamaları

İlke tanımları dağıtıldıktan sonra, ilkeleri yönetim grubu hiyerarşinizde istediğiniz kapsamda atayın. İlke atamalarının, uygulama ekiplerinin PaaS hizmetlerini özel uç nokta erişimiyle özel olarak dağıtmak için kullandığı Azure aboneliklerini hedeflediğinden emin olun.

Önemli

İlkede tanımlanan roleDefinition atamasına ek olarak, özel DNS bölgelerinin barındırıldığı abonelik ve kaynak grubunda Özel DNS Bölge Katılımcısı rolü rolünü, özel DNS bölgesinde özel uç nokta DNS kaydını oluşturmak ve yönetmekle sorumlu olacak ilke ataması tarafından DeployIfNotExists oluşturulan yönetilen kimliğe atamayı unutmayın. Bunun nedeni, özel uç noktanın uygulama sahibi Azure aboneliğinde, özel DNS bölgesinin ise farklı bir abonelikte (merkezi bağlantı aboneliği gibi) bulunmasıdır.

Platform ekibi yapılandırmayı tamamladıktan sonra:

  • Uygulama ekiplerinin Azure abonelikleri, ekibin özel uç nokta erişimine sahip Azure PaaS hizmetlerini oluşturması için hazırdır.
  • Ekip, özel uç noktaların DNS kayıtlarının ilgili özel DNS bölgelerinden otomatik olarak kaydedildiğinden (ve özel uç nokta silindikten sonra kaldırıldıktan) emin olmalıdır.

Uygulama sahibi deneyimi

Platform ekibi platform altyapısı bileşenlerini (özel DNS bölgeleri ve ilkeleri) dağıttığında, uygulama sahibi Azure aboneliğine bir Azure PaaS hizmeti dağıtmaya çalıştığında aşağıdaki deneyime sahiptir. Abonelikleri Azure ilkeleri idare ettiğinden bu deneyim, etkinliklerini Azure portalı veya PowerShell veya CLI gibi diğer istemciler aracılığıyla gerçekleştirse de aynıdır.

  1. Azure portalı üzerinden bir depolama hesabı oluşturun. Temel Bilgiler sekmesinde istediğiniz ayarları seçin, depolama hesabınız için bir ad girin ve İleri'yi seçin.

    A screenshot that shows the Basics tab and options for creating your storage account in the Azure portal.

  2. Ağ sekmesinde Özel uç nokta'yı seçin. Özel uç nokta dışında bir seçenek belirtirseniz Azure portalı, dağıtım sihirbazının Gözden Geçir ve oluştur bölümünde depolama hesabı oluşturmanıza izin vermez. İlke, genel uç nokta etkinse bu hizmeti oluşturmanızı engeller.

    A screenshot that shows the Networking tab and the private endpoints option.

  3. Özel uç noktayı şimdi veya depolama hesabını oluşturduktan sonra oluşturabilirsiniz. Bu örnekte, depolama hesabı oluşturulduktan sonra özel uç noktanın oluşturulması gösterilmektedir. Adımı tamamlamak için Gözden geçir + oluştur'u seçin.

  4. Depolama hesabını oluşturduktan sonra Azure portalı aracılığıyla özel bir uç nokta oluşturun.

    A screenshot that shows the private endpoints settings.

  5. Kaynak bölümünde, önceki adımda oluşturduğunuz depolama hesabını bulun. Hedef alt kaynak altında Blob'a ve ardından İleri'ye tıklayın.

    A screenshot that shows the Resources tab for selecting the target subresource.

  6. Yapılandırma bölümünde, sanal ağınızı ve alt ağınızı seçtikten sonra Özel DNS bölgesiyle tümleştir seçeneğinin Hayır olarak ayarlandığından emin olun. Aksi takdirde, Azure portalı özel uç nokta oluşturmanızı engeller. Azure İlkesi ön ekine sahip bir özel DNS bölgesi oluşturmanıza privatelink izin vermez.

    A screenshot that shows the Configuration tab for setting the integrate with private DNS zone option to no.

  7. Gözden geçir ve oluştur'u ve ardından Oluştur'u seçerek özel uç noktayı dağıtın.

  8. Birkaç dakika DeployIfNotExists sonra ilke tetikler. Sonraki dnsZoneGroup dağıtım, merkezi olarak yönetilen DNS bölgesinde özel uç nokta için gerekli DNS kayıtlarını ekler.

  9. Özel uç noktayı oluşturduktan sonra seçin ve FQDN'sini ve özel IP'sini gözden geçirin:

    A screenshot that shows where to review the private endpoint, FQDN, and private IP.

  10. Özel uç noktanın oluşturulduğu kaynak grubunun etkinlik günlüğünü denetleyin. İsterseniz özel uç noktanın etkinlik günlüğünü de de kontrol edebilirsiniz. Birkaç dakika sonra bir DeployIfNotExist ilke eyleminin çalıştığını ve özel uç noktada DNS bölge grubunu yapılandırdığını fark edeceksiniz:

    A screenshot that shows the activity log for the resource group and the private endpoint.

  11. Merkezi ağ ekibi özel DNS bölgesine giderse privatelink.blob.core.windows.net , oluşturduğunuz özel uç nokta için DNS kaydının orada olduğunu ve hem ad hem de IP adresinin özel uç nokta içindeki değerlerle eşleşip eşleşmediğini onaylar.

    A screenshot that shows the private DNS zone and where to confirm that the DNS record exists.

Bu noktada, uygulama ekipleri depolama hesabını merkez-uç ağ ortamındaki herhangi bir sanal ağdan ve şirket içinden özel bir uç nokta üzerinden kullanabilir. DNS kaydı, özel DNS bölgesine otomatik olarak kaydedilir.

Bir uygulama sahibi özel uç noktayı silerse, özel DNS bölgesindeki ilgili kayıtlar otomatik olarak kaldırılır.

Sonraki adımlar

Şirket içi ve Azure kaynakları için DNS'i gözden geçirin. Sanal makine uzaktan erişimi için plan'ı gözden geçirin.

Önemli

Bu makalede, Yönetim Grubuna atanan DINE (DeployIfNotExists) ilkelerini kullanarak dns ve özel bağlantı tümleştirmesi büyük ölçekte özetlenmektedir. Bu, ilkeler tarafından işlendiği için bu yaklaşımla Özel Uç Noktalar oluştururken kodda DNS tümleştirmesini işlemeye gerek olmadığı anlamına gelir. Ayrıca uygulama ekiplerinin merkezi Özel DNS Bölgelerine de RBAC erişimi olması olası değildir.

Aşağıda, Bicep ve HashiCorp Terraform ile Özel Uç Nokta oluştururken gözden geçirmenizi sağlayan yararlı bağlantılar yer almaktadır.

Kod Olarak Altyapı ile Özel Uç Nokta oluşturma için:

Ancak Kod Olarak Altyapı araçlarınızda özel uç noktalar oluşturmaya devam edebilirsiniz. Ancak, bu makalede açıklanan DINE ilke yaklaşımını kullanıyorsanız, DNS tümleştirmesini kodunuzun dışında bırakmanız ve bunun yerine Özel DNS Bölgeleri için gerekli RBAC'ye sahip DINE ilkelerinin bunu işlemesine izin vermelisiniz.