当前位置: 首页 > 知识库问答 >
问题:

如何使用用户分配身份从Database ricks访问ADLS blob容器

钱远
2023-03-14

我有包含 Blob 容器的 ADLS 存储帐户。我已经成功地在数据砖中将 ADLS 与服务主体一起挂载,并且能够对数据进行必要的转换。

现在,我正在使用用户分配的托管身份来避免在代码中保留机密。为此,我创建了所需的托管身份,并通过在存储帐户中分配必要的角色来为我的服务主体启用它。

我的问题是,如何使用托管标识,或者如何在不装载或使用机密的情况下从 Databricks 对 ADLS 存储进行转换?

请建议一个工作解决方案或任何有用的论坛。

谢谢

共有1个答案

孙子民
2023-03-14

可以使用登录Azure Database ricks时使用的相同Azure Active Directory(Azure AD)标识,从Azure Database ricks群集自动对Azure Data Lake Storage Gen1(ADLS Gen1)和Azure Data Lake Storage Gen2(ADLS Gen2)进行身份验证。为群集启用Azure Data Lake Storage凭据直通时,在该群集上运行的命令可以读取和写入Azure Data Lake Storage中的数据,而无需配置访问存储的服务主体凭据。

为高并发群集启用Azure Data Lake存储凭据传递

高并发群集可以由多个用户共享。它们仅支持Python,SQLAzure Data Lake Storage凭据直通。

  1. 创建集群时,将集群模式设置为高并发。
  2. 在“高级选项”下,选择“为用户级数据访问启用凭据直通”,并且仅允许 Python 和 SQL 命令。

为标准群集启用 Azure 数据湖存储凭据直通

  1. 创建群集时,请将“群集模式”设置为“标准”。
  2. 在“高级选项”下,选择“为用户级数据访问启用凭据直通”,然后从“单用户访问”下拉列表中选择用户名。

使用凭据传递直接访问Azure数据湖存储

在配置Azure数据湖存储凭据传递并创建存储容器后,您可以使用< code>adl://路径直接访问Azure数据湖存储Gen1中的数据,并使用< code>abfss://路径直接访问Azure数据湖存储Gen2中的数据。

示例:

Python-spark.read.csv("adl://

请参阅此官方留档:使用Azure Active Directory凭据直通访问Azure Data Lake Storage

 类似资料:
  • 我已经创建了一个blob trigger azure函数,它目前在代码中使用连接字符串。 local.settings.json 我想使用托管标识来避免在代码中使用连接字符串。

  • 我使用以下方法注册了身份验证器:

  • 我的Laravel REST API使用Tymon/JWT-Auth包。在我的文件中,我可以添加用于未验证用户的路由和用于已验证用户的路由。 未经身份验证用户的路由忽略授权标头。但是,我想要一个路由组,如果标头有效,它可以利用授权用户数据,如果标头没有设置或无效,它可以做其他事情。 有没有办法实现这种功能,或者JWTAuth包内置中间件中有没有解决方案?

  • 我已经按照链接创建了Azure AD身份访问验证。 http://www.windowsazure.com/en-us/documentation/articles/active-directory-dotnet-how-to-use-access-control/ 我按照上面的链接,在索赔页面上检索下面的信息。 认证:真实 http://schemas.xmlsoap.org/ws/2005/0

  • 我已经按照链接创建了Azure AD身份访问验证。 http://www.windowsazure.com/en-us/documentation/articles/active-directory-dotnet-how-to-use-access-control/ 我按照上面的链接,在索赔页面上检索下面的信息。 认证:真实 http://schemas.xmlsoap.org/ws/2005/0

  • 我试图编写一个docker文件,它创建一个拥有主目录的用户,该用户是< code>sudoers组的一部分,并以该用户的身份启动容器。 我面临的问题是,从容器内部,每个命令都需要预先附加 ,这显然会为创建的每个文件带来权限问题。 我这样做的理由是,我想要一个模仿干净Linux环境的容器,我可以从中为用户编写安装脚本。 以下是到目前为止我的 Docker 文件的副本: