0

我正在尝试在某个订阅中创建 HDInsight 群集。现在,我选择的默认存储类型是 ADLS Gen2 类型,并且存储实例存在于同一订阅中(此处的 UI 无论如何都会仅列出同一订阅中的 ADLS Gen2 存储帐户)。然后正如您在下面的屏幕截图中看到的那样,UI 还要求将用户分配的服务身份作为必填字段。我不明白这个身份的真正需要。由于集群和 ADLS Gen2 将在同一个订阅中,因此集群无论如何都能够访问存储——因为,它发生的方式是在集群部署期间动态获取存储密钥,因为它们在相同的订阅。这就是存储连接的方式。所以如果发生这种情况,指定用户分配的托管标识有什么需要?我还验证了输入用户分配的托管标识的选项仅在我们选择存储类型为 ADLS Gen2 而不是 ADLS Gen1 和 Azure 存储时显示。ADLS Gen2 具有 blob 和目录接口。但这些只是接口,在它下面无论如何都是一个具有访问密钥的 blob 存储。事实上 ADLS Gen1 没有任何类似访问密钥的东西,因为它只提供目录接口,我们仍然不需要为用户指定用户分配的托管标识那,所以我想知道为什么 ADLS Gen2 会询问是否所有资源都在同一个订阅中。ADLS Gen2 具有 blob 和目录接口。但这些只是接口,在它下面无论如何都是一个具有访问密钥的 blob 存储。事实上 ADLS Gen1 没有任何类似访问密钥的东西,因为它只提供目录接口,我们仍然不需要为用户指定用户分配的托管标识那,所以我想知道为什么 ADLS Gen2 会询问是否所有资源都在同一个订阅中。ADLS Gen2 具有 blob 和目录接口。但这些只是接口,在它下面无论如何都是一个具有访问密钥的 blob 存储。事实上 ADLS Gen1 没有任何类似访问密钥的东西,因为它只提供目录接口,我们仍然不需要为用户指定用户分配的托管标识那,所以我想知道为什么 ADLS Gen2 会询问是否所有资源都在同一个订阅中。

在此处输入图像描述

4

1 回答 1

0

常见挑战:构建云应用程序时,如何管理代码中的凭据以对云服务进行身份验证。保持凭据安全是一项重要任务。理想情况下,凭据永远不会出现在开发人员工作站上,也不会检查到源代码控制中。Azure Key Vault 提供了一种安全存储凭据、机密和其他密钥的方法,但你的代码必须对 Key Vault 进行身份验证才能检索它们。

Azure Active Directory (Azure AD) 中的 Azure 资源托管标识功能解决了这个问题。该功能在 Azure AD 中为 Azure 服务提供了一个自动管理的标识。你可以使用该标识向任何支持 Azure AD 身份验证的服务(包括 Key Vault)进行身份验证,而无需在代码中添加任何凭据。

托管标识是在 Azure Active Directory (Azure AD) 中注册的标识,其凭据由 Azure 管理。使用托管标识,您无需在 Azure AD 中注册服务主体或维护证书等凭据。

托管标识可在 Azure HDInsight 中使用,以允许群集访问 Azure AD 域服务、访问 Azure Key Vault 或访问 Azure Data Lake Storage Gen2 中的文件。

用户分配的托管标识创建为独立的 Azure 资源。通过创建过程,Azure 在 Azure AD 租户中创建一个受正在使用的订阅信任的身份。创建标识后,可以将标识分配给一个或多个 Azure 服务实例。用户分配标识的生命周期与其分配到的 Azure 服务实例的生命周期分开管理。

参考: Azure HDInsight 中的托管标识

希望这可以帮助。

于 2019-10-30T10:49:25.957 回答