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 群集节点上安装的托管标识生成访问令牌来访问外部服务。 对于计算 VM 等某些 Azure 服务,托管标识是使用某个可用于获取访问令牌的终结点实现的。 此终结点当前在 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 域服务参与者”角色,以避免遇到这些问题。

常见问题

如果在创建群集后删除托管标识,会发生什么情况?

需要托管标识时,群集会遇到问题。 创建群集后,当前没有办法更新或更改托管标识。 建议确保在群集运行时不删除托管标识。 或者,可以重新创建群集并分配新的托管标识。

后续步骤