I am deploying several storage accounts and a Vnet. The ARM template completes successfully but when I view the storage account in the Portal..there are no virtual networks listed. I also confirmed this via the Resource Explorer. I captured the output of the Subnet Resource ID to confirm the path is correct for the ID variable.
__Variables__
"vnet_storageSubnetId": "[ resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnet_vnetName'), variables('vnet_storageSubnet')) ]"
__Storage Resource__
{
"apiVersion": "2016-01-01",
"type": "Microsoft.Storage/storageAccounts",
"sku": {
"name": "Standard_LRS",
"tier": "Standard"
},
"name": "[ variables('storage_saName') ]",
"location": "[ resourceGroup().location ]",
"kind": "Storage",
"tags": {},
"scale": null,
"properties": {
"networkAcls": {
"bypass": "AzureServices",
"virtualNetworkRules": [
{
"id": "[ variables('vnet_storageSubnetId') ]",
"action": "Allow"
}
],
"defaultAction": "Deny"
}
},
"dependsOn": [
"[ concat('Microsoft.Network/virtualNetworks/', variables('vnet_vnetName')) ]"
]
}
__Vnet Resource__
{
"apiVersion": "2017-10-01",
"type": "Microsoft.Network/virtualNetworks",
"name": "[ variables('vnet_vnetName') ]",
"location": "[ resourceGroup().location ]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"x.x.x.x/x"
]
},
"subnets": [
{
"name": "[ variables('vnet_storageSubnet') ]",
"properties": {
"addressPrefix": "x.x.x.x/x",
"serviceEndpoints": [
{
"service": "Microsoft.Storage"
}
]
}
}
}
@mikermesh looking over the storage and vnet resource JSON you provided everything looks correct. I just tested deploying the ARM template you reference via PowerShell, after the deployment completed the storage account showed that it was connected to VNet1 Subnet1 using service endpoints.

Are you still encountering this issue?
@cocallaw Thanks for the follow-up. I found the issue...I update my template to reference apiVersion 2017-06-01 which resolved it for me.
Thank you for this topic. Finally found why it wasn't working.
Most helpful comment
@cocallaw Thanks for the follow-up. I found the issue...I update my template to reference apiVersion 2017-06-01 which resolved it for me.