Azure Kubernetes Cluster Permissions
Note
These are only required when the Kubernetes cluster is created externally, and you want to configure it for automated or post-deployment/post upgrade from Kyvos Manager.
No permission is required for Kubernetes new deployments when you select to create a new Kubernetes cluster.
If the Managed Identity of Kubernetes is different from Kyvos and TLS is enabled in Kyvos, ensure that Kubernetes MI must have ‘get secret’ permission on the key vault.
For Existing Kubernetes Cluster
Ensure that you perform the following when using the existing Kubernetes cluster.
Ensure that the Compute Namespace is pre-created.
A Storage Class must be pre-configured.
Assign a dedicated namespace 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 KM > Manage Configuration Files and save the changes. Then, navigate to Kyvos and Ecosystem > Compute Cluster and reapply the configuration to make it effective.
For more details, see the Adding Taints and Configure Tolerations in Kyvos worker pods section.
For Automated Deployment
If Authentication and Authorization is set to Microsoft Entra ID authentication with Azure RBAC (AAD is enabled)
No action is required for a dedicated cluster.
For shared cluster, you must have already created namespace and KyvosMI with Azure Kubernetes Service RBAC Admin on the namespace level.
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.
Note
This is applicable only with an existing Managed Identity.
If Authentication and Authorization is set to Local Accounts with Kubernetes RBAC (AAD is disabled)
No action is required for a dedicated cluster.
For shared cluster, namespace must be already created.
For switching or configuring cluster after deployment
This information mentioned in this section is also applicable for wizard-based deployments.
If you want 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 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 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 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 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.
Copyright Kyvos, Inc. All rights reserved.