azure - 是否可以使用 Databricks 的专用终结点连接到 Azure 存储帐户?

标签 azure networking azure-blob-storage databricks azure-storage-account

我正在尝试连接到通过我的 Databricks Notebook 中的专用终结点启用的 Azure DataLake 2/存储帐户,但出现错误:

Caused by: StorageException: This Request is not Authorized to Perform this operation.

我尝试在防火墙 IP 列表中添加 Databricks IP 地址(在与 Databricks 相连的网络接口(interface)/VNET 中找到,但不确定是否是那个),以同时列出来自本地的请求。但遇到同样的错误。有没有办法通过这样的配置建立连接?

最佳答案

我创建了与您相同的环境,并尝试在 Databricks 笔记本中安装存储帐户,但收到了相同的错误“未经授权”。

enter image description here

解决方案:

由于我们已经创建了具有专用终结点的存储帐户,因此默认设置有防火墙。因此,为了解决这个问题,我们需要在其中设置 databrick 使用的 vnet 和子网,如下所示。

enter image description here

因此,当我挂载存储帐户时,它会成功挂载。

enter image description here

但要再次从文件夹中读取文件,您必须管理容器和文件的 ACL。

enter image description here

之后你可以得到以下输出:

enter image description here

通过右键单击需要从 Databricks 笔记本读取的文件,也可以对文件执行相同的操作。

enter image description here

向文件添加访问控制后,您可以在 Databricks 中测试它:

enter image description here

注意:我已使用服务主体(即 ADLStest)来使用 Databricks 中的 ADLS gen2 存储帐户。该服务主体应分配有“存储 Blob 数据贡献者”角色。并且管理 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)

关于azure - 是否可以使用 Databricks 的专用终结点连接到 Azure 存储帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68943377/

相关文章:

http - Wireshark 的简单 Http 替代方案

excel - 如何使用 VBA 将 Excel 工作表上传到 Azure ADLS?

angular - 如何使用 Angular App Shell 模型保护 App Shell

javascript - 发布者域验证失败。服务器返回了意外的内容类型 header 值

azure - 如何将证书添加到Azure门户中的 'www'子域

Linux Socket编程 : what happen in server socket when client socket gone off in the middle of communication

java - 网络和多平台中的 Endian - 澄清吗?

c# - Azure 媒体播放器无法在 iPhone 上使用 AES 保护

html - 无法在 url 的 SAS 部分中检索带有编码 &(与号)的图像 blob

Azure blob 存储破坏了图像质量