Common Prerequisites for Deployment on Azure
This documentation is for Kyvos 2026.8.x. To view documentation for other Kyvos versions, click here. |
|---|
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 |
|---|---|
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. Configure the Kyvos processes to use the available CPU and memory, while reserving sufficient resources for the operating system and other required services. |
3. Resource Group and Deployment Permissions
Resource Group Setup
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.
On this page:
- 1 1. Overview
- 2 2. Installation Files and Deployment Information
- 3 3. Resource Group and Deployment Permissions
- 4 4. Managed Identity
- 5 5. Key Vault Configuration
- 6 6. Network and Subnet Configuration
- 7 7. PostgreSQL Flexible Server Requirements
- 8 8. Azure User Permissions
- 9 9. Storage Account Configuration
- 10 10. Usage Dashboard
- 11 11. AKS IP Address Requirements
- 12 12. Optional Information
Read prerequisites:
Choose your deployment type:
3.2 Required Permissions
Permission |
|---|
|
|
|
|
|
|
|
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 |
|---|
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 |
|---|---|
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 |
|---|---|
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 |
|---|---|
Secures and controls access to storage accounts so only applications requesting data over the specified networks or Azure resources can access the account. | |
Restricts access to a specified virtual network, and can also restrict access to a list of IPv4 (internet protocol version 4) address ranges. | |
Lets you define a priority-ordered allow/deny list to control network access to your app. | |
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 | ||||
|---|---|---|---|---|
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 |
|---|---|
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 |
|---|---|
Delegation |
|
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:
FlexibleServerKyvosManagerRepositoryFlexibleServerKyvosRepository
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 |
|---|---|
Database name |
|
Username |
|
7.3.1 Required tags
Tag | Value |
|---|---|
UsedBy | Kyvos |
ROLE | DATABASE |
LAYER | Metadata_Storage |
7.4 Kyvos Manager Repository Configuration
Setting | Value |
|---|---|
Database name |
|
Username |
|
7.4.1 Required tags
Tag | Value |
|---|---|
UsedBy | Kyvos |
ROLE | DATABASE_KM |
LAYER | Metadata_Storage |
7.5 Flexible Server Password (Automated Azure Deployment)
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 |
|---|---|
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 nodes11.2 Total IPs Required calculation:
Total IPs Required = Total Nodes + (Total Nodes × Max Pods per Node)
Total IPs Required = 13 + (13 × 30) = 40311.3 Required Subnet Service Endpoints
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 |
|---|---|
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 |
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.jsontemplate (orazure_functions_secure.jsonfor enhanced security), available in the Azure Installation Files folder.