設定 HDInsight 叢集以整合 Microsoft Entra 與企業安全性套件
本文提供下列程序的摘要和概觀:建立和設定與 Microsoft Entra 整合的 HDInsight 叢集。 這項整合依賴稱為企業安全性套件 (ESP) 的 HDInsight 功能、Microsoft Entra Domain Services 和預先存在的內部部署的 Active Directory。
如需下列作業的詳細逐步教學課程:在 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 日期 (2018 年 10 月 1 日) 之前所建立的 ESP 叢集。
必要條件
您必須先完成一些必要條件,才能建立已啟用 ESP 的 HDInsight 叢集:
- 現有的內部部署 Active Directory 和 Microsoft Entra ID。
- 啟用 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 Storage Gen1 或 Gen2,您必須只針對需要使用基本 Kerberos 驗證來存取叢集的使用者停用 Microsoft Entra 多重要素驗證。 如果組織需要多重要素驗證,請嘗試使用 HDInsight ID 代理程式功能。
「只」有在特定使用者存取 HDInsight 叢集虛擬網路的 IP 範圍時,您才能使用信任的 IP 或條件式存取來停用這些使用者的多重要素驗證。
如果叢集儲存體是 Azure Blob 儲存體,則請不要停用多重要素驗證。
檢查 Microsoft Entra Domain Services 健全狀態
選取 [管理] 類別中的 [健康情況],以檢視 Microsoft Entra Domain Services 的健康狀態。 請確定 Microsoft Entra Domain Services 的狀態是綠色 (執行中),且同步已完成。
建立和授權受控身分識別
使用「使用者指派的受控身分識別」來簡化安全的網域服務作業。 當您將「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 網域服務參與者」角色指派給 Microsoft Entra Domain Services「存取控制」中的受控身分識別。 您需要 Microsoft Entra Domain Services 系統管理權限,才能進行此角色指派。
指派「HDInsight 網域服務參與者」角色,可確保此身分識別具有適當的 (on behalf of
) 存取權可對 Microsoft Entra Domain Services 網域執行網域服務作業。 這些作業包括建立和刪除 OU。
受控身分識別獲指定此角色之後,Microsoft Entra Domain Services 系統管理員就會管理其使用人員。 首先,系統管理員會在入口網站中選取受控身分識別。 然後在 [概觀] 下選取 [存取控制 (IAM)]。 系統管理員會將「受控身分識別操作員」角色指派給想要建立 ESP 叢集的使用者或群組。
例如,Microsoft Entra Domain Services 系統管理員可以針對 sjmsi 受控身分識別將此角色指派給 MarketingTeam 群組,如下圖所示。 範例如下圖所示。 此指派可確保組織中的適當人員可以使用受控身分識別來建立 ESP 叢集。
網路組態
注意
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 位址]。
變更 Microsoft Entra Domain Services 虛擬網路中的 DNS 伺服器設定。 若要使用這些自訂 IP,請在 [設定] 類別中選取 [DNS 伺服器]。 然後選取 [自訂] 選項,並在文字方塊中輸入第一個 IP 位址,然後選取 [儲存]。 使用相同的步驟來新增更多 IP 位址。
將 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。
如果您在 HDInsight 子網路中使用網路安全性群組 (NSG) 規則,則應該允許輸入和輸出流量所需的 IP。
若要測試網路設定,請將 Windows VM 加入 HDInsight 虛擬網路/子網路,並 Ping 網域名稱。 (它應該解析為 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 代理程式功能。 ID Broker 功能可讓您使用多重要素驗證來登入 Ambari,並取得所需的 Kerberos 票證,而無需 Microsoft Entra Domain Services 中的密碼雜湊。
注意
ESP 叢集名稱的前六個字元在您的環境中必須是唯一的。 例如,如果您在不同的虛擬網路中有多個 ESP 叢集,則請選擇可確保叢集名稱前六個字元是唯一的命名慣例。
在您啟用 ESP 之後,系統會自動偵測和驗證與 Microsoft Entra Domain Services 有關的常見錯誤設定。 修正這些錯誤之後,您可以繼續進行下一個步驟。
建立具有 ESP 的 HDInsight 叢集時,您必須提供下列參數:
叢集管理使用者:從同步的 Microsoft Entra Domain Services 執行個體中為您的叢集選擇管理員。 此網域帳戶必須已同步,而且可在 Microsoft Entra Domain Services 中使用。
叢集存取群組:您想要同步其使用者並有權存取叢集的安全性群組應在 Microsoft Entra Domain Services 中可用。 範例為 HiveUsers 群組。 如需詳細資訊,請參閱在 Microsoft Entra ID 中建立群組和新增使用者。
LDAPS URL:範例為
ldaps://contoso.com:636
。
建立新的叢集時,可以從 [使用者指派的受控身分識別] 下拉式清單中選擇您所建立的受控身分識別。
。
下一步
- 如需了解如何設定 Hive 原則及執行 Hive 查詢,請參閱為具有 ESP 的 HDInsight 叢集設定 Apache Hive 原則。
- 如需了解如何使用 SSH 來連線到具有 ESP 的 HDInsight 叢集,請參閱從 Linux、Unix 或 OS X 使用 SSH 搭配 Linux 型 HDInsight 上的 Apache Hadoop。