Compartir a través de

在 HDInsight 中使用企业安全性套餐

标准Azure HDInsight群集是单用户群集。 适用于大多数由规模较小的应用团队构建大型数据工作负载的公司。 每个用户可以按需创建专用群集,并在不再需要时将其销毁。

注释

适用于 HDInsight 的企业安全套餐即将停用,将于 2026 年 7 月 31 日终止支持。

许多企业已转向这样一种模型:群集由 IT 团队管理,并由多个应用程序团队共享。 这些大型企业需要对Azure HDInsight中的每个群集进行多用户访问。

HDInsight 以托管的方式依赖于常用的标识提供者--Active Directory- 。 通过将 HDInsight 与 Microsoft Entra 域服务 集成,可以使用域凭据访问群集。

HDInsight 中的虚拟机 (VM) 将加入你提供的域。 因此,在 HDInsight 上运行的所有服务(Apache Ambari、Apache Hive 服务器、Apache Ranger、Apache Spark Thrift 服务器等)都可以为经身份验证的用户无缝运行。 然后,管理员可以使用 Apache Ranger 创建强大的授权策略,以针对群集中的资源提供基于角色的访问控制。

将 HDInsight 与 Active Directory 集成

开源 Apache Hadoop 依赖于 Kerberos 协议来提供身份验证和安全性。 因此,具有企业安全性套餐(ESP)的 HDInsight 群集节点已加入由Microsoft Entra 域服务管理的域。 将为群集上的 Hadoop 组件配置 Kerberos 安全性。

自动创建以下内容:

  • 每个 Hadoop 组件的服务主体
  • 每台加入域的计算机都有一个计算机主体
  • 为每个群集设置一个组织单位 (OU),用于存储这些服务和计算机凭证。

总之,您需要设置包含以下内容的环境:

  • Active Directory域(由 Microsoft Entra 域服务 管理)。 域名必须为 39 个字符或更少,才能使用 Azure HDInsight.
  • 在Microsoft Entra 域服务中启用了安全 LDAP(LDAPS)。
  • 确保在为 HDInsight 和 Microsoft Entra 域服务 选择单独的虚拟网络时,提供正确的网络连接。 HDInsight 虚拟网络中的 VM 必须能够通过虚拟网络对等互连看到 Microsoft Entra 域服务。 如果 HDInsight 和Microsoft Entra 域服务部署在同一虚拟网络中,则会自动提供连接,无需执行进一步操作。

设置不同的域控制器

HDInsight 目前仅支持Microsoft Entra 域服务作为群集用于 Kerberos 通信的主域控制器。 只要这种复杂的 Active Directory 设置能够启用 Microsoft Entra 域服务 以供 HDInsight 访问,就可以实现其他类似的复杂设置。

Microsoft Entra 域服务

Microsoft Entra 域服务提供与Windows Server Active Directory完全兼容的托管域。 Azure负责在高可用性(HA)设置中管理、修补和监视域。 你可以部署群集,而不用担心如何维护域控制器。

用户、组和密码从Microsoft Entra ID同步。 从Microsoft Entra实例到Microsoft Entra 域服务的单向同步使用户能够使用相同的公司凭据登录到群集。

有关详细信息,请参阅使用 Microsoft Entra 域服务 配置含 ESP 的 HDInsight 群集

IaaS虚拟机上的本地Active Directory环境或Active Directory

如果您有一个本地 Active Directory 实例或更复杂的 Active Directory 设置,可以使用 Microsoft Entra Connect 将这些标识同步到 Microsoft Entra ID。 然后,可以在该Active Directory租户上启用Microsoft Entra 域服务。

由于 Kerberos 依赖于密码哈希,因此必须在 Microsoft Entra 域服务 上启用密码哈希同步。

如果您使用带有联合身份验证的 Active Directory 联合服务(AD FS),则必须启用密码哈希同步。(有关推荐设置,请观看此视频。)密码哈希同步有助于灾难恢复,以防 AD FS 基础结构发生故障,还有助于防止凭据泄露。 有关详细信息,请参阅 使用 Microsoft Entra Connect Sync 进行密码哈希同步

当仅在 IaaS VM 上使用本地 Active Directory 或 Active Directory(而不使用 Microsoft Entra ID 和 Microsoft Entra 域服务)时,HDInsight 群集与 ESP 的配置不受支持。

如果使用联合身份验证并且密码哈希已正确同步,但是身份验证失败,请检查是否为 PowerShell 服务主体启用了云密码身份验证。 否则,必须为Microsoft Entra租户设置Home Realm Discovery(“HRD”)策略。 若要检查和设置 HRD 策略,请执行以下操作:

  1. 安装 Microsoft。EntraMicrosoft。Entra.Beta 模块。

    Install-Module Microsoft.Entra
    Install-Module microsoft.Entra.Beta
    
  2. 使用混合标识管理员凭据建立连接。

    Connect-Entra -Scopes 'Application.ReadWrite.All'
    
  3. 检查是否已创建Azure PowerShell服务主体。

    Get-EntraServicePrincipal -SearchString "Azure PowerShell"
    
  4. 如果它不存在,则创建此服务主体。

    $powershellSPN = New-EntraServicePrincipal -AppId 1950a258-227b-4e31-a9cf-717495945fc2
    
  5. 创建策略并将其附加到此服务主体。

     # Determine whether policy exists
     Get-EntraBetaPolicy | Where {$_.DisplayName -eq "EnableDirectAuth"}
    
     # Create if not exists
     $policy = New-EntraBetaPolicy `
         -Definition @('{"HomeRealmDiscoveryPolicy":{"AllowCloudPasswordValidation":true}}') `
         -DisplayName "EnableDirectAuth" `
         -Type "HomeRealmDiscoveryPolicy"
    
     # Determine whether a policy for the service principal exist
     Get-EntraBetaServicePrincipalPolicy `
         -Id $powershellSPN.ObjectId
    
     # Add a service principal policy if not exist
     Add-EntraBetaServicePrincipalPolicy `
         -Id $powershellSPN.ObjectId `
         -refObjectID $policy.ID
    

后续步骤