Azure Preparation
Creating a BYOC warehouse on Azure involves two Azure-side tasks: preparing a VNet and subnet, and (optionally) reviewing the resource orchestration template and the Deployment Stack it creates.
Prepare a VNet and subnet
You only need this if you deploy into an existing VNet. If no VNet and subnet meet the requirements, create them in advance.
If a VNet and subnet already meet the region, availability zone, and subnet requirements and you want to deploy the BYOC warehouse into them, skip the steps below. For the supported regions, see Supported Regions.
Create a VNet and subnet
-
In the Azure portal, open the Virtual networks service and click Create.

-
Select the Subscription and Resource Group, enter a Virtual network name, select a supported Region, then click Next.

-
Click + Add a subnet, then click Edit.

-
Enter a Name, specify the subnet range, click Save, then click Next.
noteTo allow outbound internet access, specify a NAT gateway when you create the subnet.

-
Click Create.

Understand the template and Deployment Stack (optional)
You do not need to do anything in this section. Read on only if you want to understand how the deployment works.
When you deploy the template as a Deployment Stack under your cloud account, it operates on cloud resources such as the VNet, virtual machines, and storage account, so it requires a set of IAM permissions.
Use administrator privileges to deploy the template, or ask your administrator to do it for you. Otherwise the deployment can fail because of insufficient permissions.
About the template
The template that VeloDB provides runs under your cloud account. Its code is visible and auditable, and it does not touch your data or other environments in the VNet. You can review the template at this link:
https://onlinevelodbwestus3.blob.core.windows.net/velodb-cloud-online-westus3/public/azure-westus3-byoc-cf.json
When you deploy the template as a Deployment Stack, it creates and deploys the Agent. The Agent then establishes a private connection with VeloDB Cloud and completes the warehouse initialization.
After the deployment finishes, open the warehouse from the VeloDB Cloud console and create a compute cluster for data analysis, the same as with any other warehouse.
View Deployment Stack resources
You can view all resources the VeloDB template created, and look up a specific resource by name, in the Deployment Stack.
All resources the template creates belong to your cloud account. They are used only within your VNet and are not exposed externally.
- Virtual Machine
- Name: VeloDBAgent
- Purpose: Used to deploy Agent, Prometheus, FluentBit and other programs
- Private Endpoint
- Name: VeloDBEndpoint
- Purpose: Establish a private network connection (PrivateLink Connection) with the VeloDB Manage service, so that you can pull control instructions and push monitoring and logs in one direction
- Network SecurityGroup
- Name: VeloDBSecurityGroupIngress, VeloDBSecurityGroupEgress
- Purpose: Bound to the endpoint and all Virtual Machines created by VeloDB, and restrict inbound and outbound traffic for specific ports and sources through firewall rules
- Storage Account
- Name: VeloDBBucket
- Purpose: Used to store data warehouse data
- User-Assigned Managed Identity & Role Definition
- Name:
- VeloDBDataAccessIdentity (Kernel-side managed identity), VeloDBAgentIdentity (Control-side managed identity)
- VeloDBControlPlaneRole (Custom role permissions bound to the control-side managed identity)
- Purpose: The created user-assigned managed identity has the minimum permission policy required by the Agent, and all subsequent control operations are carried out using the identity of VeloDBAgentIdentity
- Name:
Permissions of the user-assigned managed identity
After you first deploy the template as a Deployment Stack, all management and control operations run with the permissions of the user-assigned managed identity. The following is an excerpt from the template.
-
Permission summary:
'Microsoft.Compute/register/action'
'Microsoft.Compute/virtualMachines/read'
'Microsoft.Compute/virtualMachines/write'
'Microsoft.Compute/virtualMachines/delete'
'Microsoft.Compute/virtualMachines/start/action'
'Microsoft.Compute/virtualMachines/powerOff/action'
'Microsoft.Compute/virtualMachines/redeploy/action'
'Microsoft.Compute/virtualMachines/restart/action'
'Microsoft.Compute/virtualMachines/deallocate/action'
'Microsoft.Compute/virtualMachines/runCommand/action'
'Microsoft.Compute/virtualMachines/attachDetachDataDisks/action'
'Microsoft.Compute/virtualMachines/vmSizes/read'
'Microsoft.Compute/virtualMachines/runCommands/read'
'Microsoft.Compute/virtualMachines/runCommands/write'
'Microsoft.Compute/virtualMachines/instanceView/read'
'Microsoft.Compute/virtualMachines/extensions/read'
'Microsoft.Compute/locations/diskOperations/read'
'Microsoft.Compute/disks/read'
'Microsoft.Compute/disks/write'
'Microsoft.Compute/disks/delete'
'Microsoft.Compute/skus/read'
'Microsoft.Compute/locations/usages/read'
'Microsoft.Compute/locations/publishers/artifacttypes/offers/skus/read'
'Microsoft.Compute/locations/publishers/artifacttypes/offers/read'
'Microsoft.Compute/locations/publishers/artifacttypes/offers/skus/versions/read'
'Microsoft.Compute/operations/read'
'Microsoft.Compute/images/read'
'Microsoft.Compute/locations/operations/read'
'Microsoft.Compute/locations/vmSizes/read'
'Microsoft.Compute/locations/runCommands/read'
'Microsoft.Network/register/action'
'Microsoft.Network/operations/read'
'Microsoft.Network/loadBalancers/read'
'Microsoft.Network/loadBalancers/write'
'Microsoft.Network/loadBalancers/delete'
'Microsoft.Network/loadBalancers/health/action'
'Microsoft.Network/loadBalancers/backendAddressPools/queryInboundNatRulePortMapping/action'
'Microsoft.Network/loadBalancers/backendAddressPools/updateAdminState/action'
'Microsoft.Network/loadBalancers/backendAddressPools/health/action'
'Microsoft.Network/loadBalancers/backendAddressPools/read'
'Microsoft.Network/loadBalancers/backendAddressPools/write'
'Microsoft.Network/loadBalancers/backendAddressPools/delete'
'Microsoft.Network/loadBalancers/backendAddressPools/backendPoolAddresses/read'
'Microsoft.Network/loadBalancers/backendAddressPools/join/action'
'Microsoft.Network/loadBalancers/providers/Microsoft.Insights/diagnosticSettings/read'
'Microsoft.Network/loadBalancers/providers/Microsoft.Insights/diagnosticSettings/write'
'Microsoft.Network/loadBalancers/frontendIPConfigurations/read'
'Microsoft.Network/loadBalancers/frontendIPConfigurations/join/action'
'Microsoft.Network/loadBalancers/frontendIPConfigurations/loadBalancerPools/read'
'Microsoft.Network/loadBalancers/frontendIPConfigurations/loadBalancerPools/write'
'Microsoft.Network/loadBalancers/frontendIPConfigurations/loadBalancerPools/delete'
'Microsoft.Network/loadBalancers/loadBalancingRules/read'
'Microsoft.Network/loadBalancers/loadBalancingRules/health/action'
'Microsoft.Network/loadBalancers/networkInterfaces/read'
'Microsoft.Network/loadBalancers/outboundRules/read'
'Microsoft.Network/loadBalancers/virtualMachines/read'
'Microsoft.Network/loadBalancers/probes/read'
'Microsoft.Network/loadBalancers/probes/join/action'
'Microsoft.Network/loadBalancers/providers/Microsoft.Insights/metricDefinitions/read'
'Microsoft.Network/networkInterfaces/read'
'Microsoft.Network/networkInterfaces/write'
'Microsoft.Network/networkInterfaces/join/action'
'Microsoft.Network/networkInterfaces/delete'
'Microsoft.Network/networkInterfaces/effectiveRouteTable/action'
'Microsoft.Network/networkInterfaces/effectiveNetworkSecurityGroups/action'
'Microsoft.Network/networkInterfaces/ipconfigurations/read'
'Microsoft.Network/networkInterfaces/loadBalancers/read'
'Microsoft.Network/networkSecurityGroups/read'
'Microsoft.Network/networkSecurityGroups/write'
'Microsoft.Network/networkSecurityGroups/delete'
'Microsoft.Network/networkSecurityGroups/join/action'
'Microsoft.Network/virtualNetworks/read'
'Microsoft.Network/virtualNetworks/joinLoadBalancer/action'
'Microsoft.Network/virtualNetworks/subnets/read'
'Microsoft.Network/virtualNetworks/subnets/join/action'
'Microsoft.Network/virtualNetworks/subnets/joinLoadBalancer/action'
'Microsoft.Network/ipAllocations/read'
'Microsoft.Network/publicIPAddresses/read'
'Microsoft.Storage/storageAccounts/blobServices/containers/read'
'Microsoft.Storage/storageAccounts/blobServices/containers/write'
'Microsoft.Storage/storageAccounts/blobServices/containers/delete'
The specific permissions are divided as follows:
-
Virtual Machine permissions:
-
Manage vm instances
'Microsoft.Compute/register/action'
'Microsoft.Compute/virtualMachines/read'
'Microsoft.Compute/virtualMachines/write'
'Microsoft.Compute/virtualMachines/delete'
'Microsoft.Compute/virtualMachines/start/action'
'Microsoft.Compute/virtualMachines/powerOff/action'
'Microsoft.Compute/virtualMachines/redeploy/action'
'Microsoft.Compute/virtualMachines/restart/action'
'Microsoft.Compute/virtualMachines/deallocate/action'
'Microsoft.Compute/virtualMachines/runCommand/action'
'Microsoft.Compute/virtualMachines/attachDetachDataDisks/action'
'Microsoft.Compute/virtualMachines/vmSizes/read'
'Microsoft.Compute/virtualMachines/runCommands/read'
'Microsoft.Compute/virtualMachines/runCommands/write'
'Microsoft.Compute/virtualMachines/instanceView/read'
'Microsoft.Compute/virtualMachines/extensions/read'
'Microsoft.Compute/locations/diskOperations/read'
'Microsoft.Compute/disks/read'
'Microsoft.Compute/disks/write'
'Microsoft.Compute/disks/delete'
'Microsoft.Compute/skus/read'
'Microsoft.Compute/locations/usages/read'
'Microsoft.Compute/locations/publishers/artifacttypes/offers/skus/read'
'Microsoft.Compute/locations/publishers/artifacttypes/offers/read'
'Microsoft.Compute/locations/publishers/artifacttypes/offers/skus/versions/read'
'Microsoft.Compute/operations/read'
'Microsoft.Compute/images/read'
'Microsoft.Compute/locations/operations/read'
'Microsoft.Compute/locations/vmSizes/read'
'Microsoft.Compute/locations/runCommands/read'
-
-
Virtual Networks permissions:
-
Read VNet resources
'Microsoft.Network/register/action'
'Microsoft.Network/operations/read'
'Microsoft.Network/virtualNetworks/read'
'Microsoft.Network/virtualNetworks/joinLoadBalancer/action'
'Microsoft.Network/virtualNetworks/subnets/read'
'Microsoft.Network/virtualNetworks/subnets/join/action'
'Microsoft.Network/virtualNetworks/subnets/joinLoadBalancer/action'
'Microsoft.Network/ipAllocations/read'
'Microsoft.Network/publicIPAddresses/read' -
Manage network interface and security group resources
'Microsoft.Network/networkInterfaces/read'
'Microsoft.Network/networkInterfaces/write'
'Microsoft.Network/networkInterfaces/join/action'
'Microsoft.Network/networkInterfaces/delete'
'Microsoft.Network/networkInterfaces/effectiveRouteTable/action'
'Microsoft.Network/networkInterfaces/effectiveNetworkSecurityGroups/action'
'Microsoft.Network/networkInterfaces/ipconfigurations/read'
'Microsoft.Network/networkInterfaces/loadBalancers/read'
'Microsoft.Network/networkSecurityGroups/read'
'Microsoft.Network/networkSecurityGroups/write'
'Microsoft.Network/networkSecurityGroups/delete'
'Microsoft.Network/networkSecurityGroups/join/action' -
Manage load balancer resources
'Microsoft.Network/loadBalancers/read'
'Microsoft.Network/loadBalancers/write'
'Microsoft.Network/loadBalancers/delete'
'Microsoft.Network/loadBalancers/health/action'
'Microsoft.Network/loadBalancers/backendAddressPools/queryInboundNatRulePortMapping/action'
'Microsoft.Network/loadBalancers/backendAddressPools/updateAdminState/action'
'Microsoft.Network/loadBalancers/backendAddressPools/health/action'
'Microsoft.Network/loadBalancers/backendAddressPools/read'
'Microsoft.Network/loadBalancers/backendAddressPools/write'
'Microsoft.Network/loadBalancers/backendAddressPools/delete'
'Microsoft.Network/loadBalancers/backendAddressPools/backendPoolAddresses/read'
'Microsoft.Network/loadBalancers/backendAddressPools/join/action'
'Microsoft.Network/loadBalancers/providers/Microsoft.Insights/diagnosticSettings/read'
'Microsoft.Network/loadBalancers/providers/Microsoft.Insights/diagnosticSettings/write'
'Microsoft.Network/loadBalancers/frontendIPConfigurations/read'
'Microsoft.Network/loadBalancers/frontendIPConfigurations/join/action'
'Microsoft.Network/loadBalancers/frontendIPConfigurations/loadBalancerPools/read'
'Microsoft.Network/loadBalancers/frontendIPConfigurations/loadBalancerPools/write'
'Microsoft.Network/loadBalancers/frontendIPConfigurations/loadBalancerPools/delete'
'Microsoft.Network/loadBalancers/loadBalancingRules/read'
'Microsoft.Network/loadBalancers/loadBalancingRules/health/action'
'Microsoft.Network/loadBalancers/networkInterfaces/read'
'Microsoft.Network/loadBalancers/outboundRules/read'
'Microsoft.Network/loadBalancers/virtualMachines/read'
'Microsoft.Network/loadBalancers/probes/read'
'Microsoft.Network/loadBalancers/probes/join/action'
'Microsoft.Network/loadBalancers/providers/Microsoft.Insights/metricDefinitions/read'
-
-
Storage Account Container Permissions:
-
Manage storage account containers
'Microsoft.Storage/storageAccounts/blobServices/containers/read'
'Microsoft.Storage/storageAccounts/blobServices/containers/write'
'Microsoft.Storage/storageAccounts/blobServices/containers/delete'
-
-
IAM permissions:
-
Assign user-assigned managed identity
'Microsoft.ManagedIdentity/userAssignedIdentities/read'
'Microsoft.ManagedIdentity/userAssignedIdentities/assign/action'
-