Share via


啟用 HDInsight 叢集上的 Private Link

在本文中,您會了解如何使用 Azure Private Link 透過 Microsoft 骨幹網路的網路,私人連線至 HDInsight 叢集。 本文是在 Azure HDInsight 中限制叢集連線能力一文的延伸,此文章著重在公用連線能力。 如果您想要 HDInsight 叢集 (或其內部) 的公用連線能力以及相依資源,請考慮遵循控制 Azure HDInsight 中的網路流量中的指導方針,限制叢集的連線能力。

Private Link 可用於無法使用或未啟用虛擬網路對等互連的跨網路案例。

注意

限制公用連線能力是啟用 Private Link 的必要條件,不應視為相同功能。

使用 Private Link 連線至 HDInsight 叢集是選用功能,預設為停用。 只有在 resourceProviderConnection 網路屬性設定為「輸出」時,才能使用此功能,如在 Azure HDInsight 中限制叢集連線能力一文所述。

privateLink 設定為 [啟用] 時,會建立內部標準負載平衡器 (SLB),每個 SLB 都會佈建 Azure Private Link 服務。 可讓您從私人端點存取 HDInsight 叢集的便是 Private Link 服務。

成功建立 Private Link 叢集需要許多步驟,因此我們已在此概述這些步驟。 請遵循下列每一個步驟,確保所有設定正確無誤。

步驟 1:建立必要條件

若要開始,請部署下列資源 (如果您尚未建立的話)。 您必須至少有一個資源群組、兩個虛擬網路,以及可連結至子網路的網路安全性群組,HDInsight 叢集將部署在該子網路中,如下所示。

類型 名稱 目的
資源群組 hdi-privlink-rg 用來將通用資源保持在一起
虛擬網路 hdi-privlink-cluster-vnet 將部署叢集的 VNET
虛擬網路 hdi-privlink-client-vnet 用戶端將從其中連線至叢集的 VNET
網路安全性群組 hdi-privlink-cluster-vnet-nsg 叢集部署所需的預設 NSG

注意

您可以直接部署網路安全性群組 (NSG),我們不需要修改叢集部署的任何 NSG 規則。

步驟 2:設定 HDInsight 子網路

  • 停用子網路上的 privateLinkServiceNetworkPolicies。 若要能選擇 Private Link 服務的來源 IP 位址,必須在子網路上明確停用設定 privateLinkServiceNetworkPolicies。 遵循此處的指示來停用 Private Link 服務的網路原則。
  • 在子網路上啟用服務端點。 若要成功部署 Private Link HDInsight 叢集,建議您在叢集部署之前,將 、 Microsoft.Storage和服務Microsoft.KeyVault端點新增Microsoft.SQL至子網。 服務端點會直接從虛擬網路將流量路由到 Microsoft Azure 骨幹網路上的服務。 保持 Azure 主幹網絡上的流量可讓您透過強制通道,繼續稽核和監視來自虛擬網路的輸出網際網路流量,而不會影響服務流量。

步驟 3:部署 NAT 閘道防火牆

標準負載平衡器不會像基本負載平衡器一樣,自動提供公用輸出 NAT。 由於 Private Link 叢集使用標準負載平衡器,您必須提供自己的 NAT 解決方案,例如 NAT 閘道或您的防火牆所提供的 NAT,才能連線至輸出、公用 HDInsight 相依性。

部署 NAT 閘道 (選項 1)

如果您不想設定 NAT 的防火牆或網路虛擬裝置 (NVA),您可以選擇使用 NAT 閘道。 若要開始使用,請將 NAT 閘道 (以及虛擬網路中的新公用 IP 位址) 新增至虛擬網路中設定的子網路。 當流量需要離開虛擬網路時,此閘道會負責將私人內部 IP 位址轉譯為公用位址。

若要開始進行基本設定:

  1. 在 Azure 入口網站中搜尋「NAT 閘道」,然後按一下 [建立]

  2. 在 NAT 閘道中使用下列設定。 (此處未包含所有設定,因此您可以使用預設值)。

    Config
    NAT 閘道名稱 hdi-privlink-nat-gateway
    公用 IP 首碼 建立新公用 IP 前置詞
    公用 IP 前置詞名稱 hdi-privlink-nat-gateway-prefix
    公用 IP 前置詞大小 /28 (16 個位址)
    虛擬網路 hdi-privlink-cluster-vnet
    子網路名稱 預設值
  3. 完成部署 NAT 閘道之後,您就可以前往下一個步驟。

設定防火牆 (選項 2)

若要開始進行基本設定:

  1. 將名為 AzureFirewallSubnet 的新子網路新增至您的虛擬網路。
  2. 使用新子網路設定新防火牆,並新增防火牆原則。
  3. 使用新防火牆的私人 IP 位址做為路由表中的 nextHopIpAddress 值。
  4. 將路由表新增至虛擬網路中設定的子網路。

HDInsight 叢集仍需其輸出相依項目的存取權。 如果不允許這些輸出相依性,叢集的建立可能會失敗。 如需設定防火牆的詳細資訊,請參閱控制 Azure HDInsight 中的網路流量

步驟 4:部署私人連結叢集

至此,您應該已經達成所有必要條件,因此您已做好部署 Private Link 叢集的準備。 下圖顯示建立叢集之前所需的網路設定範例。 在此範例中,所有輸出流量都會強制透過使用者定義的路由到達 Azure 防火牆。 在建立叢集之前,防火牆上應該允許必要的輸出相依項目。 若是企業安全性套件叢集,虛擬網路對等互連可以提供 Microsoft Entra Domain Services 的網路連線能力。

建立叢集之前,Private Link 環境的圖表。

建立叢集

下列 JSON 程式碼片段包含兩個網路屬性,您必須在 Azure Resource Manager 範本中設定,才能建立私人 HDInsight 叢集:

networkProperties: {
    "resourceProviderConnection": "Outbound",
    "privateLink": "Enabled"
}

如需具有許多 HDInsight 企業安全性功能 (包括 Private Link 在內) 的完整範本,請參閱 HDInsight 企業安全性範本

若要使用 PowerShell 建立叢集,請參閱範例

若要使用 Azure CLI 建立叢集,請參閱範例

步驟 5:建立私人端點

在 Private Link 叢集部署期間,Azure 會自動為 Ambari 和 SSH 負載平衡器建立 Private Link 服務。 部署叢集之後,您必須在用戶端 VNET 上建立兩個私人端點,一個用於 Ambari,另一個用於 SSH 存取。 然後,將其連結至叢集部署期間建立的 Private Link 服務。

若要建立私人端點:

  1. 開啟 Azure 入口網站並搜尋「Private Link」。

  2. 在結果中,按一下 [Private Link] 圖示。

  3. 按一下 [建立私人端點],然後使用下列設定來設定 Ambari 私人端點:

    Config
    名稱 hdi-privlink-cluster
    資源類型 Microsoft.Network/privateLinkServices
    資源 gateway-* (此值應該與您叢集的 HDI 部署識別碼相符,例如 gateway-4eafe3a2a67e4cd88762c22a55fe4654)
    虛擬網路 hdi-privlink-client-vnet
    子網路 預設值

    Private Link 基本索引標籤的圖表。Private Link 資源索引標籤的圖表。[Private Link 虛擬網络] 索引標籤的圖表。Private Link dns 端點索引標籤的圖表。Private Link 標籤索引標籤的圖表。Private Link 檢閱索引標籤的圖表。

  4. 請重複以上程序,使用下列設定建立另一個用於 SSH 存取的私人端點:

    Config
    名稱 hdi-privlink-cluster-ssh
    資源類型 Microsoft.Network/privateLinkServices
    資源 headnode-* (此值應該與您叢集的 HDI 部署識別碼相符,例如 headnode-4eafe3a2a67e4cd88762c22a55fe4654)
    虛擬網路 hdi-privlink-client-vnet
    子網路 預設值

重要

如果您使用 KafkaRestProxy HDInsight 叢集,請遵循此額外步驟來啟用私人端點

建立私人端點之後,您就完成設定的這個階段。 如果您未記下指派給端點的私人 IP 位址,請遵循下列步驟:

  1. 在 Azure 入口網站中開啟用戶端 VNET。
  2. 按一下 [私人端點] 索引標籤。
  3. 您應該會看到列出的 Ambari 和 SSH 網路介面。
  4. 每一個各按兩下,並瀏覽至 [DNS 組態] 刀鋒視窗,以查看私人 IP 位址。
  5. 請記下這些 IP 位址,因為連線至叢集和正確設定 DNS 需要這些資訊。

步驟 6:設定 DNS 以透過私人端點連線

若要存取私人叢集,您可以設定透過私人 DNS 區域的 DNS 解析。 在 Azure 管理的公用 DNS 區域 azurehdinsight.net 中建立的Private Link 項目如下:

<clustername>        CNAME    <clustername>.privatelink
<clustername>-int    CNAME    <clustername>-int.privatelink
<clustername>-ssh    CNAME    <clustername>-ssh.privatelink

下圖範例顯示,已設定用來啟用從虛擬網路存取叢集的私人 DNS 項目,未與叢集對等互連,或無法直接看到叢集。 您可以使用 Azure DNS 私人區域覆寫 *.privatelink.azurehdinsight.net 完整網域名稱 (FQDN),並解析用戶端網路中的私人端點 IP 位址。 此設定僅適用於範例中的 <clustername>.azurehdinsight.net,但也會延伸至其他叢集端點。

Private Link 架構的圖表。

若要設定透過私人 DNS 區域的 DNS 解析:

  1. 建立 Azure 私人 DNS 區域。 (此處未包含所有設定,所有其他設定都會保留為預設值)

    Config
    名稱 privatelink.azurehdinsight.net

    私人 DNS 區域的圖表。

  2. 將記錄集新增至 Ambari 的私人 DNS 區域。

    Config
    名稱 YourPrivateLinkClusterName
    類型 A - IPv4 位址的別名記錄
    TTL 1
    TTL 單位 小時
    IP 位址 Ambari 存取的私人端點私人 IP

    私人 DNS 區域新增記錄的圖表。

  3. 將記錄集新增至 SSH 的私人 DNS 區域。

    Config
    名稱 YourPrivateLinkClusterName-ssh
    類型 A - IPv4 位址的別名記錄
    TTL 1
    TTL 單位 小時
    IP 位址 SSH 存取的私人端點私人 IP

    私人連結 dns 區域新增 ssh 記錄的圖表。

重要

如果您使用 KafkaRestProxy HDInsight 叢集,請遵循此額外步驟來設定 DNS 以透過私人端點連線

  1. 透過新增虛擬網路連結,建立私人 DNS 區域與用戶端 VNET 的關聯。

    1. 在 Azure 入口網站中開啟私人 DNS 區域。
    2. 按一下 [虛擬網路連結] 索引標籤。
    3. 按一下 [新增] 按鈕。
    4. 填寫詳細資料:連結名稱、訂用帳戶和虛擬網路 (您的用戶端 VNET)
    5. 按一下 [檔案] 。

    虛擬網路連結的圖表。

步驟 7:檢查叢集連線能力

最後一個步驟是測試叢集的連線能力。 由於這是隔離的或私人的叢集,我們無法使用任何公用 IP 或 FQDN 存取叢集。 相反地,我們有幾個選項:

  • 從內部部署網路設定用戶端 VNET 的 VPN 存取
  • 將 VM 部署至用戶端 VNET,然後從此 VM 存取叢集

在此範例中,我們會使用下列設定,在用戶端 VNET 中部署 VM 以測試連線能力。

Config
虛擬機器名稱 hdi-privlink-client-vm
映像 Windows 10 專業版,版本 2004 - Gen1
公用輸入連接埠 允許選取的連接埠
選取輸入連接埠 RDP (3389)
我確認我有合格的 Windows 10 授權... 已選取
虛擬網路 hdi-privlink-client-vnet
子網路 預設值

部署用戶端 VM 之後,您可以測試 Ambari 和 SSH 存取。

若要測試 Ambari 存取:

  1. 在 VM 上開啟網頁瀏覽器。
  2. 瀏覽至叢集的一般 FQDN:https://<clustername>.azurehdinsight.net
  3. 如果 Ambari UI 載入,則 Ambari 存取的設定正確無誤。

若要測試 SSH 存取:

  1. 開啟命令提示字元以取得終端機視窗。
  2. 在終端機視窗中,嘗試使用 SSH 連線至叢集:ssh sshuser@<clustername>.azurehdinsight.net (將「sshuser」取代為您為叢集建立的 ssh 使用者)
  3. 如果您可以連線,則 SSH 存取的設定正確無誤。

管理 HDInsight 的私人端點

您可以將私人端點用於 Azure HDInsight 叢集,允許虛擬網路上的用戶端透過 Private Link 安全地存取您的叢集。 虛擬網路上的用戶端與 HDInsight 叢集之間的網路流量會流經 Microsoft 骨幹網路,以防在公用網際網路中暴露。

私人端點管理體驗的圖表。

有兩個連線核准方法可供 Private Link 服務取用者 (例如 Azure Data Factory) 選擇:

  • 自動:如果服務取用者對 HDInsight 資源擁有 Azure 角色型存取控制 (RBAC) 權限,則取用者可以選擇自動核准方法。 在此情況下,當要求到達 HDInsight 資源時,HDInsight 資源不需要採取任何動作且自動核准連線。
  • 手動:如果服務取用者對 HDInsight 資源沒有 Azure RBAC 權限,則取用者可以選擇手動核准方法。 在此情況下,出現在 HDInsight 資源上的連線要求會顯示為 [擱置]。 HDInsight 資源必須手動核准要求,才能建立連線。

若要管理私人端點,在 Azure 入口網站的叢集檢視中,移至 [安全性 + 網路] 區段下方的 [網路]。 在此處,您可以看到所有現有的連線、連線的狀態,以及私人端點的詳細資料。

您也可以核准、拒絕或移除現有的連線。 當您建立私人連線時,您可以指定您也想要連線的 HDInsight 子資源 (例如閘道或前端節點)。

下表顯示各種 HDInsight 資源動作,以及私人端點的結果連線狀態。 HDInsight 資源也可以在稍後沒有取用者介入的情況下,變更私人端點連線的連線狀態。 該動作會在取用者端更新端點的狀態。

服務提供者的動作 服務取用者私人端點狀態 描述
None 待定 已手動建立連線,且正在等待 Private Link 資源擁有者核准。
核准 核准 已自動或手動核准連線並可供使用。
拒絕​​ 已拒絕 Private Link 資源擁有者已拒絕連線。
移除 已中斷連接 Private Link 資源擁有者已移除連線。 私人端點變得富含資訊,應刪除以進行清除。

下一步