Forum Discussion
-- Microsoft Azure Storage Explorer || Private Endpoints on ADLS Gen2 --
- Apr 20, 2020
I just understood and solved my issue, was all about DNS resolution, adding below some explanation.
The need:
End users need to connect to PaaS services from home through VPN or from On-Premises private networks through their https://docs.microsoft.com/en-us/azure/private-link/private-endpoint-overview#dns-configuration IPs.
Overview of the solution:
Forward DNS request to a DNS VM proxy located on Azure.
The DNS VM proxy is in a vnet that has a link with your Azure private DNS zones hosting the https://docs.microsoft.com/en-us/azure/private-link/private-endpoint-overview#dns-configuration.
Detail of the solution:
- Create the Azure https://docs.microsoft.com/en-us/azure/dns/private-dns-overview “privatelink.blob.core.windows.net” with the DNS A record “mystoragename.privatelink.blob.core.windows.net” that returns the IP of my Storage Account private endpoint’s IP.
- Use a VM DNS proxy, this VM’s vNet is linked to the upper mentioned Azure private dns zone. This DNS VM forwards DNS request to Azure DNS IP https://docs.microsoft.com/en-us/azure/virtual-network/what-is-ip-address-168-63-129-16.
- Here, a solution could be to use https://azure.microsoft.com/en-us/services/active-directory-ds/ as the DNS proxy, it’s natively configured to forward dns request to 168.63.129.16.
- Use a DNS conditional forwarder on the On-Premises DNS servers to forward dns requests for the DNS zone “mystoragename.blob.core.windows.net” to the DNS proxy on Azure (in my context, to the 2 private Ips of my Azure AD DS service).
Feature request:
A feature request has been published https://feedback.azure.com/forums/34192--general-feedback/suggestions/39697135-simplify-private-endpoint-dns-resolution-from-on-p to simplify Private Endpoint DNS resolution from On-Premises.
Jamesdld I checked on this and while it appears that Storage Explorer through the Azure portal works as expected with private endpoints, the client tool didn't. I suspect that Azure Storage Explorer uses legacy Blob APIs to enumerate / list contents of storage accounts. I was able to get Storage Explorer client working (from a machine within the VNET) by creating a private endpoint and private DNS zone for Blob access.
Hi Roy
I confirm that connecting to blob Storage Accounts works fine.
My issue is connecting to a Storage Account that is enabled for ADLS Gen 2, the target Subresources are blob and dfs.
Can you confirm the issue? It occurs with Private Endpoints when you try to connect with a user that has ACL read and execute ACL.
Thank you,
James
- RoyWilsApr 15, 2020
Microsoft
Jamesdld It may be useful to test by connecting with an account with storage account owner permissions
- JamesdldApr 15, 2020Brass Contributor
Hi
please find below the test results.
----
----
----
----
- RoyWilsApr 15, 2020
Microsoft
Jamesdld Did you validate whether access through the Azure Portal Storage Explorer works in either case? (browsing from a machine on the same VNET as the private endpoint). Also notice that your errors on Test 1 and Test 2 are different - check the last part of this article (although it is written for Databricks/Spark) as well around reviewing ADLS ACLs : https://deep.data.blog/category/azure-data-lake-storage-gen-2/