Azure Databricks:访问防火墙后面的Blob存储

时间:2019-01-03 08:18:54

标签: azure firewall azure-blob-storage azure-databricks

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

Azure Portal Storage Account - Firewall

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

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

我尝试直接从Spark并通过用dbutils挂载来访问存储,但是还是一样。

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

2 个答案:

答案 0 :(得分:3)

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

从联网中,有两个建议:

  1. 找到Azure datacenter IP address并确定Azure Databricks所在区域的范围。将存储帐户防火墙中的IP列表列入白名单。

  2. Deploy Azure Databricks in your Azure Virtual Network (Preview),然后在存储帐户的防火墙中将VNet地址范围列入白名单。您可以参考configure Azure Storage firewalls and virtual networks.。此外,您还有NSG来限制来自此Azure VNet的入站和出站流量。注意:您需要将Azure Databricks部署到您自己的VNet

希望这会有所帮助。

答案 1 :(得分:0)

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

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