Azure AKS Certificate Signing Request Created or Approved

Last updated a month ago on 2026-07-09
Created a month ago on 2026-07-09

About

Detects an identity creating a client-authentication CertificateSigningRequest (signer kubernetes.io/kube-apiserver-client) or approving a CSR on AKS (Azure Kubernetes Service), excluding node bootstrap and platform controllers. Adversaries submit and self-approve a CSR against the kube-apiserver-client signer to mint a long-lived client certificate for an arbitrary subject (for example a Common Name in system:masters), giving durable authenticated access that survives token revocation. Coverage includes workload service accounts (system:serviceaccount:*), so a compromised in-cluster token forging a certificate is not excluded.
Tags
Domain: CloudDomain: KubernetesData Source: AzureData Source: Azure Platform LogsData Source: KubernetesUse Case: Threat DetectionTactic: Credential AccessLanguage: kuery
Severity
medium
Risk Score
47
MITRE ATT&CK™

Credential Access (TA0006)(external, opens in a new tab or window)

False Positive Examples
Node bootstrap, cert-manager, and platform controllers legitimately create and approve CSRs. Validate the requesting identity and the certificate subject, and add exclusions for verified automation.
License
Elastic License v2(external, opens in a new tab or window)

Definition

Rule Type
Query (Kibana Query Language)
Integration Pack
Prebuilt Security Detection Rules
Index Patterns
logs-azure.platformlogs-*
Related Integrations

azure(external, opens in a new tab or window)

Query
text code block:
data_stream.dataset:azure.platformlogs and event.action:"Microsoft.ContainerService/managedClusters/diagnosticLogs/Read" and azure.platformlogs.category:("kube-audit" or "kube-audit-admin") and azure.platformlogs.properties.log.stage:"ResponseComplete" and azure.platformlogs.properties.log.objectRef.resource:"certificatesigningrequests" and azure.platformlogs.properties.log.responseStatus.code: "200" and azure.platformlogs.properties.log.requestObject.status.conditions.type: "Approved" and ( ( azure.platformlogs.properties.log.verb:"create" and azure.platformlogs.properties.log.requestObject.spec.signerName:"kubernetes.io/kube-apiserver-client" ) or ( azure.platformlogs.properties.log.verb:("update" or "patch") and azure.platformlogs.properties.log.objectRef.subresource:"approval" ) ) and not azure.platformlogs.properties.log.user.username:( system\:node\:* or system\:bootstrap\:* or "aksService" or "hcpService" or "readinessChecker" or system\:serviceaccount\:kube-system\:* )

Install detection rules in Elastic Security

Detect Azure AKS Certificate Signing Request Created or Approved in the Elastic Security detection engine by installing this rule into your Elastic Stack.

To setup this rule, check out the installation guide for Prebuilt Security Detection Rules(external, opens in a new tab or window).