Common Prerequisites for Deployment on Azure

Common Prerequisites for Deployment on Azure

This documentation is for Kyvos 2026.8.x. To view documentation for other Kyvos versions, click here.

This documentation is for Kyvos 2026.8.x. To view documentation for other Kyvos versions, click here.

✅ Enterprise: Azure

1. Overview

Before you start the automated installation of Kyvos on Azure, ensure that you have the required files, Azure resources, permissions, networking configuration, and other information described in the following sections.

Important

Ensure that using a single Kubernetes cluster for multiple Kyvos deployments is not supported.


2. Installation Files and Deployment Information

Before starting the deployment, ensure you have the following ready:

Requirement

Details

Requirement

Details

Azure Installation Files

Download the Azure Installation Files folder and keep all required files available during deployment.

Kyvos License File

A valid Kyvos license file.

Secret Key

The secret key required to access the Kyvos bundle.

SSH Key Pair

A private key and public key pair for secure access.

CPU & Memory Configuration Details

Information needed to configure Kyvos CPU and memory based on the selected VM instance.
Note:

Configure the Kyvos processes to use the available CPU and memory, while reserving sufficient resources for the operating system and other required services.
Example: For a VM with 64 GB RAM, configure the Kyvos processes to use the available memory, while reserving an appropriate portion for the operating system and other essential services.


3. Resource Group and Deployment Permissions

Resource Group Setup

Requirement

Details

Requirement

Details

Create a Resource Group

Create a Resource Group for all Kyvos resources.

Recommended Practice

Use an empty Resource Group dedicated exclusively to Kyvos resources.

Deployment User Access

The deployment user must have Owner rights on this Resource Group.

3.1 Custom Role for Separate Network Resource Groups

If the network resources required for Kyvos are located in a separate Resource Group, create a custom role for the deployment user with the permissions listed below.

3.2 Required Permissions

Permission

Permission

Microsoft.Network/virtualNetworks/subnets/read

Microsoft.Network/virtualNetworks/read

Microsoft.Network/networkSecurityGroups/read

Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action

Microsoft.Network/virtualNetworks/subnets/write

Microsoft.Network/virtualNetworks/subnets/join/action

Microsoft.Network/networkSecurityGroups/join/action

This custom role is not required if the network resources are created using the Kyvos-provided template.

For information about creating and assigning the custom role, see the Configuring Roles for Deployment User section.


4. Managed Identity

A Managed Identity can be used for Kyvos resources.

Managed Identity is optional. It is created when 'Enable Managed Identity Creation' is set to 'True' in the ARM template.

4.1 Using an Existing Managed Identity

If you want to use an existing Managed Identity, provide the following details:

Detail Required

Detail Required

Managed Identity Name

Managed Identity Resource Group Name

If you use an existing Managed Identity, ensure that no permissions are assigned to it.


5. Key Vault Configuration

Provide the Key Vault URL to use during deployment.

5.1 Key Vault behavior

Scenario

Behavior

Scenario

Behavior

No Key Vault URL provided

Kyvos automatically creates a new Key Vault to store Azure passwords

Existing Key Vault URL provided

Kyvos uses your existing Key Vault (ensure Soft Delete is enabled — this can also be turned on later)

You can also create your own Key Vault for use with Kyvos.

5.2 Secret Permissions for an Existing Key Vault

If you use an existing Key Vault, the assigned Managed Identity must have the following Secret permissions:

Permission

Purpose

Permission

Purpose

GET

Retrieve secret values

LIST

View available secrets

SET

Create or update secrets


6. Network and Subnet Configuration

Kyvos requires information about the VNet, subnet, and Network Interface/Security Group that will be used by Kyvos machines.

6.1 Service Endpoints

Configure the following service endpoints on the subnet. These allow access to the corresponding Azure services from the specified subnet and help control network access.

Service Endpoint

Purpose

Service Endpoint

Purpose

Azure Storage (Microsoft.Storage)

Secures and controls access to storage accounts so only applications requesting data over the specified networks or Azure resources can access the account.

Azure Key Vault (Microsoft.KeyVault)

Restricts access to a specified virtual network, and can also restrict access to a list of IPv4 (internet protocol version 4) address ranges.

Azure App Service (Microsoft.Web)

Lets you define a priority-ordered allow/deny list to control network access to your app.

Azure SQL Database (Microsoft.Sql)

Controls whether the server for databases/elastic pools in Azure SQL Database or dedicated SQL pools in Azure Synapse Analytics accepts communication from particular subnets.

6.2 Network Interface / Security Group

Create a Network Interface/Security Group with the following ports opened in the Inbound rules:

Ports

Ports

6602

6903

6703

45450

45460

6603

6803

45440

6605

8081

8080

45421

45564

4000

7009

22

8443

8444

9443

9444

6.3 For Web Portal High Availability

Scenario

Ports to open

Scenario

Ports to open

Using Session Management

45564, 4000

Using an Azure Load Balancer

80

For more information, see Ports required for Kyvos.

6.4 Existing Virtual Network

If you use an existing Virtual Network, the subnet must have at least a /23 mask.


7. PostgreSQL Flexible Server Requirements

7.1 PostgreSQL Flexible Server: Subnet Requirements

For automated deployment, wizard-based deployment, or when using an existing Azure Database for PostgreSQL Flexible Server, ensure the Flexible Server has a separate subnet attached with the following:

Requirement

Value

Requirement

Value

Delegation

Microsoft.DBforPostgreSQL/flexibleServers

Service Endpoint

Storage

Service Endpoint

Key Vault

Service Endpoint

SQL

Service Endpoint

Web

7.2 Using an Externally Created Flexible Server

To use an externally created Flexible Server, you can use the ARM template containing:

  • FlexibleServerKyvosManagerRepository

  • FlexibleServerKyvosRepository

Alternatively, if you create the Flexible Server directly through Microsoft, complete the configuration described in the sections below. For more information, refer to the Microsoft documentation.

7.3 Kyvos Repository Configuration

Setting

Value

Setting

Value

Database name

delverepo

Username

postgres

7.3.1 Required tags

Tag

Value

Tag

Value

UsedBy

Kyvos

ROLE

DATABASE

LAYER

Metadata_Storage

7.4 Kyvos Manager Repository Configuration

Setting

Value

Setting

Value

Database name

kmrepo

Username

kmdbuser

7.4.1 Required tags

Tag

Value

Tag

Value

UsedBy

Kyvos

ROLE

DATABASE_KM

LAYER

Metadata_Storage

7.5 Flexible Server Password (Automated Azure Deployment)

Scenario

Password Requirement

Scenario

Password Requirement

Newly created Flexible Server

User-provided password is used for the repository. No password change required.

Existing Flexible Server

Password of the existing repository must be provided. No password change required.


8. Azure User Permissions

The Azure logged-in user must have the following permissions to create Kyvos resources using ARM templates:

  • Owner access on the Resource Group used for deploying Kyvos resources.

  • Key and Secret Management rights on the Key Vault, if an existing Key Vault is used.


9. Storage Account Configuration

Ensure the storage account meets the following requirements:

  • The Managed Identity attached to the storage/container must have Storage Blob Data Contributor permission.

  • If the storage account is in a different Resource Group from the Managed Identity, assign the Managed Identity the Reader role at the Storage Account level. This is required by the Kyvos Manager validation framework to verify storage account accessibility.

  • Soft deletion must be disabled.

  • The storage account must be of type ADLS Gen2.


10. Usage Dashboard

To access the Usage Dashboard, provide the required permissions after completing the deployment. See Configuring Permissions for Usage Dashboard.


11. AKS IP Address Requirements

The following limits and requirements apply for AKS deployment:

Configuration

Value

Configuration

Value

Maximum number of agentpool nodes

1

Maximum number of userpool nodes

10

Maximum surge

10% = 2 nodes

Total nodes

13

Maximum pods per node (Azure minimum limit)

30


11.1 Total Nodes calculation

Total Nodes = Max Agentpool Nodes + Max Userpool Nodes + Max Surge Total Nodes = 1 + 10 + 2 = 13 nodes

11.2 Total IPs Required calculation:

Total IPs Required = Total Nodes + (Total Nodes × Max Pods per Node) Total IPs Required = 13 + (13 × 30) = 403

11.3 Required Subnet Service Endpoints

Service Endpoint

Service Endpoint

Microsoft.Storage

Microsoft.ContainerRegistry

Microsoft.Sql

Microsoft.KeyVault

For more details, see the Azure documentation.

Note

Save all details provided during deployment for future reference — the deployment may fail if incorrect details are provided.


12. Optional Information

In addition to the prerequisites, keep the following information handy based on your business requirements.

  • Boot Diagnostics Storage Account URI: Used to store the bootup logs of the VM. If left empty, the boot diagnostics feature will be disabled for all Kyvos VMs.

  • Log Analytics Workspace Details: Required to enable the Log Analytics virtual machine extension, used for monitoring Azure VMs.

    • Workspace Name

    • Resource Group Name

  • Shared Image Gallery Information: If you want to use your hardened images as the base OS for Kyvos VMs, you'll need the following parameters:

Parameter

Description

Parameter

Description

Gallery Resource Group Name

Name of the resource group in which the gallery resides.

Gallery Subscription ID

Subscription ID in which the gallery resides.

Gallery Name

Name of the Shared Image Gallery — a repository for managing and sharing custom images. An image source can be an existing Azure VM.

Gallery Image Definition Name

Name of the image definition. Image definitions are created within a gallery and store information about the image and its requirements — such as whether it's Windows or Linux, release notes, and minimum/maximum memory requirements. It essentially defines a "type" of image.

Gallery Image Version Name

Version of the image, in <MajorVersion>.<MinorVersion>.<Patch> format.

  • Azure Function Name: If you want to use pre-created functions, you have two options:

    • Provide the function name while creating Kyvos resources through Kyvos Manager (wizard-based deployment), or

    • Create the function externally via the Azure portal, using the azure_functions.json template (or azure_functions_secure.json for enhanced security), available in the Azure Installation Files folder.


Copyright Kyvos, Inc. 2026. All rights reserved.