Aracılığıyla paylaş


Azure HDInsight'ta genel bağlantıyı kısıtlama

Azure HDInsight'ın varsayılan sanal ağ mimarisinde , HDInsight kaynak sağlayıcısı genel ağ üzerinden kümeyle iletişim kurar. Bu makalede, gelen bağlantının özel bir ağ ile sınırlı olduğu kısıtlı bir HDInsight kümesi oluşturmak için kullanabileceğiniz gelişmiş denetimler hakkında bilgi edinebilirsiniz.

HDInsight kümenizle bağımlı kaynaklar arasında genel bağlantı istiyorsanız, Azure HDInsight'ta ağ trafiğini denetleme yönergelerini izleyerek kümenizin bağlantısını kısıtlamayı göz önünde bulundurun. Genel bağlantıyı kısıtlamaya ek olarak, HDInsight kümeleriyle kullanmak üzere Azure Özel Bağlantı etkin bağımlılık kaynaklarını yapılandırabilirsiniz.

Aşağıdaki diyagramda, giden olarak ayarlandığında olası bir HDInsight sanal ağ mimarisinin nasıl görünebileceği resourceProviderConnection gösterilmektedir:

Giden kaynak sağlayıcısı bağlantısı kullanan HDInsight mimarisinin diyagramı.

Not

Genel bağlantıyı kısıtlamak, Özel Bağlantı etkinleştirmenin önkoşullarıdır ve aynı özellik olarak değerlendirilmemelidir.

Kısıtlanmış küme başlatma

Varsayılan olarak, HDInsight kaynak sağlayıcısı genel IP adreslerini kullanarak kümeye gelen bir bağlantı kullanır. resourceProviderConnection Ağ özelliği giden olarak ayarlandığında, HDInsight kaynak sağlayıcısına bağlantıları tersine çevirir, böylece bağlantılar her zaman kümenin içinden başlatılır ve kaynak sağlayıcısına gider.

Bu yapılandırmada, gelen bağlantı olmadan ağ güvenlik grubunda gelen hizmet etiketlerini yapılandırmanız gerekmez. Ayrıca kullanıcı tanımlı yollar aracılığıyla güvenlik duvarını veya ağ sanal gerecini atlamanız gerekmez.

Not

Microsoft Azure Kamu uygulamaları, ağ güvenlik grubundaki ve kullanıcı tanımlı yollardaki gelen hizmet etiketlerini yine de gerektirebilir.

Kümenizi oluşturduktan sonra, kısıtlı HDInsight kümeniz için gereken DNS kayıtlarını ekleyerek uygun DNS çözümlemesini ayarlayın. Azure tarafından yönetilen genel DNS bölgesinde aşağıdaki kurallı ad DNS kaydı (CNAME) oluşturulur: azurehdinsight.net.

<clustername>    CNAME    <clustername>-int

Kümeye tam etki alanı adlarını (FQDN' ler) kullanarak erişmek için, gereksinimlerinize uygun şekilde bu tekniklerden birini kullanabilirsiniz:

  • İç yük dengeleyicinin özel IP adreslerini doğrudan kullanın.
  • Küme uç noktalarını geçersiz kılmak için kendi özel DNS bölgenizi kullanın. Bu durumda, bölge adı olmalıdır azurehdinsight.net.

Örneğin, özel DNS bölgeniz azurehdinsight.netiçin özel IP adreslerinizi gerektiği gibi ekleyebilirsiniz:

<clustername>        A   10.0.0.1
<clustername-ssh>    A   10.0.0.2

Not

Kısıtlanmış kümeleri genel bağlantının etkinleştirildiği diğer kümelerle aynı sanal ağa (için azurehdinsight.netözel DNS bölgesi ile) yerleştirmenizi önermeyiz. İstenmeyen DNS çözümleme davranışına veya çakışmalara neden olabilir.

DNS kurulumunuzu kolaylaştırmak için FQDN'leri ve karşılık gelen özel IP adreslerini küme GET yanıtının bir parçası olarak döndüreceğiz. Başlamak için bu PowerShell kod parçacığını kullanabilirsiniz:

<#
    This script is an example to help you get started with automation and can be adjusted based on your needs.
    This script assumes:
    - The HDInsight cluster has already been created, and the context where this script is run has permissions to read/write resources in the same resource group.
    - The private DNS zone resource exists in the same subscription as the HDInsight cluster.
We recommend that you use the latest version of the Az.HDInsight module.

#>
$subscriptionId = "<Replace with subscription for deploying HDInsight clusters, and containing private DNS zone resource>"

$clusterName = "<Replace with cluster name>"
$clusterResourceGroupName = "<Replace with resource group name>"

# For example, azurehdinsight.net for public cloud.
$dnsZoneName = "<Replace with private DNS zone name>"
$dnsZoneResourceGroupName = "<Replace with private DNS zone resource group name>"

Connect-AzAccount -SubscriptionId $subscriptionId

# 1. Get cluster endpoints
$clusterEndpoints = $(Get-AzHDInsightCluster -ClusterName $clusterName ` -ResourceGroupName $clusterResourceGroupName).ConnectivityEndpoints

$endpointMapping = @{}

foreach($endpoint in $clusterEndpoints)
{
    $label = $endpoint.Location.ToLower().Replace(".$dnsZoneName".ToLower(), "")
    $ip = $endpoint.PrivateIPAddress

    $endpointMapping.Add($label, $ip)
}

# 2. Confirm that the DNS zone exists.
Get-AzPrivateDnsZone -ResourceGroupName $dnsZoneResourceGroupName -Name $dnsZoneName -ErrorAction Stop

# 3. Update DNS entries for the cluster in the private DNS zone:
#    - If the entries already exist, update to the new IP.
#    - If the entries don't exist, create them.
$recordSets = Get-AzPrivateDnsRecordSet -ZoneName $dnsZoneName -ResourceGroupName $dnsZoneResourceGroupName -RecordType A

foreach($label in $endpointMapping.Keys)
{
    $updateRecord = $null

    foreach($record in $recordSets)
    {
        if($record.Name -eq $label)
        {
            $updateRecord = $record
            break;
        }
        
    }

    if($null -ne $updateRecord)
    {
        $updateRecord.Records[0].Ipv4Address = $endpointMapping[$label]
        Set-AzPrivateDnsRecordSet -RecordSet $updateRecord | Out-Null
    }
    else
    {
        New-AzPrivateDnsRecordSet `
            -ResourceGroupName $dnsZoneResourceGroupName `
            -ZoneName $dnsZoneName `
            -Name $label `
            -RecordType A `
            -Ttl 3600 `
            -PrivateDnsRecord (New-AzPrivateDnsRecordConfig -Ipv4Address $endpointMapping[$label]) | Out-Null
    }
}

Giden olarak yapılandırmakresourceProviderConnection, özel uç noktaları kullanarak kümeye özgü kaynaklara erişmenizi de sağlar. Bu kaynaklar şunlardır:

  • Depolama: Azure Data Lake Storage 2. Nesil ve Azure Blob Depolama
  • SQL meta veri depoları: Apache Ranger, Ambari, Oozie ve Hive
  • Azure Key Vault

Bu kaynaklar için özel uç noktaların kullanılması zorunlu değildir. Ancak bu kaynaklar için özel uç noktaları kullanmayı planlıyorsanız, HDInsight kümesini oluşturmadan önce kaynakları oluşturmanız ve özel uç noktaları ve DNS girişlerini yapılandırmanız gerekir. Tüm bu kaynaklara özel uç nokta üzerinden veya başka bir şekilde küme alt ağından erişilebilir olmalıdır. Özel uç nokta kullanmayı planlıyorsanız küme alt a alanından yararlanmanız önerilir.

Özel uç nokta üzerinden Azure Data Lake Storage 2. Nesil bağlandığınızda, 2. Nesil depolama hesabının hem hem de blobdfsiçin ayarlanmış bir uç noktası olduğundan emin olun. Daha fazla bilgi için bkz. Özel uç nokta oluşturma.

Güvenlik duvarı kullanma (isteğe bağlı)

HDInsight kümeleri giden bağımlılıkları almak için genel İnternet'e bağlanmaya devam edebilir. Erişimi kısıtlamak istiyorsanız bir güvenlik duvarı yapılandırabilirsiniz, ancak bu bir gereksinim değildir.

Küme oluşturma

Aşağıdaki JSON kod parçacığı, özel bir HDInsight kümesi oluşturmak için Azure Resource Manager şablonunuzda yapılandırmanız gereken iki ağ özelliğini içerir:

networkProperties: {
    "resourceProviderConnection": "Outbound"
}

Özel Bağlantı dahil olmak üzere birçok HDInsight kurumsal güvenlik özelliğine sahip eksiksiz bir şablon için bkz. HDInsight kurumsal güvenlik şablonu.

PowerShell kullanarak küme oluşturmak için örne bakın.

Azure CLI kullanarak küme oluşturmak için örne bakın.

Sonraki adımlar