3

我正在从 Azure Databricks Notebook 读取 Azure Blob 存储帐户(第 2 代)上的文件。两种服务都在同一地区(西欧)。一切正常,除非我在存储帐户前面添加防火墙。我已选择允许“受信任的 Microsoft 服务”:

Azure 门户存储帐户 - 防火墙

但是,现在运行笔记本最终会出现拒绝访问错误:

com.microsoft.azure.storage.StorageException: This request is not authorized to perform this operation.

我尝试直接从 Spark 访问存储,并使用 安装它dbutils,但同样的事情。

我会假设 Azure Databricks 算作受信任的 Microsoft 服务?此外,我找不到有关可添加到防火墙规则中的 Databricks 区域 IP 范围的可靠信息。

4

2 回答 2

4

是的,Azure Databricks 不算作受信任的 Microsoft 服务,您可以通过存储帐户防火墙查看受支持的受信任 Microsoft 服务。

来自网络,这里有两个建议:

  1. 查找Azure 数据中心 IP 地址并确定 Azure Databricks 所在区域的范围。将存储帐户防火墙中的 IP 列表列入白名单。

  2. 在 Azure 虚拟网络(预览版)中部署 Azure Databricks,然后在存储帐户的防火墙中将 VNet 地址范围列入白名单。您可以参考配置 Azure 存储防火墙和虚拟网络。此外,您可以使用 NSG 来限制来自此 Azure VNet 的入站和出站流量。注意:您需要将 Azure Databricks 部署到您自己的 VNet

希望这可以帮助。

于 2019-01-03T08:53:13.480 回答
1

仅当您在自己的 Azure 虚拟网络 (vnet) 中部署 Azure Databricks 时,所述方案才有效。有了这个,您就可以使用服务端点,因此可以将您的 Databricks vnet 添加到 Blob 存储。对于默认部署,这是不受支持且不可能的。有关更多详细信息以及如何启用 vnet-injection 功能的说明,请参阅以下文档。

启用上述异常不起作用,因为 Azure Databricks 不在 Blob 存储的受信任服务列表中。请参阅以下文档,哪些服务仍然可以访问启用了例外的存储帐户。

于 2019-01-03T09:01:58.780 回答