Adding Azure Kubernetes Cluster Permissions
This documentation is for Kyvos 2026.8.x. To view documentation for other Kyvos versions, click here. |
|---|
Overview
This section describes the required permissions and roles for accessing and managing an Azure Kubernetes Service (AKS) cluster used in a Kyvos deployment. Following these guidelines ensures proper cluster validation and smooth resource operations.
Important points
JRE 17 must be installed on the cluster if you use Kubernetes. For new deployments, JRE 17 is installed by default.
The permissions in this section are only required when the Kubernetes cluster is created externally, and you want to configure it for automated deployment or post-deployment/post-upgrade operations from Kyvos Manager.
No permission is required for new Kubernetes deployments when you select to create a new Kubernetes cluster within Kyvos.
If the Managed Identity (MI) of Kubernetes is different from Kyvos and TLS is enabled in Kyvos, ensure that the Kubernetes MI has ‘Get Secret’ permission on the Key Vault.
For Existing Kubernetes Cluster
Ensure that you perform the following when using the existing Kubernetes cluster.
The Compute Namespace is pre-created.
A Storage Class is pre-configured.
A dedicated namespace is assigned to each Kyvos application.
If using a shared/existing Kubernetes cluster, ensure the user node pool must have the taint-ComputeWorkerOnly=true:NoSchedule
To configure taints as per your requirement, modify the kyvos-compute-worker-job.yaml.template from Kyvos Manager on the Manage Configuration Files and save the changes. Then, navigate to Kyvos and Ecosystem > Compute Cluster and reapply the configuration to make it effective.
Permissions for Automated Deployment
Required permissions differ based on your Authentication and Authorization setting and whether the cluster is dedicated or shared.
Authentication: Microsoft Entra ID with Azure RBAC (AAD Enabled)
Cluster Type | Required Actions |
|---|---|
Dedicated | No action required. |
Shared |
|
Note
This applies only when an existing Managed Identity is in use.
Authentication and Authorization: Local Accounts with Kubernetes RBAC (AAD is disabled)
Cluster Type | Required Actions |
|---|---|
Dedicated | No action required. |
Shared | Namespace must already be created. |
For Switching or Configuring Cluster After Deployment
The steps below also apply to wizard-based deployments, when configuring an existing Kubernetes cluster.
To use existing Kubernetes
If Authentication and Authorization is set to Microsoft Entra ID authentication with Azure RBAC (AAD is enabled)
To configure as a dedicated cluster
Assign Azure Kubernetes Service RBAC Cluster Admin to kyvos MI on Kubernetes .
Assign Virtual Machine Contributor on Managed resource group of Kubernetes to Kyvos MI.
Storage Blob Data Contributor to Kubernetes Managed Identity on bucket.
To configure as a shared Cluster:
Either namespace should be already created or provide Azure Kubernetes Service RBAC Cluster Admin permission to Kyvos Managed Identity on Kubernetes.
Download kyvos-compute-worker-disk-class.yaml file and execute the kubectl apply –f kyvos-compute-worker-disk-class.yaml command from the user/MI which has Admin privileges on Kubernetes cluster. This is to create storage class. If required, you can update the tags in the file by passing comma-separated values.
If namespace is already created, then Kyvos Managed Identity must have Azure Kubernetes Service RBAC Admin on namespace and Azure Kubernetes Service Cluster User Role on Kubernetes.
Assign Reader on Managed resource group of Kubernetes to Kyvos Managed Identity.
Storage Blob Data Contributor to Kubernetes Managed Identity on bucket.
If Authentication and Authorization is set to Local Accounts with Kubernetes RBAC (AAD is disabled)
To configure as a dedicated Cluster
Assign Contributor to Kyvos MI on Kubernetes.
Assign Virtual Machine Contributor on Managed resource group of Kubernetes to Kyvos MI.
Storage Blob Data Contributor to Kubernetes Managed Identity on bucket.
To configure as a shared Cluster
If namespace is already created, then Kyvos MI must have Azure Kubernetes Service Cluster User Role on Kubernetes.
Assign Reader on Kubernetes to Kyvos MI.
Assign Reader on Managed resource group of Kubernetes to Kyvos MI.
Storage Blob Data Contributor to Kubernetes MI on bucket.
Note
If scaling is enabled in any of the following cases of shared Kubernetes cluster, the following roles must be assigned to Kyvos Managed Identity on the Kubernetes cluster.
"Microsoft.ContainerService/managedClusters/agentPools/write"
"Microsoft.ContainerService/managedClusters/agentPools/read"
Enhanced security
Kubernetes Subnet must be allowed in networking rules of Kyvos storage account.
Kubernetes Subnet must be allowed in networking rules of Kyvos Key Vault.
Prerequisites for the Proxy Server Node Pool
Kyvos will require a dedicated user node pool for running Proxy server pod.
Node Pool Configuration
Setting | Recommended Value |
|---|---|
Pool Mode | User |
Purpose | Runs |
Instance Size | Standard_D2s_v4 |
Scale Method | Autoscale |
Minimum Node Count | 0 |
Maximum Node Count | 2 |
Operating System | Ubuntu Linux |
OS Disk Size | 100 GB |
OS Disk Type | Standard_LRS |
This node must have labels:
key: "worker-type"
value: "application"
Note
The label values above are defaults. If you change them, update the corresponding values in Kyvos Manager > Compute Cluster page as well.
A restart is required after configuring the node pool.
Networking Permissions
To retrieve the private IP of the Load Balancer, the Managed Identity associated with the AKS cluster must have these permissions on the VNet assigned to the cluster:
Microsoft.Network/virtualNetworks/subnets/readMicrosoft.Network/virtualNetworks/subnets/join/action
Namespace Requirements
Either namespace for proxy server should be already created or provide Azure Kubernetes Service RBAC Cluster Admin permission to Kyvos Managed Identity on Kubernetes.
If namespace for proxy server is already created, then Kyvos Managed Identity must have Azure Kubernetes Service RBAC Admin on namespace and Azure Kubernetes Service Cluster User Role on Kubernetes
Important
While configuring TLS:
Before changing any TLS-related properties in Kyvos Manager, ensure all compute worker pods are terminated.
After making any TLS configuration changes, you must reapply the configuration from the Kyvos Compute Cluster page.