Azure HDInsight 中的受控識別

受控識別是在 Microsoft Entra 中註冊的身分識別,其認證由 Azure 所管理。 使用受控識別時,您不需要在 Microsoft Entra ID 中註冊服務主體。 或維護憑證之類的認證。

Azure HDInsight 中會使用受控識別來存取 Microsoft Entra 網域服務,或視需要存取 Azure Data Lake Storage Gen2 中的檔案。

有兩種受控識別:「使用者指派」和「系統指派」。 Azure HDInsight 僅支援使用者指派的受控識別。 HDInsight 不支援系統指派的受控識別。 使用者指派的受控識別會建立為獨立 Azure 資源,然後您可以指派給一或多個 Azure 服務執行個體。 相反地,系統會在 Microsoft Entra ID 中建立系統指派的受控識別,然後直接地自動在特定 Azure 服務執行個體上啟用。 該系統指派的受控識別的生命週期接著會與在其上啟用的服務執行個體生命週期繫結。

HDInsight 受控識別實作

在 Azure HDInsight 中,受控識別只能供 HDInsight 服務用於內部元件。 目前不支援使用安裝在 HDInsight 叢集節點上的受控識別來產生存取權杖的方法,以便存取外部服務。 對於某些 Azure 服務 (如計算 VM),受控識別是使用可用於取得存取權杖的端點實作。 目前 HDInsight 節點無法提供此端點。

如果您需要啟動應用程式以避免將密碼/密碼放入分析作業 (例如 SCALA 作業),您可以使用指令碼動作將您的憑證散發至叢集節點,然後使用該憑證取得存取權杖 (例如存取 Azure KeyVault)。

建立受控識別

您可以使用下列任何方法建立受控識別:

設定受控識別的其餘步驟取決於將使用的案例。

Azure HDInsight 中的受控識別案例

受控識別會在多個案例中用於 Azure HDInsight。 如需詳細的安裝和設定指示,請參閱相關文件:

HDInsight 會自動更新您用於這些案例的受控識別憑證。 不過,有一個限制,當多個不同的受控識別用於長時間執行的叢集時,憑證更新可能無法如預期般適用於所有受控識別。 由於這個限制,我們建議您在上述所有案例採用相同的受控身分識別。

如果您已經建立具有多個不同受控識別的長時間執行叢集,而且遇到下列問題之一:

  • 在 ESP 叢集中,叢集服務開始失敗或擴大,而其他作業開始失敗並發生驗證錯誤。
  • 在 ESP 叢集中,變更 Microsoft Entra 網域服務 LDAPS 憑證時,LDAPS 憑證不會自動更新,因此 LDAP 同步處理和擴大開始失敗。
  • ADLS Gen2 的 MSI 存取會開始失敗。
  • 無法在 CMK 案例中輪替加密金鑰。

然後,您應該將上述案例的必要角色和存取權限指派給叢集中所使用的所有受控識別。 例如,如果您針對 ADLS Gen2 和 ESP 叢集使用不同的受控識別,則兩者都應該有指派給它們的「儲存體 Blob 資料擁有者」和「HDInsight 網域服務參與者」角色,以避免遇到這些問題。

常見問題集

如果我在叢集建立之後刪除受控識別,會發生什麼事?

您的叢集會在需要受控識別時遇到問題。 在叢集建立之後,目前沒有任何方法可以更新或變更受控識別。 因此,我們建議您確認在叢集執行時間的期間,系統不會刪除受控識別。 或者,您可以重新建立叢集,並指派新的受控識別。

下一步