ClusterRoles Kubernetes-clusterroles

9 operations, identified by Operation in the audit log.

OperationDescription
get-clusterroles
list-clusterroles
watch-clusterroles
create-clusterrolesClusterRole created (sensitive RBAC change; wildcard verbs/resources indicate overprivilege).
update-clusterroles
replace-clusterrolesClusterRole replaced via PUT.
patch-clusterroles
delete-clusterroles
any-clusterrolesSynthetic aggregation for rules that filter the clusterroles resource with no specific verb. Not a distinct audit record; hosts rule listings that key on objectRef.resource alone.

get-clusterroles: get clusterroles

#
Resource
Kubernetes-clusterroles

Fields #

NameDescription
verbThe request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...).
objectRef.resourceThe targeted resource type (plural API name, e.g. pods, secrets).
objectRef.subresourceThe targeted subresource, when present (e.g. exec, log, token).
objectRef.namespaceNamespace of the targeted object (empty for cluster-scoped resources).
objectRef.nameName of the targeted object.
objectRef.apiGroupAPI group of the targeted resource (empty string for core group).
user.usernameAuthenticated identity that issued the request (user or service account).
user.groupsGroups of the requesting identity.
sourceIPsSource IP addresses of the request.
responseStatus.codeHTTP status code of the API response (200, 201, 403, 404, ...).
stageAudit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic.
requestReceivedTimestampTime the apiserver received the request.

list-clusterroles: list clusterroles

#
Resource
Kubernetes-clusterroles

Fields #

NameDescription
verbThe request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...).
objectRef.resourceThe targeted resource type (plural API name, e.g. pods, secrets).
objectRef.subresourceThe targeted subresource, when present (e.g. exec, log, token).
objectRef.namespaceNamespace of the targeted object (empty for cluster-scoped resources).
objectRef.nameName of the targeted object.
objectRef.apiGroupAPI group of the targeted resource (empty string for core group).
user.usernameAuthenticated identity that issued the request (user or service account).
user.groupsGroups of the requesting identity.
sourceIPsSource IP addresses of the request.
responseStatus.codeHTTP status code of the API response (200, 201, 403, 404, ...).
stageAudit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic.
requestReceivedTimestampTime the apiserver received the request.

watch-clusterroles: watch clusterroles

#
Resource
Kubernetes-clusterroles

Fields #

NameDescription
verbThe request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...).
objectRef.resourceThe targeted resource type (plural API name, e.g. pods, secrets).
objectRef.subresourceThe targeted subresource, when present (e.g. exec, log, token).
objectRef.namespaceNamespace of the targeted object (empty for cluster-scoped resources).
objectRef.nameName of the targeted object.
objectRef.apiGroupAPI group of the targeted resource (empty string for core group).
user.usernameAuthenticated identity that issued the request (user or service account).
user.groupsGroups of the requesting identity.
sourceIPsSource IP addresses of the request.
responseStatus.codeHTTP status code of the API response (200, 201, 403, 404, ...).
stageAudit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic.
requestReceivedTimestampTime the apiserver received the request.

create-clusterroles: create clusterroles

#
Resource
Kubernetes-clusterroles

Description

ClusterRole created (sensitive RBAC change; wildcard verbs/resources indicate overprivilege).

Fields #

NameDescription
verbThe request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...).
objectRef.resourceThe targeted resource type (plural API name, e.g. pods, secrets).
objectRef.subresourceThe targeted subresource, when present (e.g. exec, log, token).
objectRef.namespaceNamespace of the targeted object (empty for cluster-scoped resources).
objectRef.nameName of the targeted object.
objectRef.apiGroupAPI group of the targeted resource (empty string for core group).
user.usernameAuthenticated identity that issued the request (user or service account).
user.groupsGroups of the requesting identity.
sourceIPsSource IP addresses of the request.
responseStatus.codeHTTP status code of the API response (200, 201, 403, 404, ...).
stageAudit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic.
requestReceivedTimestampTime the apiserver received the request.

Common Indicators #

Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.

FieldKindValueRulesVendors
kubernetes.audit.objectRef.resourceinclusterroles3 ruleselastic
kubernetes.audit.objectRef.resourceinroles3 ruleselastic
kubernetes.audit.objectRef.resourceincronjobs1 ruleelastic
kubernetes.audit.objectRef.resourceindaemonsets1 ruleelastic
kubernetes.audit.objectRef.resourceindeployments1 ruleelastic
kubernetes.audit.verbincreate3 ruleselastic
`kubernetes.audit.annotations.authorization_k8s_io/decision`eqallow1 ruleelastic
kubernetes.audit.leveleqRequestResponse1 ruleelastic
kubernetes.audit.stageeqResponseComplete1 ruleelastic
kubernetes.audit.user.usernamestarts_withsystem\:serviceaccount\:1 ruleelastic

Detection Rules #

View all rules referencing this event →

Elastic #

update-clusterroles: update clusterroles

#
Resource
Kubernetes-clusterroles

Fields #

NameDescription
verbThe request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...).
objectRef.resourceThe targeted resource type (plural API name, e.g. pods, secrets).
objectRef.subresourceThe targeted subresource, when present (e.g. exec, log, token).
objectRef.namespaceNamespace of the targeted object (empty for cluster-scoped resources).
objectRef.nameName of the targeted object.
objectRef.apiGroupAPI group of the targeted resource (empty string for core group).
user.usernameAuthenticated identity that issued the request (user or service account).
user.groupsGroups of the requesting identity.
sourceIPsSource IP addresses of the request.
responseStatus.codeHTTP status code of the API response (200, 201, 403, 404, ...).
stageAudit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic.
requestReceivedTimestampTime the apiserver received the request.

Common Indicators #

Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.

FieldKindValueRulesVendors
kubernetes.audit.objectRef.resourceinclusterroles4 ruleselastic
kubernetes.audit.objectRef.resourceinroles4 ruleselastic
kubernetes.audit.objectRef.resourceincronjobs1 ruleelastic
kubernetes.audit.objectRef.resourceindaemonsets1 ruleelastic
kubernetes.audit.objectRef.resourceindeployments1 ruleelastic
kubernetes.audit.verbinpatch4 ruleselastic
kubernetes.audit.verbinupdate4 ruleselastic
kubernetes.audit.verbincreate3 ruleselastic
kubernetes.audit.annotations.authorization_k8s_io/decisioneqallow3 ruleselastic
kubernetes.audit.leveleqRequestResponse2 ruleselastic
kubernetes.audit.stageeqResponseComplete2 ruleselastic
`kubernetes.audit.annotations.authorization_k8s_io/decision`eqallow1 ruleelastic
kubernetes.audit.user.usernamestarts_withsystem\:serviceaccount\:1 ruleelastic

Detection Rules #

View all rules referencing this event →

Elastic #

Show 1 more (4 total)

replace-clusterroles: replace clusterroles

#
Resource
Kubernetes-clusterroles

Description

ClusterRole replaced via PUT.

Fields #

NameDescription
verbThe request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...).
objectRef.resourceThe targeted resource type (plural API name, e.g. pods, secrets).
objectRef.subresourceThe targeted subresource, when present (e.g. exec, log, token).
objectRef.namespaceNamespace of the targeted object (empty for cluster-scoped resources).
objectRef.nameName of the targeted object.
objectRef.apiGroupAPI group of the targeted resource (empty string for core group).
user.usernameAuthenticated identity that issued the request (user or service account).
user.groupsGroups of the requesting identity.
sourceIPsSource IP addresses of the request.
responseStatus.codeHTTP status code of the API response (200, 201, 403, 404, ...).
stageAudit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic.
requestReceivedTimestampTime the apiserver received the request.

patch-clusterroles: patch clusterroles

#
Resource
Kubernetes-clusterroles

Fields #

NameDescription
verbThe request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...).
objectRef.resourceThe targeted resource type (plural API name, e.g. pods, secrets).
objectRef.subresourceThe targeted subresource, when present (e.g. exec, log, token).
objectRef.namespaceNamespace of the targeted object (empty for cluster-scoped resources).
objectRef.nameName of the targeted object.
objectRef.apiGroupAPI group of the targeted resource (empty string for core group).
user.usernameAuthenticated identity that issued the request (user or service account).
user.groupsGroups of the requesting identity.
sourceIPsSource IP addresses of the request.
responseStatus.codeHTTP status code of the API response (200, 201, 403, 404, ...).
stageAudit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic.
requestReceivedTimestampTime the apiserver received the request.

Common Indicators #

Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.

FieldKindValueRulesVendors
kubernetes.audit.objectRef.resourceinclusterroles4 ruleselastic
kubernetes.audit.objectRef.resourceinroles4 ruleselastic
kubernetes.audit.verbinpatch4 ruleselastic
kubernetes.audit.verbinupdate4 ruleselastic
kubernetes.audit.verbincreate3 ruleselastic
kubernetes.audit.annotations.authorization_k8s_io/decisioneqallow3 ruleselastic
kubernetes.audit.leveleqRequestResponse2 ruleselastic
kubernetes.audit.stageeqResponseComplete2 ruleselastic
`kubernetes.audit.annotations.authorization_k8s_io/decision`eqallow1 ruleelastic

Detection Rules #

View all rules referencing this event →

Elastic #

Show 1 more (4 total)

delete-clusterroles: delete clusterroles

#
Resource
Kubernetes-clusterroles

Fields #

NameDescription
verbThe request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...).
objectRef.resourceThe targeted resource type (plural API name, e.g. pods, secrets).
objectRef.subresourceThe targeted subresource, when present (e.g. exec, log, token).
objectRef.namespaceNamespace of the targeted object (empty for cluster-scoped resources).
objectRef.nameName of the targeted object.
objectRef.apiGroupAPI group of the targeted resource (empty string for core group).
user.usernameAuthenticated identity that issued the request (user or service account).
user.groupsGroups of the requesting identity.
sourceIPsSource IP addresses of the request.
responseStatus.codeHTTP status code of the API response (200, 201, 403, 404, ...).
stageAudit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic.
requestReceivedTimestampTime the apiserver received the request.

Detection Rules #

View all rules referencing this event →

Elastic #

any-clusterroles: any verb on clusterroles (synthetic aggregation)

#
Resource
Kubernetes-clusterroles

Description

Synthetic aggregation for rules that filter the clusterroles resource with no specific verb. Not a distinct audit record; hosts rule listings that key on objectRef.resource alone.

Fields #

NameDescription
verbThe request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...).
objectRef.resourceThe targeted resource type (plural API name, e.g. pods, secrets).
objectRef.subresourceThe targeted subresource, when present (e.g. exec, log, token).
objectRef.namespaceNamespace of the targeted object (empty for cluster-scoped resources).
objectRef.nameName of the targeted object.
objectRef.apiGroupAPI group of the targeted resource (empty string for core group).
user.usernameAuthenticated identity that issued the request (user or service account).
user.groupsGroups of the requesting identity.
sourceIPsSource IP addresses of the request.
responseStatus.codeHTTP status code of the API response (200, 201, 403, 404, ...).
stageAudit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic.
requestReceivedTimestampTime the apiserver received the request.

Common Indicators #

Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis.

FieldKindValueRulesVendors
EventTypeinget1 ruleelastic
EventTypeinlist1 ruleelastic
kubernetes.audit.objectRef.resourceinclusterrolebindings1 ruleelastic
kubernetes.audit.objectRef.resourceinclusterroles1 ruleelastic
kubernetes.audit.objectRef.resourceinnamespaces1 ruleelastic
kubernetes.audit.objectRef.resourceinnodes1 ruleelastic
kubernetes.audit.objectRef.resourceinpods1 ruleelastic
kubernetes.audit.objectRef.resourceinrolebindings1 ruleelastic
kubernetes.audit.objectRef.resourceinroles1 ruleelastic
kubernetes.audit.objectRef.resourceinserviceaccounts1 ruleelastic
useris_not_null1 ruleelastic, kusto, splunk

Detection Rules #

View all rules referencing this event →

Elastic #

  • Kubernetes Multi-Resource Discovery source medium: Adversaries who land credentials in a cluster—or abuse an over-privileged token—often map the environment before exfiltration or privilege escalation. A practical first pass is to learn where workloads run, how the cluster is partitioned, and what RBAC exists at namespace vs cluster scope. Rapid get/list traffic across distinct API resource kinds that answer those questions (namespaces, workloads, roles, cluster-wide roles) is a common setup and orientation pattern for both interactive attackers and automated recon scripts. It is less typical for steady-state controllers, which usually touch a narrow set of resources repeatedly. This rule highlights that cross-resource burst from a single client fingerprint within a one-minute bucket so analysts can separate routine automation from potential discovery and permission reconnaissance ahead of follow-on actions.