ClusterRoles Kubernetes-clusterroles
9 operations, identified by Operation in the audit log.
| Operation | Description |
|---|---|
| get-clusterroles | |
| list-clusterroles | |
| watch-clusterroles | |
| create-clusterroles | ClusterRole created (sensitive RBAC change; wildcard verbs/resources indicate overprivilege). |
| update-clusterroles | |
| replace-clusterroles | ClusterRole replaced via PUT. |
| patch-clusterroles | |
| delete-clusterroles | |
| any-clusterroles | 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. |
get-clusterroles: get clusterroles
#Fields #
| Name | Description |
|---|---|
verb | The request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...). |
objectRef.resource | The targeted resource type (plural API name, e.g. pods, secrets). |
objectRef.subresource | The targeted subresource, when present (e.g. exec, log, token). |
objectRef.namespace | Namespace of the targeted object (empty for cluster-scoped resources). |
objectRef.name | Name of the targeted object. |
objectRef.apiGroup | API group of the targeted resource (empty string for core group). |
user.username | Authenticated identity that issued the request (user or service account). |
user.groups | Groups of the requesting identity. |
sourceIPs | Source IP addresses of the request. |
responseStatus.code | HTTP status code of the API response (200, 201, 403, 404, ...). |
stage | Audit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic. |
requestReceivedTimestamp | Time the apiserver received the request. |
list-clusterroles: list clusterroles
#Fields #
| Name | Description |
|---|---|
verb | The request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...). |
objectRef.resource | The targeted resource type (plural API name, e.g. pods, secrets). |
objectRef.subresource | The targeted subresource, when present (e.g. exec, log, token). |
objectRef.namespace | Namespace of the targeted object (empty for cluster-scoped resources). |
objectRef.name | Name of the targeted object. |
objectRef.apiGroup | API group of the targeted resource (empty string for core group). |
user.username | Authenticated identity that issued the request (user or service account). |
user.groups | Groups of the requesting identity. |
sourceIPs | Source IP addresses of the request. |
responseStatus.code | HTTP status code of the API response (200, 201, 403, 404, ...). |
stage | Audit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic. |
requestReceivedTimestamp | Time the apiserver received the request. |
watch-clusterroles: watch clusterroles
#Fields #
| Name | Description |
|---|---|
verb | The request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...). |
objectRef.resource | The targeted resource type (plural API name, e.g. pods, secrets). |
objectRef.subresource | The targeted subresource, when present (e.g. exec, log, token). |
objectRef.namespace | Namespace of the targeted object (empty for cluster-scoped resources). |
objectRef.name | Name of the targeted object. |
objectRef.apiGroup | API group of the targeted resource (empty string for core group). |
user.username | Authenticated identity that issued the request (user or service account). |
user.groups | Groups of the requesting identity. |
sourceIPs | Source IP addresses of the request. |
responseStatus.code | HTTP status code of the API response (200, 201, 403, 404, ...). |
stage | Audit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic. |
requestReceivedTimestamp | Time the apiserver received the request. |
create-clusterroles: create clusterroles
#Description
ClusterRole created (sensitive RBAC change; wildcard verbs/resources indicate overprivilege).
Fields #
| Name | Description |
|---|---|
verb | The request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...). |
objectRef.resource | The targeted resource type (plural API name, e.g. pods, secrets). |
objectRef.subresource | The targeted subresource, when present (e.g. exec, log, token). |
objectRef.namespace | Namespace of the targeted object (empty for cluster-scoped resources). |
objectRef.name | Name of the targeted object. |
objectRef.apiGroup | API group of the targeted resource (empty string for core group). |
user.username | Authenticated identity that issued the request (user or service account). |
user.groups | Groups of the requesting identity. |
sourceIPs | Source IP addresses of the request. |
responseStatus.code | HTTP status code of the API response (200, 201, 403, 404, ...). |
stage | Audit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic. |
requestReceivedTimestamp | Time 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.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
kubernetes.audit.objectRef.resource | in | clusterroles | 3 rules | elastic |
kubernetes.audit.objectRef.resource | in | roles | 3 rules | elastic |
kubernetes.audit.objectRef.resource | in | cronjobs | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | daemonsets | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | deployments | 1 rule | elastic |
kubernetes.audit.verb | in | create | 3 rules | elastic |
`kubernetes.audit.annotations.authorization_k8s_io/decision` | eq | allow | 1 rule | elastic |
kubernetes.audit.level | eq | RequestResponse | 1 rule | elastic |
kubernetes.audit.stage | eq | ResponseComplete | 1 rule | elastic |
kubernetes.audit.user.username | starts_with | system\:serviceaccount\: | 1 rule | elastic |
Detection Rules #
View all rules referencing this event →Elastic #
update-clusterroles: update clusterroles
#Fields #
| Name | Description |
|---|---|
verb | The request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...). |
objectRef.resource | The targeted resource type (plural API name, e.g. pods, secrets). |
objectRef.subresource | The targeted subresource, when present (e.g. exec, log, token). |
objectRef.namespace | Namespace of the targeted object (empty for cluster-scoped resources). |
objectRef.name | Name of the targeted object. |
objectRef.apiGroup | API group of the targeted resource (empty string for core group). |
user.username | Authenticated identity that issued the request (user or service account). |
user.groups | Groups of the requesting identity. |
sourceIPs | Source IP addresses of the request. |
responseStatus.code | HTTP status code of the API response (200, 201, 403, 404, ...). |
stage | Audit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic. |
requestReceivedTimestamp | Time 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.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
kubernetes.audit.objectRef.resource | in | clusterroles | 4 rules | elastic |
kubernetes.audit.objectRef.resource | in | roles | 4 rules | elastic |
kubernetes.audit.objectRef.resource | in | cronjobs | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | daemonsets | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | deployments | 1 rule | elastic |
kubernetes.audit.verb | in | patch | 4 rules | elastic |
kubernetes.audit.verb | in | update | 4 rules | elastic |
kubernetes.audit.verb | in | create | 3 rules | elastic |
kubernetes.audit.annotations.authorization_k8s_io/decision | eq | allow | 3 rules | elastic |
kubernetes.audit.level | eq | RequestResponse | 2 rules | elastic |
kubernetes.audit.stage | eq | ResponseComplete | 2 rules | elastic |
`kubernetes.audit.annotations.authorization_k8s_io/decision` | eq | allow | 1 rule | elastic |
kubernetes.audit.user.username | starts_with | system\:serviceaccount\: | 1 rule | elastic |
Detection Rules #
View all rules referencing this event →Elastic #
Show 1 more (4 total)
replace-clusterroles: replace clusterroles
#Description
ClusterRole replaced via PUT.
Fields #
| Name | Description |
|---|---|
verb | The request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...). |
objectRef.resource | The targeted resource type (plural API name, e.g. pods, secrets). |
objectRef.subresource | The targeted subresource, when present (e.g. exec, log, token). |
objectRef.namespace | Namespace of the targeted object (empty for cluster-scoped resources). |
objectRef.name | Name of the targeted object. |
objectRef.apiGroup | API group of the targeted resource (empty string for core group). |
user.username | Authenticated identity that issued the request (user or service account). |
user.groups | Groups of the requesting identity. |
sourceIPs | Source IP addresses of the request. |
responseStatus.code | HTTP status code of the API response (200, 201, 403, 404, ...). |
stage | Audit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic. |
requestReceivedTimestamp | Time the apiserver received the request. |
patch-clusterroles: patch clusterroles
#Fields #
| Name | Description |
|---|---|
verb | The request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...). |
objectRef.resource | The targeted resource type (plural API name, e.g. pods, secrets). |
objectRef.subresource | The targeted subresource, when present (e.g. exec, log, token). |
objectRef.namespace | Namespace of the targeted object (empty for cluster-scoped resources). |
objectRef.name | Name of the targeted object. |
objectRef.apiGroup | API group of the targeted resource (empty string for core group). |
user.username | Authenticated identity that issued the request (user or service account). |
user.groups | Groups of the requesting identity. |
sourceIPs | Source IP addresses of the request. |
responseStatus.code | HTTP status code of the API response (200, 201, 403, 404, ...). |
stage | Audit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic. |
requestReceivedTimestamp | Time 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.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
kubernetes.audit.objectRef.resource | in | clusterroles | 4 rules | elastic |
kubernetes.audit.objectRef.resource | in | roles | 4 rules | elastic |
kubernetes.audit.verb | in | patch | 4 rules | elastic |
kubernetes.audit.verb | in | update | 4 rules | elastic |
kubernetes.audit.verb | in | create | 3 rules | elastic |
kubernetes.audit.annotations.authorization_k8s_io/decision | eq | allow | 3 rules | elastic |
kubernetes.audit.level | eq | RequestResponse | 2 rules | elastic |
kubernetes.audit.stage | eq | ResponseComplete | 2 rules | elastic |
`kubernetes.audit.annotations.authorization_k8s_io/decision` | eq | allow | 1 rule | elastic |
Detection Rules #
View all rules referencing this event →Elastic #
Show 1 more (4 total)
delete-clusterroles: delete clusterroles
#Fields #
| Name | Description |
|---|---|
verb | The request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...). |
objectRef.resource | The targeted resource type (plural API name, e.g. pods, secrets). |
objectRef.subresource | The targeted subresource, when present (e.g. exec, log, token). |
objectRef.namespace | Namespace of the targeted object (empty for cluster-scoped resources). |
objectRef.name | Name of the targeted object. |
objectRef.apiGroup | API group of the targeted resource (empty string for core group). |
user.username | Authenticated identity that issued the request (user or service account). |
user.groups | Groups of the requesting identity. |
sourceIPs | Source IP addresses of the request. |
responseStatus.code | HTTP status code of the API response (200, 201, 403, 404, ...). |
stage | Audit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic. |
requestReceivedTimestamp | Time the apiserver received the request. |
Detection Rules #
View all rules referencing this event →Elastic #
any-clusterroles: any verb on clusterroles (synthetic aggregation)
#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 #
| Name | Description |
|---|---|
verb | The request verb (get, list, watch, create, update, replace, patch, delete, deletecollection, ...). |
objectRef.resource | The targeted resource type (plural API name, e.g. pods, secrets). |
objectRef.subresource | The targeted subresource, when present (e.g. exec, log, token). |
objectRef.namespace | Namespace of the targeted object (empty for cluster-scoped resources). |
objectRef.name | Name of the targeted object. |
objectRef.apiGroup | API group of the targeted resource (empty string for core group). |
user.username | Authenticated identity that issued the request (user or service account). |
user.groups | Groups of the requesting identity. |
sourceIPs | Source IP addresses of the request. |
responseStatus.code | HTTP status code of the API response (200, 201, 403, 404, ...). |
stage | Audit stage: RequestReceived, ResponseStarted, ResponseComplete, Panic. |
requestReceivedTimestamp | Time 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.
| Field | Kind | Value | Rules | Vendors |
|---|---|---|---|---|
EventType | in | get | 1 rule | elastic |
EventType | in | list | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | clusterrolebindings | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | clusterroles | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | namespaces | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | nodes | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | pods | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | rolebindings | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | roles | 1 rule | elastic |
kubernetes.audit.objectRef.resource | in | serviceaccounts | 1 rule | elastic |
user | is_not_null | | 1 rule | elastic, kusto, splunk |
Detection Rules #
View all rules referencing this event →Elastic #
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.