設定 HDInsight 叢集以進行 Microsoft Entra 與 Enterprise Security Package 整合

本文提供建立和設定與 Microsoft Entra ID 整合的 HDInsight 叢集程式的摘要和概觀。 此整合依賴稱為企業安全性套件 (ESP)、Microsoft Entra Domain Services 和您預先存在的 內部部署的 Active Directory 的 HDInsight 功能。

如需在 Azure 中設定和設定網域,以及建立已啟用 ESP 的叢集,然後同步處理內部部署使用者的詳細逐步教學課程,請參閱 在 Azure HDInsight 中建立及設定企業安全性套件叢集。

背景

企業安全性套件 (ESP) 提供 Azure HDInsight 的 Active Directory 整合。 這項整合可讓網域使用者使用其網域認證向 HDInsight 叢集進行驗證,並執行巨量資料作業。

注意

ESP 在 HDInsight 4.0 和 5.0 中正式推出,適用於這些叢集類型:Apache Spark、Interactive、Hadoop、Apache Kafka 和 HBase。 不支援在 ESP GA 日期之前建立的 ESP 叢集(2018 年 10 月 1 日)。

必要條件

您必須先完成幾個必要條件,才能建立已啟用 ESP 的 HDInsight 叢集:

  • 現有的 內部部署的 Active Directory 和 Microsoft Entra 識別碼。
  • 啟用 Microsoft Entra Domain Services。
  • 檢查 Microsoft Entra Domain Services 健康情況狀態,以確保同步處理已完成。
  • 建立並授權受控識別。
  • 完成 DNS 和相關問題的網路設定。

這些專案會詳細討論。 如需完成所有這些步驟的逐步解說,請參閱 在 Azure HDInsight 中建立及設定企業安全性套件叢集。

啟用 Microsoft Entra Domain Services

啟用 Microsoft Entra Domain Services 是必要條件,您才能使用 ESP 建立 HDInsight 叢集。 如需詳細資訊,請參閱使用 Azure 入口網站 啟用 Microsoft Entra Domain Services。

啟用 Microsoft Entra Domain Services 時,所有使用者和對象預設會開始從 Microsoft Entra ID 同步處理至 Microsoft Entra Domain Services。 同步作業的長度取決於 Microsoft Entra ID 中的物件數目。 同步處理可能需要數十萬個物件。

您搭配 Microsoft Entra Domain Services 使用的功能變數名稱必須少於 39 個字元,才能使用 HDInsight。

您可以選擇只同步處理需要存取 HDInsight 叢集的群組。 僅同步處理特定群組的這個選項稱為 限定範圍的同步處理。 如需指示,請參閱 設定從 Microsoft Entra ID 到受控網域的範圍同步處理。

當您啟用安全LDAP時,請將功能變數名稱放在主體名稱中。 以及憑證中的主體替代名稱。 如果您的功能變數名稱 contoso100.onmicrosoft.com,請確定您的憑證主體名稱和主體別名中有確切的名稱。 如需詳細資訊,請參閱 設定 Microsoft Entra Domain Services 受控網域的安全 LDAP。

下列範例會建立自我簽署憑證。 功能變數名稱 contoso100.onmicrosoft.com 同時位於 Subject (主體名稱) 和 DnsName (主體別名) 中。

$lifetime=Get-Date
New-SelfSignedCertificate -Subject contoso100.onmicrosoft.com `
  -NotAfter $lifetime.AddDays(365) -KeyUsage DigitalSignature, KeyEncipherment `
  -Type SSLServerAuthentication -DnsName *.contoso100.onmicrosoft.com, contoso100.onmicrosoft.com

注意

只有租用戶系統管理員具有啟用 Microsoft Entra Domain Services 的許可權。 如果叢集記憶體是 Azure Data Lake 儲存體 Gen1 或 Gen2,則您只能針對需要使用基本 Kerberos 驗證存取叢集的使用者停用 Microsoft Entra 多重要素驗證。 如果您的組織需要多重要素驗證,請嘗試使用 HDInsight ID Broker 功能

只有當特定使用者存取 HDInsight 叢集虛擬網路的 IP 範圍時,才可以使用受信任的 IP條件式存取來停用特定使用者的多重要素驗證。

如果叢集記憶體是 Azure Blob 記憶體,請勿停用多重要素驗證。

檢查 Microsoft Entra Domain Services 健康情況狀態

選取 [管理] 類別中的 [健全狀況],以檢視 Microsoft Entra Domain Services 的健康情況狀態。 請確定 Microsoft Entra Domain Services 的狀態為綠色(執行中),且同步處理已完成。

Microsoft Entra Domain Services health.

建立和授權受控身分識別

使用使用者指派的受控識別來簡化安全的網域服務作業。 當您將 HDInsight 網域服務參與者 角色指派給受控識別時,它可以讀取、建立、修改和刪除網域服務作業。

HDInsight 企業安全性套件需要某些網域服務作業,例如建立 OU 和服務主體。 您可以在任何訂用帳戶中建立受控識別。 如需一般受控識別的詳細資訊,請參閱 Azure 資源的受控識別。 如需受控身分識別如何在 Azure HDInsight 中運作的詳細資訊,請參閱 Azure HDInsight 中的受控身分識別

若要設定 ESP 叢集,如果您還沒有指派的受控識別,請建立使用者指派的受控識別。 請參閱 Create, list, delete, or assign a role to a user-assigned managed identity by using the Azure portal

接下來,將 HDInsight Domain Services 參與者角色指派給 Microsoft Entra Domain Services 訪問控制中的受控識別。 您需要 Microsoft Entra Domain Services 系統管理員許可權,才能進行此角色指派。

Microsoft Entra Domain Services Access control.

指派 HDInsight 網域服務參與者 角色可確保此身分識別具有適當的存取on behalf of權,以在 Microsoft Entra Domain Services 網域上執行網域服務作業。 這些作業包括建立和刪除 OU。

在獲得受控識別角色之後,Microsoft Entra Domain Services 系統管理員會管理使用該角色的人員。 首先,系統管理員會在入口網站中選取受控識別。 然後選取 [概觀] 底下的 [存取控制 [IAM]。 系統管理員會將 受控識別操作員 角色指派給想要建立 ESP 叢集的使用者或群組。

例如,Microsoft Entra Domain Services 系統管理員可以將此角色指派給 sjmsi 受控識別的 MarketingTeam 群組。 範例如下圖所示。 此指派可確保組織中的適當人員可以使用受控識別來建立 ESP 叢集。

HDInsight Managed Identity Operator Role Assignment.

網路組態

注意

Microsoft Entra Domain Services 必須部署在以 Azure Resource Manager 為基礎的虛擬網路中。 Microsoft Entra Domain Services 不支援傳統虛擬網路。 如需詳細資訊,請參閱使用 Azure 入口網站 啟用 Microsoft Entra Domain Services。

啟用 Microsoft Entra Domain Services。 然後,本機域名系統 (DNS) 伺服器會在 Active Directory 虛擬機 (VM) 上執行。 將您的 Microsoft Entra Domain Services 虛擬網路設定為使用這些自定義 DNS 伺服器。 若要找出正確的IP位址,請選取 [管理] 類別中的 [屬性],然後查看 [虛擬網路上的IP位址]。

Locate IP addresses for local DNS servers.

變更 Microsoft Entra Domain Services 虛擬網路中的 DNS 伺服器組態。 若要使用這些自定義IP,請在 [設定] 類別中選取 [DNS 伺服器]。 然後選取 [ 自定義 ] 選項,在文本框中輸入第一個IP位址,然後選取 [ 儲存]。 使用相同的步驟來新增更多IP位址。

Updating the virtual network DNS configuration.

將 Microsoft Entra Domain Services 實例和 HDInsight 叢集放在相同的 Azure 虛擬網路中比較容易。 如果您打算使用不同的虛擬網路,您必須將這些虛擬網路對等互連,讓 HDInsight VM 可以看到域控制器。 如需詳細資訊,請參閱虛擬網路對等互連

對等互連虛擬網路之後,請將 HDInsight 虛擬網路設定為使用自定義 DNS 伺服器。 然後輸入 Microsoft Entra Domain Services 私人 IP 作為 DNS 伺服器位址。 當兩個虛擬網路使用相同的 DNS 伺服器時,您的自定義功能變數名稱會解析為正確的IP,而且可從 HDInsight 連線。 例如,如果您的功能變數名稱是 contoso.com,則在此步驟之後, ping contoso.com 應該解析為正確的 Microsoft Entra Domain Services IP。

Configuring custom DNS servers for a peered virtual network.

如果您在 HDInsight 子網中使用網路安全組 (NSG) 規則,您應該允許 輸入和輸出流量所需的 IP

若要測試您的網路設定,請將 Windows VM 加入 HDInsight 虛擬網路/子網,並偵測功能變數名稱。 (它應該解析為IP。執行 ldp.exe 以存取 Microsoft Entra Domain Services 網域。 然後將此 Windows VM 加入網域,以確認客戶端與伺服器之間所有必要的 RPC 呼叫都成功。

使用 nslookup 確認記憶體帳戶的網路存取。 或者您可能使用的任何外部資料庫(例如外部 Hive 中繼存放區或 Ranger DB)。 如果 NSG 保護 Microsoft Entra Domain Services,請確定 Microsoft Entra Domain Services 子網的 NSG 規則中允許必要的埠。 如果此 Windows VM 的網域加入成功,您可以繼續進行下一個步驟並建立 ESP 叢集。

使用 ESP 建立 HDInsight 叢集

正確設定先前的步驟之後,下一個步驟是建立已啟用ESP的 HDInsight 叢集。 當您建立 HDInsight 叢集時,您可以在 [ 安全性 + 網络 ] 索引標籤上啟用企業安全性套件。針對用於部署的 Azure Resource Manager 範本,請使用入口網站體驗一次。 然後在 [ 檢閱 + 建立] 頁面上下載預先填入的範本,以供日後重複使用。

您也可以在 叢集建立期間啟用 HDInsight ID Broker 功能。 ID Broker 功能可讓您使用多重要素驗證來登入 Ambari,並取得必要的 Kerberos 票證,而不需要 Microsoft Entra Domain Services 中的密碼哈希。

注意

ESP 叢集名稱的前六個字元在您的環境中必須是唯一的。 例如,如果您在不同的虛擬網路中有多個 ESP 叢集,請選擇一種命名慣例,以確保叢集名稱上的前六個字元是唯一的。

Domain validation for Azure HDInsight Enterprise Security Package.

啟用 ESP 之後,會自動偵測並驗證與 Microsoft Entra Domain Services 相關的常見設定錯誤。 修正這些錯誤之後,您可以繼續進行下一個步驟。

Azure HDInsight Enterprise Security Package failed domain validation.

當您使用 ESP 建立 HDInsight 叢集時,必須提供下列參數:

  • 叢集管理員使用者:從同步處理的 Microsoft Entra Domain Services 實例中為您的叢集選擇系統管理員。 此網域帳戶必須已經同步處理,且可在 Microsoft Entra Domain Services 中使用。

  • 叢集存取群組:您想要同步處理且具有叢集存取權的安全組應該可在 Microsoft Entra Domain Services 中使用。 例如HiveUsers群組。 如需詳細資訊,請參閱 在 Microsoft Entra ID 中建立群組和新增成員。

  • LDAPS URL:範例為 ldaps://contoso.com:636

建立新叢集時,您可以從 [使用者指派的受控識別] 下拉式清單中選擇 您所建立的受控識別

Azure HDInsight ESP Active Directory Domain Services managed identity. .

下一步

  • 如需設定Hive原則和執行Hive查詢,請參閱 使用ESP設定HDInsight叢集的Apache Hive原則。
  • 若要使用 SSH 連線到具有 ESP 的 HDInsight 叢集,請參閱 從 Linux、Unix 或 OS X 在 HDInsight 上使用 SSH 與以 Linux 為基礎的 Apache Hadoop。