GKE Client Certificate Signing Request Created or Approved

Last updated 12 days ago on 2026-07-10
Created 12 days ago on 2026-07-10

About

Detects creation or approval of a GKE CertificateSigningRequest (CSR) by a non-system identity. This is a breadth baseline rule for human or custom automation CSR activity on GKE. Attackers with cluster access can submit and approve CSRs to obtain long-lived client certificates that survive token revocation and RBAC changes. Use companion rules to evaluate signer choice, requested identity, and self-approval behavior.
Tags
Domain: CloudDomain: KubernetesData Source: GCPData Source: GCP Audit LogsData Source: Google Cloud PlatformUse Case: Threat DetectionTactic: PersistenceTactic: Privilege EscalationLanguage: kuery
Severity
medium
Risk Score
47
MITRE ATT&CK™

Persistence (TA0003)(external, opens in a new tab or window)

Privilege Escalation (TA0004)(external, opens in a new tab or window)

False Positive Examples
Approved certificate workflows (for example cert-manager, internal PKI rotation, or node bootstrap) may create or update CSRs from identities not in the exclusion list if they run under a custom service account. Baseline automation that legitimately approves CSRs and tune exclusions for those principals.
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-gcp.audit-*
Related Integrations

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

Query
text code block:
data_stream.dataset:"gcp.audit" and service.name:"k8s.io" and event.outcome:"success" and event.action:( "io.k8s.certificates.v1.certificatesigningrequests.create" or "io.k8s.certificates.v1.certificatesigningrequests.approval.update" ) and not client.user.email:( "system:gcp-controller-manager" or "system:kube-controller-manager" or "system:serviceaccount:kube-system:certificate-controller" ) and not ( event.action:"io.k8s.certificates.v1.certificatesigningrequests.create" and client.user.email:( "kubelet-bootstrap" or "kubelet-nodepool-bootstrap" or system\:node\:* ) )

Install detection rules in Elastic Security

Detect GKE Client 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).