azureazure-logic-appsazureportal

Can't create a file share in a storage account while deploying Logic App from the Portal


I am getting the below error while creating a Logic App from the portal.

"Creation of storage file share failed with: 'The remote server returned an error: (403) Forbidden.'. Please check if the storage account is accessible."

While selecting the initial Logic App configuration, I am selecting an existing storage account, which should allow accesses from azure trusted services (configuration below).

enter image description here

enter image description here

This will fail if there are private endpoints defined in the storage account (like in the images below), but also without defining private endpoints. And since the "Allow Azure trusted services" setting is turned on, I believe these shouldn't disallow public traffic, and trusted services should be able to communicate with the storage account via the Azure backbone. Right?

But assuming that Azure Resource Manager is not a trusted Azure service, I whitelisted the Azure Resource Manager IP addresses, and the outcome was still the same.

Any idea what might be the issue(s) here?


Solution

  • It seems not to be possible to deploy a Standard Logic App from the portal, if the targeted storage account will be hidden behind a firewall. The workaround is to deploy the Standard Logic app via ARM template. What will happen is that first the Storage account & File share will be created, and and then the firewall will be enabled on it.

    The resources will be created in the following order:

    1. Storage account which denies the public traffic.

    2. VNET and Subnets.

    3. Private DNS Zones and Private Endpoints for blob, file, queue, and table services.

    4. File Share (Logicapp App settings requires a file share to create the host runtime directories and files).

    5. App Service Plan (Workflow standard -WS1) to host Standard Logic App resources.

    6. Standard Logic App, and set network config with the VNET integration (to connect to storage account on private endpoints).

    More information here.