Topics on this page
High availability deployment
High availability (HA) prevents network service disruption after a failure stops your virtual appliance from inspecting traffic.
To configure fail-open HA through Azure Marketplace, you must first manually configure the appropriate permissions and roles, and then configure the Azure Function Application.
Azure uses role-based access control/identity access management (RBAC/IAM) to authorize the users and groups who access Azure services and resources. The RBAC/IAM required for HA functionality includes two sets of permissions: one set for deployment and one set for operations.
HA deployment permissions
Before you configure operational HA permissions, you must first configure the correct permissions and roles for an HA deployment. Each role you assign to an Azure service or resource consists of three elements:
- Security principal – user, group, service principal, or managed identity requesting access to Azure resources
- Role or role definition – indicates which permissions, such as read and write, can be performed by the security principal. Use a Contributor role for any role that does not require permission configuration.
- Scope – the set of resources being granted access. The levels of scope are management group, subscription, resource group, and resource. You assign roles to any of the scope levels you use.
Learn more about RBAC and Azure roles.
Use the guidelines in the following table to set up your roles and permissions for an HA deployment:
Components / Actions | Security principal | Role | Scope | Required for |
---|---|---|---|---|
Register an App | User | Application Developer | Azure Active Directory subscription | Step 1 Step 2 |
Add role and assign to App | User | User Access Administrator | Resource Group of Function App | Step 3 Step 4 Step 5 |
Managed Identity | User | Contributor | Resource Group of Function App | Step 6 |
Assign role to Identity | User | Contributor | Resource Group of Function App | Step 7 |
Storage account | User | Contributor | Resource Group of Function App | |
App service plan | User | Contributor | Resource Group of Function App | |
Function App | User | Contributor | Resource Group of Function App | |
App insights | User | Contributor | Resource Group of Function App |
HA operational permissions
Manually complete the following steps to configure the permissions and roles:
- Register a new application.
- Create a new secret.
- Create new custom roles.
- Assign the custom roles to the new application account.
- Assign a monitoring role to the new application account
- Create a Managed Identity.
- Assign the Contributor role to the new managed identity.
The application registration step and the create a new secret step authorize the HA function to perform its daily operation.
Step 1. Register a new application for the service principal
- From you Microsoft Azure portal, type
Azure Active Directory
in the search field to navigate to the Azure Active Directory. - In the Azure Active Directory, click App Registrations from the left navigation panel.
- On the App Registrations page, click the New Registrations tab.
- In the Name field, type a name for the application, which you can change at any time.
- Click Register. Your application will now be listed on the App Registrations page.
- From you Microsoft Azure portal, type
Azure Active Directory
in the search field to navigate to the Azure Active Directory. - Click App Registrations from the left navigation panel.
- From the list of applications, click your application.
- From the left navigation panel, click Certificates & secrets.
- Click New client secret.
- In the Add a client secret popup, add a description for the secret (for example,
MySecret
), select an expiration time that best fits your environment, and click Add. - Under the Client secrets panel, you can verify the secret that you just generated. Click the copy icon to the right of the secret to copy the secret to your clipboard for pasting.
Step 3. Create new custom roles
-
From you Microsoft Azure portal, type
Resource groups
in the search field to navigate to the Resource groups page. -
In the Filter by name field, enter the name of your resource group, and then select that group.
-
Click Access Control (IAM).
-
Click Add > Add Custom Role.
-
On the Create a Custom Role page, enter a name for the role and an optional description under the Basics tab.
-
Under the Permissions tab, click Add Permissions to add the following permissions for scale set deployments.
For Scale Set deployments without Gateway Load Balancer:
For an appliance resource group, search for these operational permissions:
Microsoft.Network/loadBalancers/read
Microsoft.Insights/Metrics/Read
Microsoft.Compute/virtualMachineScaleSets/read
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/read
Microsoft.Compute/virtualMachineScaleSets/virtualmachines/restart/action
For a connected VNet resource group, add these operational permissions:
Microsoft.Network/virtualNetworks/subnets/read
Microsoft.Network/virtualNetworks/subnets/write
Microsoft.Network/routeTables/read
Microsoft.Network/routeTables/write
Microsoft.Network/routeTables/routes/write
Microsoft.Network/routeTables/join/action
For Gateway Load Balancer deployments:
For an appliance resource group, search for these operational permissions:
Microsoft.Network/loadBalancers/read
Microsoft.Insights/Metrics/Read
Microsoft.Compute/virtualMachineScaleSets/read
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/read
Microsoft.Compute/virtualMachineScaleSets/virtualmachines/restart/action
Microsoft.Network/loadBalancers/frontendIPConfigurations/join/action
For a connected public load balancer group, add these operational permissions:
Microsoft.Network/loadBalancers/read
Microsoft.Network/loadBalancers/write
Microsoft.Network/loadBalancers/frontendIPConfigurations/join/action
Microsoft.Network/publicIPAddresses/join/action
-
Click Next. Under the Assignable scopes tab, click Add assignable scopes.
-
From the Add assignable scopes page, search on and click the resource groups you want to add as assignable scopes. Click Add.
- Click Next. Under the Review + create tab, click Create.
Step 4. Assign the custom roles to the new application account
- From the Resource Groups ** page, select your resource group name, and click Access Control (IAM)**.
- Under the Roles tab, enter a name in the Name field and select CustomRole from the Type field.
- For each resource group, click Access Control (IAM), click Add, and then select Add role assignment.
- Select your role name and your APP name that you created in step 1.
- In the
Assign access to
field, select the user, group, or service principal, and then click Save.
Step 5. Assign a monitoring role to the new application account
- From the Resource Groups page, select your resource group name, and click Access Control (IAM).
- For each resource group, click Access Control (IAM), click Add, and then select Add role assignment.
- Select the
Monitoring Metric Publisher
role and your APP name that you created in step 1. - In the
Assign access to
field, select the user, group, or service principal, and then click Save.
Step 6. Create a managed identity
- From you Microsoft Azure portal, type
Managed Identities
in the search field to navigate to the Azure Active Directory. - Click Add.
- Select an existing resource group or click Create new under Subscription > Resource Group.
- Specify a name in the Name field and click Create.
Step 7. Assign a role to the new identity
- From the Microsoft Azure portal, type
Resource groups
in the search field to navigate to the Resource groups page. - Select the resource group from which you want to deploy your Function App.
- Click Access Control (IAM).
- Click Add > Add role assignment.
- Select Contributor from the dropdown menu and then select your managed identity to which the role will be applied.
- Click Save.
Launch HA from Azure Marketplace
If you launched the HA function before September 5th, 2023, we recommend that you delete your previously deployed function and relaunch a new HA function to update your Python runtime to version 3.10. Use the following steps to make this update:
To manually update Python runtime to 3.10 in Azure Marketplace:
- From the Microsoft Azure portal, type
Resource groups
in the search field to navigate to the Resource groups page. - Select the resource group from which you want to deploy your Function App.
-
From the list of resouces for this function, delete the following resource types:
- Application Insights
- App Service plan
- Function App
-
Follow the steps below to launch the new HA function that includes the latest Python runtime version.
Launch HA
To complete HA configuration, use the steps below to deploy an ARM template with all the compiled parameters, and then combine this template with Azure UI components to launch it as a product.
-
Open your account on Microsoft Azure Marketplace.
-
Search for Trend Micro Cloud One – Network Security.
-
Next to Select a plan, choose Network Security High Availability, and then click Create.
-
Under the Basics tab:
- Select the resource group from which you want to deploy your Function App (the same group you specified in Assign the Contributor role to the new managed identity).
- Under Instance details, select a region, provide a name for the Function App, specify the URL for the App source code (or use the default), and select the identity you created in Create a Managed Identity.
-
Under the Hosting and Monitoring tab:
- Specify an existing storage account, or create a new one. Only general purpose accounts are supported. Zone-redundant replication is not supported. For more information, refer to Storage account requirements.
- Specify an existing Consumption plan, or create a new one. This is useful if you have no other hosting plan deployed that can be shared. For more information, refer to Azure Function scale and hosting and Estimating Consumption plan costs.
- Specify an existing Application Insights, or create a new one.
-
Under the App parameters tab:
-
Specify the same application you created in Register a new application. If you decide to create a new application instead, you must again complete the other manual steps for configuring the permissions and roles.
-
You must specify a load balancer. If you are using an Azure Application Gateway for your deployment, you must specify an application gateway.
If you select a Gateway Load Balancer, you do not need to select an Application Gateway or Firewall.
- If you are using a firewall for your deployment, you must specify the firewall type. Select Azure Firewall, or select Third-party firewall if your deployment uses a third-party firewall instead of an Azure firewall.
-
-
Under the Associate resources tab:
For Scale Set deployments without Gateway Load Balancer:
- Enter the resource ID of the route tables. Click on the Properties of the associated route table to find the route table resource ID.
- Enter the resource ID of the subnets associated with that route table. Click on the Properties of the associated subnet to find the subnet resource ID.
Resource IDs must be provided for all connected subnets, including Application Gateway and firewall subnets.
For Gateway Load Balancer deployments:
- Enter the resource ID for the public load balancer.
- Enter the resource ID for the public load balancer frontends that are associated with the gateway load balancer. Steps to find the public load balancer fronted resource ID can be found here.
-
Under the Review + create tab, verify that all the information you have configures is correct and click Create.
Manual Fallback
Manually place your virtual appliances in fallback mode by enabling this setting.
Verifying HA in Azure
Use these steps to verify that HA is functioning in Azure. These steps are optional during deployment but should be used to verify that HA is enabled and working before you upgrade any of your virtual appliances.
Scale Set Appliances
It is important to upgrade your appliances one at a time if you have Azure scale sets enabled in your environment. Follow the steps below to verify if your Azure deployment includes HA Fail Over functionality:
Verify the Resource Group, VM Name and Scale Set:
- Log in to Network Security.
- Navigate to Appliance → All Appliances → [Appliance name].
- In the General tab, check the Version in the Appliance section.
- On the same page, check the Resource Group, VM Name in the Instance section.
Verify the Load Balancer name:
- In the management console, navigate to Resource Groups page, and click the resource group that the VM Scale Set or the VM Scale Set with Gateway Load Balancer created during deployment.
- Under Resources, enter
Virtual Machine Scale Set
for type to filter your search results and find your scale set. - Click Instances on the left panel. Select the instance being used to locate the load balancer name.
- On the Scale Set instance page, click Networking on the left panel.
- Using the tabs at the top, navigate to dataport > Load Balancing to check the name of the Load Balancer.
Check the HA Function App:
- Navigate to the Resource Groups page on the management console, and click the Resource Group that needs HA verification.
- In this Resource Group, select
type
as Function App, find your HA function, and click the Azure function. - Click Configuration from the Settings section on the left panel.
- Under Application settings, click LOAD_BALANCER_ID.
- Check the value. The end of the value should be
.../Microsoft.Network/loadBalancers/[Load Balancer Name]
. If the[Load Balancer Name]
is the same as your appliance load balancer name, then HA is enabled.