【问题标题】:Managed Service Identity configuration for Azure Data Lake Storage Gen2Azure Data Lake Storage Gen2 的托管服务标识配置
【发布时间】:2020-01-01 14:42:27
【问题描述】:

尝试通过控制台中的 Hadoop 客户端使用 MSI(Azure 托管标识)连接到 Azure Data Lake Storage Gen2 并收到错误 ls: AADToken: HTTP connection failed for getting token from AzureAD. Http response: 400 Bad Request*

通过共享密钥连接工作正常。

做了什么:

  1. 在 Azure 中创建了一个 Windows 10 VM,并从 Apache 站点和 JRE 1.8.0 安装了 Haddop 客户端 3.2
  2. 使用https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-quickstart-create-account 创建了存储帐户
  3. 使用https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal 创建了 Azure AD 应用程序
  4. 为 VM 启用系统分配的托管标识,如此处所述 https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm
  5. https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal 所述,为存储帐户分配了托管标识访问权限

使用以下命令进行连接:

hadoop fs -Dfs.azure.ssl.channel.mode=Default_JSSE -Dfs.azure.account.oauth.provider.type=org.apache.hadoop.fs.azurebfs.oauth2.MsiTokenProvider -Dfs.azure.account.auth.type=OAuth -Dfs.azure.account.oauth2.msi.tenant=<tenant_ID> -Dfs.azure.account.oauth2.client.id=<Client_ID> -ls abfss://<filesystem_name>2@<storage_account_name>.dfs.core.windows.net/

有什么问题或遗漏了吗?请指教。

谢谢!

【问题讨论】:

  • 如果使用MSI(System-assigned managed identity)访问adls gen2,那么步骤3中的AD App是做什么用的?
  • 据我所知创建一个客户 ID。
  • 不需要这样做,如果你启用VM的MSI,它会自动在你的租户中创建一个服务主体,它与你的VM同名,它有自己的客户端ID。您可以在门户中的 Azure Active Directory 中找到它 -> 企业应用程序 -> 使用您的 VM 名称搜索(使用All Applications 过滤),请参阅i.stack.imgur.com/Wotcb.png。应用程序 ID(客户端 ID)是您想要的。如果您使用该客户端 ID,它会起作用吗?
  • 在第 5 步中,您是否为 MSI 赋予了Storage Blob Data Owner 角色?
  • 有效!万分感谢。角色是贡献者,我将其更改为存储 Blob 数据所有者,它现在可以工作了。谢谢!

标签: azure-active-directory azure-data-lake


【解决方案1】:

添加我的评论作为答案:

无需执行第 3 步,如果启用 VM 的 MSI,它将自动在您的租户中创建一个服务主体,它与您的 VM 同名,它有自己的客户端 ID。您可以在门户中的 Azure Active Directory 中找到它 -> 企业应用程序 -> 使用您的 VM 名称搜索(使用 All Applications 过滤)。

在第 5 步中,您需要为 MSI 赋予Storage Blob Data Owner 角色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-12
    • 2020-07-21
    • 1970-01-01
    • 2019-09-10
    • 2020-01-13
    • 2020-12-01
    • 1970-01-01
    • 2019-12-02
    相关资源
    最近更新 更多