管理應用程式/中介軟體安全性

已完成

大型組織有許多來自不同商務群組的使用者需要:

  • 以安全的方式登入叢集
  • 在存取基礎資料時,強制執行最低權限原則 (PLOP)
  • 記錄具有安全重要性的事件。

HDInsight 中的應用程式安全性旨在提供適當方法來安全地向 HDInsight 驗證多個使用者,並強制將使用者對資料的存取權限限定為他們執行工作所需的最低權限,最後記錄具有安全重要性的事件,例如登入、執行特殊權限動作的嘗試、修改重要記錄等。

驗證

驗證是指建立某使用者的身分識別,進而驗證該使用者的身分是否如其自身所宣稱的程序。 生產案例中的 HDInsight 叢集通常需要讓不同商務群組中的各種使用者能夠向叢集進行驗證,以執行設定、提交、執行和監視工作負載等活動。 在 HDInsight 叢集建立期間啟用「企業安全性套件」(ESP) 功能,可讓叢集加入網域,並且讓網域使用者能夠使用其網域認證向叢集進行驗證。 Active Directory 群組可用來建立代表組織內某項職務或部門的個別使用者群組,且其中多個群組可在建立時同步至叢集。 叢集必須具有網域叢集管理員,以及一或多個具有限定存取權的使用者群組。 以下是涉及 HDInsight 驗證程序的元件及各方的表示法。

HDInsight Authentication Process

企業身分識別網域中的下列元件會參與 ESP 叢集的設定和驗證程序。

  • Windows Server Active Directory:內部部署的網域控制站,會儲存使用者主體名稱 (又稱 UPN,例如:John.Doe@Contoso.com) 及其各自的網域密碼。
  • Active Directory Connect (AD Connect):用來完成混合式身分識別設定的 Microsoft 工具。 在 HDInsight 上設定 ESP 時,密碼雜湊同步之類的功能是很重要的。
  • Azure 活動目錄 (Microsoft Entra ID):Microsoft Azure 型身分識別和存取管理服務。
  • Microsoft Entra Domain Services (Microsoft Entra Domain Services):提供受控網域服務,例如網域加入、群組原則、輕量型目錄存取通訊協定 (LDAP),以及與 Windows Server Active Directory 完全相容的 Kerberos/NTLM 驗證。 您可以使用這些網域服務,而不需要在雲端部署、管理及修補網域控制站。 Microsoft Entra Domain Services 與現有的 Microsoft Entra 租用戶整合,讓使用者能夠使用現有的認證登入。 您也可以使用現有的群組與使用者帳戶,安全地存取資源,這樣能更順暢地將內部部署資源隨即轉移至 Azure。

HDInsight 支援兩種驗證案例

  • 當密碼雜湊同步處理至 Microsoft Entra ID 時。
  • 當密碼雜湊保留在內部部署網域控制站時。 請注意,使用者可以選擇使用 Windows Azure 儲存體 Blob (WASB) 或 ADLS Gen2 儲存體來建立 HDInsight 叢集,而兩者的驗證程序稍有不同。 雖然驗證程序中的所有步驟都會自動完成而無需使用者涉入,但這有助於大致了解在驗證使用者時發生的一連串事件。

驗證:當密碼雜湊同步處理至 Microsoft Entra ID 時

Authentication: When password hashes are synchronized to Microsoft Entra ID

  1. 使用者 John Doe 使用其網域認證 John.Doe@contoso.onmicrosoft.com (稱為使用者主體名稱或 UPN) 和密碼向 HDInsight 服務 (例如 Ambari、ssh、Zeppelin 等) 進行驗證。 閘道會保存使用者名稱和密碼。
  2. HDInsight 閘道會使用資源擁有者密碼認證 (ROPC) 流程,將使用者提供的 UPN 和密碼傳送至 Microsoft Entra ID,並要求 OAuth 存取要求。 Microsoft Entra ID 會確認使用者的身分識別,並簽發重新整理權杖;該權杖儲存於認證服務,且會在前端節點上執行。 在具有 ADLS Gen 2 儲存體帳戶的叢集中,儲存體驅動程式會與認證服務通訊,以擷取用來向 ADLS 進行傳遞驗證的 OAuth 權杖。
  3. 接著,閘道會向 Microsoft Entra Domain Services 驗證使用者,並取得 Kerberos 票證。 閘道隨後會將 Kerberos 票證傳遞至前端節點,並向叢集驗證使用者。

MFA 驗證:當密碼雜湊未同步處理至 Microsoft Entra ID 時

注意

這項設定也稱為 HDInsight Identity Broker (HIB),可支援多重要素驗證 (MFA)。 在此設定中,如果密碼雜湊未同步至 Microsoft Entra ID,使用者仍可向閘道進行驗證。

When password hashes are not synchronized to Microsoft Entra ID

  1. 使用者 John Doe 啟動了 Web 型 HDInsight 服務,例如 Ambari 或 Zeppelin。 頁面會將使用者重新導向至互動式登入畫面。 用戶端會被重新導向至 Microsoft Entra ID,讓使用者使用其 UPN John.Doe@contoso.onmicrosoft.com 進行驗證。
  2. 在輸入 UPN 時,用戶端會被重新導向至使用者輸入其密碼的內部部署 ADFS 伺服器。 此時會執行 MFA 驗證 (若已啟用)。 成功驗證後,會向用戶端簽發 OAuth 權杖。
  3. 用戶端會向 HDInsight 閘道出示 OAuth 權杖。
  4. HDInsight 閘道會使用 OAuth 權杖,從 HIB 節點取得 Kerberos 票證。
  5. 閘道會使用 Kerberos 票證,並在前端節點認證服務上註冊 OAuth 權杖,然後向叢集進行驗證。

注意

如果密碼雜湊未同步至 Microsoft Entra ID,則網域使用者無法透過 SSH 連線至前端節點。 只有本機 SSH 使用者才能執行 SSH 活動。 如需為這兩種情況設定驗證機制的指導方針,請參閱使用 ID 代理程式進行認證管理

授權

HDInsight 中的授權負責決定和強制執行關於基礎資料集的使用者權限。 特定動作和/或作業的精細授權可在 Hive、HBase 和 Kafka 的 HDInsight 服務上取得,並透過 Apache Ranger 進行管理。 Ranger 提供角色型存取控制、屬性型存取控制,並且可集中稽核使用者存取和系統管理動作。 您通常會使用叢集管理員的網域認證向 Apache Ranger 進行驗證,然後在 Ranger 上設定受限制群組或使用者的原則。 在下列範例中,我們將說明如何建立 Ranger 原則,以設定 Ranger 中的範例 Hive 資料表的權限。

  1. 使用 URL 啟動 Apache Ranger:https://CLUSTERNAME.azurehdinsight.net/Ranger/。 將 "CLUSTERNAME" 取代為您的叢集名稱。 使用叢集網域管理員和對應的密碼登入。

    Setting permissions with Apache Ranger

  2. 按一下 [新增原則] 以新增 Ranger 原則。

    Adding a new Ranger policy

  3. 以下列資訊填入原則的詳細資料:

    1. 原則名稱:原則的名稱。
    2. 資料庫:選擇 Hive 資料庫。
    3. 資料表:在選取的資料庫中選擇 Hive 資料表。
    4. Hive 資料行:選擇要套用原則的 Hive 資料行。
    5. 將稽核記錄設定為 [是] 以啟用記錄所有存取的功能。
    6. 允許條件:
      • 您可以在 [允許條件] 區段中,將原則套用至 Active Directory (AD) 網域使用者或網域群組。 如果您想要將原則套用至 AD 群組中的所有使用者,請將該 AD 群組新增至 [選取群組] 區段。
      • 或者,如果您想要將原則套用至不同 AD 群組的個別或一組選擇的使用者,您可以在 [選取使用者] 欄位中新增使用者的所有個別網域識別碼。
      • 從 [權限] 核取方塊列的一組權限中選擇。
  4. 向下捲動並按一下 [新增]。

    Adding a policy

  5. 將其設定為啟動後,就會對所有包含在原則中的使用者強制執行此規則。

若要了解如何為 HBaseKafka 設定 Ranger 原則,請參閱本節中個別的超連結。

稽核

從安全性的觀點來看,HDInsight 中的稽核牽涉到在叢集的作業存留期內、甚至在叢集刪除之後發生的記錄和監視驗證以及授權要求。

HDInsight 中的稽核是使用 Azure 監視器記錄啟用的,可用來呈現對叢集安全性至關重要的記錄。 以下列出一些記錄資料表,內含對叢集安全性至關重要的資訊。

記錄資料表名稱 目的
ranger_audit_logs_CL ESP 叢集上來自 Apache Ranger 的稽核記錄
log_gateway_audit_CL 來自閘道的稽核記錄,用以顯示成功和失敗的嘗試
log_ambari_audit_CL 來自 Ambari 的稽核記錄
log_auth_CL 顯示成功和失敗嘗試的 SSH 記錄

只需按幾下滑鼠,即可從 Azure 入口網站啟用 Azure 監視。

  1. 在 HDInsight 叢集上,按一下左側刀鋒視窗中的 Azure 監視器。 選擇將 [Azure 監視器整合] 設為 [True],然後在 [選取工作區] 中,從下拉式清單中選擇預先建立的 Log Analytics 工作區。

    Using Azure Monitor

  2. 啟動 Log Analytics 工作區,並匯入與您叢集類型相關的 HDInsight 監視解決方案。 啟動解決方案,然後按一下 [記錄]。

    Viewing logs

  3. 您可以在左側的 [自訂記錄] 區段中找到與安全性相關的記錄資料表。 然後,您可以查詢這些資料表以擷取相關的存取資訊。

    Viewing custom logs