AKS Cluster Access for Cloudaware
Configure Azure Kubernetes Service (AKS) cluster access so Cloudaware can discover Kubernetes objects when Microsoft Entra ID (formerly, Azure AD) integration is enabled on the cluster.
If your AKS cluster is not Microsoft Entra/AD‑managed, it is usually sufficient to grant the Cloudaware app the Azure permission Microsoft.ContainerService/managedClusters/listClusterUserCredential/action (for example, via the Azure Kubernetes Service Cluster User Role).
For AD‑integrated clusters, you must also configure Kubernetes RBAC as described below.
Prerequisites
- Access to a Cloudaware account.
- A user with access to the Admin Console for managing integrations (Cloudaware Administrator).
- Cloudaware Azure integration configured:
- Azure app registration/service principal created (for example,
cloudaware-api-access). - Required Azure permissions granted as described in:
- Azure app registration/service principal created (for example,
- AKS cluster with Microsoft Entra ID/Azure AD enabled.
- Ensure to have
Owner/Contributoror appropriate permissions in Azure to view the enterprise applications and AKS configuration. - Ensure to have
cluster-admin(or equivalent) permissions in the AKS cluster to apply RBAC objects.
- Ensure to have
- You have kubectl installed and configured to connect to the target AKS cluster.
kubectlaccess to the AKS cluster with privileges to create ClusterRoles and ClusterRoleBindings.
Configuration
Locate the Cloudaware Service Principal ID
- In the Azure portal, go to Microsoft Entra ID.
- Open Enterprise applications.
- Find and select the Azure application used for Cloudaware (for example,
cloudaware-api-access). - On the Overview blade, copy the Object ID.
This Object ID is the service principal identifier that will be used in the Kubernetes role binding.
Create Kubernetes RBAC for Cloudaware
Create a file named cloudaware-rbac.yaml with the following contents:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cloudaware-reader
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: cloudaware-reader-application-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cloudaware-reader
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: <SERVICE-PRINCIPAL-OBJECT-ID>
Where:
cloudaware-readeris a ClusterRole that grants Cloudaware read‑only access (get,watch,list) to all Kubernetes resources in the cluster.cloudaware-reader-application-bindingis a ClusterRoleBinding that attaches this ClusterRole to the Cloudaware Azure application.<SERVICE-PRINCIPAL-OBJECT-ID>must be replaced with the Object ID you copied from the Enterprise applications view.
You can further restrict the ClusterRole if you only want Cloudaware to see a subset of API groups or resource types, but the example above provides broad read‑only access consistent with the set of AKS objects ingested by CMDB.
Apply the RBAC Manifest
Use kubectl to apply the RBAC manifest to your AKS cluster:
kubectl apply -f cloudaware-rbac.yaml
Verify that the ClusterRole and ClusterRoleBinding have been created:
kubectl get clusterrole cloudaware-reader
kubectl get clusterrolebinding cloudaware-reader-application-binding
Verification in Cloudaware
After RBAC is configured and the Azure permissions are in place:
- Allow time for the next discovery cycle (up to 24 hours in some environments).
- In Cloudaware CMDB Navigator, check the MICROSOFT AZURE → COMPUTE → AKS.
- Confirm that AKS cluster resources (namespaces, nodes, pods, services, role bindings, etc.) are populated.
Troubleshooting
If AKS resources do not appear:
- Confirm that:
- The Azure app has the required
Reader(or equivalent) role assignments and AKS permissions (listClusterUserCredential). - The service principal Object ID in the ClusterRoleBinding matches the Cloudaware Azure application.
- The Kubernetes RBAC objects are present and not overridden by other policies.
- The Azure app has the required
- Review Azure and Kubernetes audit logs for denied requests from the Cloudaware app.
Supported AKS Objects
| Azure AKS Object | CMDB Object API Name |
|---|---|
| Azure AKS Cluster | CA10Z1__CaAzureAksCluster__c |
| Azure AKS Cluster Agent Pool Profile | CA10Z1__CaAzureAksClusterAgentPoolProfile__c |
| Azure AKS Cluster Config Map | CA10Z1__CaAzureAksClusterConfigMap__c |
| Azure AKS Cluster Daemon Set | CA10Z1__CaAzureAksClusterDaemonSet__c |
| Azure AKS Cluster Deployment | CA10Z1__CaAzureAksClusterDeployment__c |
| Azure AKS Cluster Endpoint | CA10Z1__CaAzureAksClusterEndpoint__c |
| Azure AKS Cluster Fact | CA10Z1__CaAzureAksClusterFact__c |
| Azure AKS Cluster HPA | CA10Z1__CaAzureAksClusterHpa__c |
| Azure AKS Cluster Ingress | CA10Z1__CaAzureAksClusterIngress__c |
| Azure AKS Cluster Limit Range | CA10Z1__CaAzureAksClusterLimitRange__c |
| Azure AKS Cluster Namespace | CA10Z1__CaAzureAksClusterNamespace__c |
| Azure AKS Cluster Network Policy | CA10Z1__CaAzureAksClusterNetworkPolicy__c |
| Azure AKS Cluster Network Policy Rule | CA10Z1__CaAzureAksClusterNetworkPolicyRule__c |
| Azure AKS Cluster Node | CA10Z1__CaAzureAksClusterNode__c |
| Azure AKS Cluster Node Address | CA10Z1__CaAzureAksClusterNodeAddress__c |
| Azure AKS Cluster Node Condition | CA10Z1__CaAzureAksClusterNodeCondition__c |
| Azure AKS Cluster Pod | CA10Z1__CaAzureAksClusterPod__c |
| Azure AKS Cluster Pod Container | CA10Z1__CaAzureAksClusterPodContainer__c |
| Azure AKS Cluster Pod Disruption Budget | CA10Z1__CaAzureAksClusterPodDisruptionBudget__c |
| Azure AKS Cluster Public IP Address Link | CA10Z1__CaAzureAksClusterPublicIpAddressLink__c |
| Azure AKS Cluster Public IP Prefix Link | CA10Z1__CaAzureAksClusterPublicIpPrefixLink__c |
| Azure AKS Cluster Replica Set | CA10Z1__CaAzureAksClusterReplicaSet__c |
| Azure AKS Cluster Resource Quota | CA10Z1__CaAzureAksClusterResourceQuota__c |
| Azure AKS Cluster Role | CA10Z1__CaAzureAksClusterRole__c |
| Azure AKS Cluster Role Binding | CA10Z1__CaAzureAksClusterRoleBinding__c |
| Azure AKS Cluster Secret | CA10Z1__CaAzureAksClusterSecret__c |
| Azure AKS Cluster Service | CA10Z1__CaAzureAksClusterService__c |
| Azure AKS Cluster Service Account | CA10Z1__CaAzureAksClusterServiceAccount__c |
| Azure AKS Cluster Service Account Secret | CA10Z1__CaAzureAksClusterServiceAccountSecret__c |
| Azure AKS Cluster Stateful Set | CA10Z1__CaAzureAksClusterStatefulSet__c |
| Azure AKS Cluster Storage Class | CA10Z1__CaAzureAksClusterStorageClass__c |