Prepare for an Orchestrated Deployment
Learn about the prerequisites to create an orchestrated
deployment.
Complete the following tasks before you orchestrate
a VM-Series firewall on Azure.
All VM-Series
firewall interfaces must be assigned an IPv4 address when deployed
in a public cloud environment. IPv6 addresses are not supported.
Configuration Prerequisites
Complete the following basic tasks on Panorama and Azure.
- Azure
- Create a service principal to enable the plugin to make API calls.
- Plan a CIDR block specifically dedicated to VM-Series firewall Transit VNet. The plugin manages this CIDR block and uses it to deploy the initial firewall VNet and perform as future upgrades to new template stacks.The minimum CIDR range is /22.
- Panorama
- Ensure that you have a valid license API key configured on Panorama. This allows the plugin to manage delicensing on scale-in autoscaling events. See Install a License Deactivation API Key.
- Install the latest version of the VM-series plugin on Panorama to allow Application Insight configuration to be added to template stack.
- Qualified Azure RegionsPanorama orchestrated deployments are supported in all regions that support the VM-Series firewall. The following regions have been qualified; if you deploy in an unlisted region and you encounter an issue, contact support.
- West US
- West US 2
- North Central US
- East US
- East US 2
- West Europe
- Germany West Central
- UAE North
- West India
- Australia Southeast
While planning your deployment please note that if you are currently
running a Panorama Plugin for Azure version 2.x, upgrading to the
current version is not allowed. Along with this, once the current
version is installed, downgrading to a version 2.x plugin is not
allowed. See Panorama Plugin for Azure in the Compatibility Matrix.
Orchestration Permissions
The is a sample JSON file with permissions for the Template
Deployer role. In the
AssignableScopes
section,
include all relevant subscriptions that must be queried, including
the subscription into which the deployment is deployed and EVERY
subscription containing an application VNET that is peered to the
VM-Series firewall VNet where protected resources exist.{ "Name": "Template Deployment", "IsCustom": true, "Description": "Manage template deployments.", "Actions": [ "Microsoft.Resources/subscriptions/resourcegroups/*", "Microsoft.Resources/deployments/write", "Microsoft.Resources/deployments/operationStatuses/read", "Microsoft.Resources/deployments/read", "Microsoft.Resources/deployments/delete", "Microsoft.Network/publicIPPrefixes/write", "Microsoft.Network/publicIPPrefixes/read", "Microsoft.Network/publicIPPrefixes/delete", "Microsoft.Network/publicIPAddresses/write", "Microsoft.Network/publicIPAddresses/read", "Microsoft.Network/publicIPAddresses/delete", "Microsoft.Network/publicIPAddresses/join/action", "Microsoft.Network/natGateways/write", "Microsoft.Network/natGateways/read", "Microsoft.Network/natGateways/delete", "Microsoft.Network/natGateways/join/action", "Microsoft.Network/virtualNetworks/read", "Microsoft.Network/virtualNetworks/write", "Microsoft.Network/virtualNetworks/delete", "Microsoft.Network/virtualNetworks/subnets/write", "Microsoft.Network/virtualNetworks/subnets/read", "Microsoft.Network/virtualNetworks/subnets/delete", "Microsoft.Network/virtualNetworks/subnets/join/action", "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read", "Microsoft.Network/networkSecurityGroups/write", "Microsoft.Network/networkSecurityGroups/read", "Microsoft.Network/networkSecurityGroups/delete", "Microsoft.Network/networkSecurityGroups/join/action", "Microsoft.Network/loadBalancers/write", "Microsoft.Network/loadBalancers/read", "Microsoft.Network/loadBalancers/delete", "Microsoft.Network/loadBalancers/probes/join/action", "Microsoft.Network/loadBalancers/backendAddressPools/join/action", "Microsoft.Network/loadBalancers/frontendIPConfigurations/read", "Microsoft.Network/locations/serviceTags/read", "Microsoft.Network/applicationGateways/read", "Microsoft.Network/networkInterfaces/read", "Microsoft.Compute/virtualMachineScaleSets/write", "Microsoft.Compute/virtualMachineScaleSets/read", "Microsoft.Compute/virtualMachineScaleSets/delete", "Microsoft.Compute/virtualMachineScaleSets/virtualMachines/read", "Microsoft.Compute/virtualMachines/read", "Microsoft.Compute/images/read", "Microsoft.Compute/virtualMachines/read", "Microsoft.Network/networkInterfaces/read", "Microsoft.Network/virtualNetworks/read", "Microsoft.Network/locations/serviceTags/read", "Microsoft.Network/virtualNetworks/read", "Microsoft.Network/loadBalancers/read", "Microsoft.insights/components/write", "Microsoft.insights/components/read", "Microsoft.insights/components/delete", "Microsoft.insights/autoscalesettings/write" ] "NotActions": [ ], "AssignableScopes": [ "/subscriptions/{deployment-subscription}", "/subscriptions/{app1-subscription}", "/subscriptions/{app2-subscription}", . . . ] }
Create a Custom Role and Associate it with an Active Directory
- To create an Active Directory in Azure, Navigate to Azure Active Directory and click onApp Registrationson the left, then clickAddand provide a name.
- Create a custom role with the permissions the plugin requires.
- Log in to the Azure CLI.az login
- Create a custom role from the file in Orchestration Permissions.az role definition create --role-definition <role-json-file>
- Associate the role with Active Directory you created in Step 1. You can use the console or the CLI.You must repeat this step in every subscription defined in theassignableScopesection of the custom role in Orchestration Permissions.Console
- On the Azure portal, navigate toSubscriptionsand select your subscription.
- On the left selectAccess Control (IAM)and thenRole Assignmentson the top bar.
CLI:In the following command,<role-name>refers to the name in the sample JSON file, in the earlier example,Template Deployment.az ad sp create-for-rbac --name <name-of-service-principal> --role <role-name> --output json
Find Your Azure Directory Domain Name
For the plugin to provide links to your Azure
deployment and Application Insights instance in Azure Portal, you
must identify the directory domain for your subscription, as shown
below:
