是否可以使用 Databricks 的专用端点连接到 Azure 存储帐户?
Is it possible to connect to Azure Storage Account with Private Ednpoint from Databricks?
我正在尝试从我的 Databricks Notebook 连接到启用了专用端点的 Azure DataLake 2/存储帐户,但出现错误:
Caused by: StorageException: This Request is not Authorized to Perform this operation.
我尝试在防火墙 IP 列表中添加 Databricks IP 地址(在 Databricks 附带的网络接口/VNET 中找到,但不确定是否是那个)以同时列出来自本地的请求。但是得到同样的错误。有没有办法与这样的配置建立连接?
我创建了与您相同的环境,并尝试在 Databricks notebook 中装载存储帐户,但出现相同的错误“未授权”。
解法:
因为我们已经创建了带有专用终结点的存储帐户,所以默认情况下有防火墙设置。因此,要解决这个问题,我们需要在其中设置数据块正在使用的 vnet 和子网,如下所示。
因此,当我安装存储帐户时,它会成功安装。
但是要再次从文件夹中读取文件,您必须管理容器的 ACL 以及文件。
之后你可以得到以下输出:
通过右键单击需要从 Databricks notebook 读取的文件,也可以对文件执行相同的操作。
你可以在为文件添加访问控制后在Databricks中测试它:
注意: 我已经使用服务主体(即 ADLStest)从 Databricks 使用 ADLS gen2 存储帐户。该服务主体应该具有分配给它的“Storage Blob Data Contributor”角色。并且管理 ACL 应该仅为该服务主体完成。
参考:
Access Azure Data Lake Storage Gen2 using OAuth 2.0 with an Azure service principal
Mount an Azure Data Lake Storage Gen2 Account in Databricks (mssqltips.com)
我正在尝试从我的 Databricks Notebook 连接到启用了专用端点的 Azure DataLake 2/存储帐户,但出现错误:
Caused by: StorageException: This Request is not Authorized to Perform this operation.
我尝试在防火墙 IP 列表中添加 Databricks IP 地址(在 Databricks 附带的网络接口/VNET 中找到,但不确定是否是那个)以同时列出来自本地的请求。但是得到同样的错误。有没有办法与这样的配置建立连接?
我创建了与您相同的环境,并尝试在 Databricks notebook 中装载存储帐户,但出现相同的错误“未授权”。
解法:
因为我们已经创建了带有专用终结点的存储帐户,所以默认情况下有防火墙设置。因此,要解决这个问题,我们需要在其中设置数据块正在使用的 vnet 和子网,如下所示。
因此,当我安装存储帐户时,它会成功安装。
但是要再次从文件夹中读取文件,您必须管理容器的 ACL 以及文件。
之后你可以得到以下输出:
通过右键单击需要从 Databricks notebook 读取的文件,也可以对文件执行相同的操作。
你可以在为文件添加访问控制后在Databricks中测试它:
注意: 我已经使用服务主体(即 ADLStest)从 Databricks 使用 ADLS gen2 存储帐户。该服务主体应该具有分配给它的“Storage Blob Data Contributor”角色。并且管理 ACL 应该仅为该服务主体完成。
参考:
Access Azure Data Lake Storage Gen2 using OAuth 2.0 with an Azure service principal
Mount an Azure Data Lake Storage Gen2 Account in Databricks (mssqltips.com)