โ08-08-2024 02:42 PM
The problem
After setting up Unity Catalog and a managed Volume, I can upload/download files to/from the volume, on Databricks Workspace UI.
However, I cannot access the volume from notebook. I created an All-purpose compute, and run dbutils.fs.ls("/Volumes/catalog1/schema1/volumn11"). Then I got the error
Operation failed: "This request is not authorized to perform this operation.", 403, GET
How we set up Unity Catalog and Managed Volume
Details about the All-purpose compute
โ08-08-2024 04:27 PM
I found the reason and a solution, but I feel this is a bug. And I wonder what is the best practice.
When I enable the ADSL Gen2's Public network access from all networks as shown below, I can access the volume from a notebook.
However, if I enable the ADSL Gen2's Public network access from selected virtual networks and IP addresses as shown below, I cannot access the volume from a notebook. Even though I added the VM's public IP to the whitelist, added the resource Microsoft.Databricks/accessConnectors to the resource instances, and enabled the Exceptions Allow Azure services on the trusted services list to access this storage account. As I understand, my compute has the Unity Catalog badge, it should access the ADSL Gen2 via the Access Connector for Databricks (Managed Identity), so it should be able to access the ADSL Gen2 via the Access Connector for Databricks.
โ08-08-2024 04:27 PM
I found the reason and a solution, but I feel this is a bug. And I wonder what is the best practice.
When I enable the ADSL Gen2's Public network access from all networks as shown below, I can access the volume from a notebook.
However, if I enable the ADSL Gen2's Public network access from selected virtual networks and IP addresses as shown below, I cannot access the volume from a notebook. Even though I added the VM's public IP to the whitelist, added the resource Microsoft.Databricks/accessConnectors to the resource instances, and enabled the Exceptions Allow Azure services on the trusted services list to access this storage account. As I understand, my compute has the Unity Catalog badge, it should access the ADSL Gen2 via the Access Connector for Databricks (Managed Identity), so it should be able to access the ADSL Gen2 via the Access Connector for Databricks.
โ11-03-2024 10:59 PM
I had this exact issue though for me the problem was I had not configured private endpoints for the "dfs" and "queue" services, only for "blob". Once I added the missing private endpoints I could list and write to the catalog from a notebook without issues.
โ11-27-2024 10:11 AM
Thank you for this answer! I had exactly the same issue and your post solved my problem.
It really shouldn't throw a 403 error if that is the issue.
โ12-05-2024 06:54 AM
HTTP 403 is the correct response, as Databricks is forbidden from accessing the resource. You need to add your VNet to the allowlist for this to work.
โ12-05-2024 06:53 AM
No no no, don't do this! You should have your Databricks running in a VNet (ref: Deploy Azure Databricks in your Azure virtual network (VNet injection) - Azure Databricks | Microsof...).
You then select "Enabled from selected virtual networks and IP addresses" and add your VNet to the allowlist.
When you go to set up Serverless Compute, you will be given a list of VNets to add to this list, you will add those here also.
Join a Regional User Group to connect with local Databricks users. Events will be happening in your city, and you wonโt want to miss the chance to attend and share knowledge.
If there isnโt a group near you, start one and help create a community that brings people together.
Request a New Group