Cloud Storage
| methodName | Description | Log type | Sample | Rule |
|---|---|---|---|---|
| any | Catch-all entry for storage.googleapis.com. Source-only rules that attribute to the service without a specific method attribute here. Not a distinct audit log operation. | activity | N | Y |
| storage. | Disables an Anywhere Cache instance. | activity | N | N |
| storage. | Returns the metadata of an Anywhere Cache instance. | data_access | N | N |
| storage. | Creates an Anywhere Cache instance. | activity | N | N |
| storage. | Returns a list of Anywhere Cache instances of the bucket matching the criteria. | data_access | N | N |
| storage. | Pauses an Anywhere Cache instance. | activity | N | N |
| storage. | Resumes a paused or disabled Anywhere Cache instance. | activity | N | N |
| storage. | Updates the config of an Anywhere Cache instance. | activity | N | N |
| storage. | Permanently deletes the ACL entry for the specified entity on the specified bucket. | activity | N | N |
| storage. | Returns the ACL entry for the specified entity on the specified bucket. | data_access | N | N |
| storage. | Creates a new ACL entry on the specified bucket. | activity | N | N |
| storage. | Retrieves ACL entries on the specified bucket. | data_access | N | N |
| storage. | Patches an ACL entry on the specified bucket. | activity | N | N |
| storage. | Updates an ACL entry on the specified bucket. | activity | N | N |
| storage. | Creates a new bucket. IAM audit log methodName (protoPayload.methodName in real Cloud Audit Logs); cf. storage.buckets.insert in the REST discovery doc. | activity | Y | N |
| storage. | Permanently deletes an empty bucket. | activity | Y | Y |
| storage. | Returns metadata for the specified bucket. | data_access | Y | N |
| storage. | Returns an IAM policy for the specified bucket. | data_access | N | N |
| storage. | Returns the storage layout configuration for the specified bucket. Note that this operation requires storage.objects.list permission. | data_access | Y | N |
| storage. | Creates a new bucket. Google Cloud Storage uses a flat namespace, so you can't create a bucket with a name that is already in use. | activity | N | Y |
| storage. | Retrieves a list of buckets for a given project, ordered in the list lexicographically by name. | data_access | Y | Y |
| storage. | Lists notification channels for the given bucket. Requires ADMIN_READ Data Access logging to be enabled. | data_access | N | Y |
| storage. | Locks retention policy on a bucket. | activity | N | N |
| storage. | Starts asynchronous advancement of the relocate bucket operation in the case of required write downtime, to allow it to lock the bucket at the source location, and proceed with the bucket location swap. The server makes a best effort to advance the relocate bucket operation, but success is not guaranteed. | activity | N | N |
| storage. | Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. | activity | N | N |
| storage. | Gets the latest state of a long-running operation. | data_access | N | N |
| storage. | Lists operations that match the specified filter in the request. | data_access | N | N |
| storage. | Patches a bucket, changing only the metadata that is specified in the request. | activity | N | Y |
| storage. | Initiates a long-running Relocate Bucket operation on the specified bucket. | activity | N | N |
| storage. | Restores a soft-deleted bucket. | activity | N | N |
| storage. | Updates an IAM policy for the specified bucket. | activity | N | N |
| storage. | Tests a set of permissions on the given bucket to see which, if any, are held by the caller. | data_access | Y | N |
| storage. | Updates a bucket. Changes to the bucket will be readable immediately after writing, but configuration changes may take time to propagate. | activity | Y | Y |
| storage. | Stop watching resources through this channel | activity | N | N |
| storage. | Permanently deletes the default object ACL entry for the specified entity on the specified bucket. | activity | N | N |
| storage. | Returns the default object ACL entry for the specified entity on the specified bucket. | data_access | N | N |
| storage. | Creates a new default object ACL entry on the specified bucket. | activity | N | N |
| storage. | Retrieves default object ACL entries on the specified bucket. | data_access | N | N |
| storage. | Patches a default object ACL entry on the specified bucket. | activity | N | N |
| storage. | Updates a default object ACL entry on the specified bucket. | activity | N | N |
| storage. | Permanently deletes a folder. Only applicable to buckets with hierarchical namespace enabled. | activity | N | N |
| storage. | Deletes a folder recursively. Only applicable to buckets with hierarchical namespace enabled. | activity | N | N |
| storage. | Returns metadata for the specified folder. Only applicable to buckets with hierarchical namespace enabled. | data_access | N | N |
| storage. | Creates a new folder. Only applicable to buckets with hierarchical namespace enabled. | activity | N | N |
| storage. | Retrieves a list of folders matching the criteria. Only applicable to buckets with hierarchical namespace enabled. | data_access | N | N |
| storage. | Renames a source folder to a destination folder. Only applicable to buckets with hierarchical namespace enabled. | activity | N | N |
| storage. | Creates a new HMAC key for the specified service account. | activity | Y | Y |
| storage. | Deletes an HMAC key. The HMAC key must be INACTIVE. | activity | N | Y |
| storage. | Permanently deletes a managed folder. | activity | N | N |
| storage. | Returns metadata of the specified managed folder. | data_access | N | N |
| storage. | Returns an IAM policy for the specified managed folder. | data_access | N | N |
| storage. | Creates a new managed folder. | activity | N | N |
| storage. | Lists managed folders in the given bucket. | data_access | Y | N |
| storage. | Updates an IAM policy for the specified managed folder. | activity | N | N |
| storage. | Tests a set of permissions on the given managed folder to see which, if any, are held by the caller. | data_access | N | N |
| storage. | Permanently deletes a notification subscription. | activity | N | N |
| storage. | View a notification configuration. | data_access | N | N |
| storage. | Creates a notification subscription for a given bucket. | activity | N | N |
| storage. | Retrieves a list of notification subscriptions for a given bucket. | data_access | N | N |
| storage. | Permanently deletes the ACL entry for the specified entity on the specified object. | activity | N | N |
| storage. | Returns the ACL entry for the specified entity on the specified object. | data_access | N | N |
| storage. | Creates a new ACL entry on the specified object. | activity | N | N |
| storage. | Retrieves ACL entries on the specified object. | data_access | N | N |
| storage. | Patches an ACL entry on the specified object. | activity | N | N |
| storage. | Updates an ACL entry on the specified object. | activity | N | N |
| storage. | Initiates a long-running bulk restore operation on the specified bucket. | data_access | N | N |
| storage. | Concatenates a list of existing objects into a new object in the same bucket. | data_access | N | N |
| storage. | Copies a source object to a destination object. Optionally overrides metadata. | data_access | N | N |
| storage. | Stores a new object and metadata. IAM audit log methodName (protoPayload.methodName in real Cloud Audit Logs); cf. storage.objects.insert in the REST discovery doc. | data_access | Y | Y |
| storage. | Deletes an object and its metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the generation parameter is used. | data_access | Y | Y |
| storage. | Retrieves an object or its metadata. | data_access | Y | Y |
| storage. | Returns an IAM policy for the specified object. | data_access | Y | N |
| storage. | Stores a new object and metadata. | data_access | N | N |
| storage. | Retrieves a list of objects matching the criteria. | data_access | Y | N |
| storage. | Moves the source object to the destination object in the same bucket. | data_access | N | N |
| storage. | Patches an object's metadata. | data_access | N | N |
| storage. | Restores a soft-deleted object. | data_access | N | N |
| storage. | Rewrites a source object to a destination object. Optionally overrides metadata. | data_access | N | N |
| storage. | Updates an IAM policy for the specified object. | activity | N | N |
| storage. | Tests a set of permissions on the given object to see which, if any, are held by the caller. | data_access | N | N |
| storage. | Updates an object's metadata. | data_access | N | N |
| storage. | Watch for changes on all objects in a bucket. | data_access | N | N |
| storage. | Creates a new HMAC key for the specified service account. | activity | N | N |
| storage. | Deletes an HMAC key. | activity | N | N |
| storage. | Retrieves an HMAC key's metadata | data_access | N | N |
| storage. | Retrieves a list of HMAC keys matching the criteria. | data_access | N | N |
| storage. | Updates the state of an HMAC key. See the HMAC Key resource descriptor for valid states. | activity | Y | N |
| storage. | Get the email address of this project's Google Cloud Storage service account. | data_access | N | N |
| storage. | Updates an IAM policy for the specified bucket. This method appears in Data Access audit logs as an ADMIN_READ entry when the caller reads IAM policies on bucket resources. | activity | Y | Y |
| storage. | Test caller IAM permissions on a Cloud Storage resource. | data_access | Y | N |
any: storage.googleapis.com (any method)
#Description
Catch-all entry for storage.googleapis.com. Source-only rules that attribute to the service without a specific method attribute here. Not a distinct audit log operation.
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Panther #
T1548
storage.anywhereCaches.disable: disable
#Description
Disables an Anywhere Cache instance.
storage.anywhereCaches.get: get
#Description
Returns the metadata of an Anywhere Cache instance.
Data Access audit logs are disabled by default.
storage.anywhereCaches.insert: insert
#Description
Creates an Anywhere Cache instance.
storage.anywhereCaches.list: list
#Description
Returns a list of Anywhere Cache instances of the bucket matching the criteria.
Data Access audit logs are disabled by default.
storage.anywhereCaches.pause: pause
#Description
Pauses an Anywhere Cache instance.
storage.anywhereCaches.resume: resume
#Description
Resumes a paused or disabled Anywhere Cache instance.
storage.anywhereCaches.update: update
#Description
Updates the config of an Anywhere Cache instance.
storage.bucketAccessControls.delete: delete
#Description
Permanently deletes the ACL entry for the specified entity on the specified bucket.
storage.bucketAccessControls.get: get
#Description
Returns the ACL entry for the specified entity on the specified bucket.
Data Access audit logs are disabled by default.
storage.bucketAccessControls.insert: insert
#Description
Creates a new ACL entry on the specified bucket.
storage.bucketAccessControls.list: list
#Description
Retrieves ACL entries on the specified bucket.
Data Access audit logs are disabled by default.
storage.bucketAccessControls.patch: patch
#Description
Patches an ACL entry on the specified bucket.
storage.bucketAccessControls.update: update
#Description
Updates an ACL entry on the specified bucket.
storage.buckets.create: Create bucket
#Description
Creates a new bucket. IAM audit log methodName (protoPayload.methodName in real Cloud Audit Logs); cf. storage.buckets.insert in the REST discovery doc.
Example Audit Log Entry #
{
"insertId": "1fq2m5en7xp2",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Factivity",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.buckets.create",
"resource": "projects/_/buckets/dwgen-dw739065",
"resourceAttributes": {}
}
],
"methodName": "storage.buckets.create",
"request": {
"defaultObjectAcl": {
"@type": "type.googleapis.com/google.iam.v1.Policy",
"bindings": [
{
"members": [
"projectViewer:example-project-id"
],
"role": "roles/storage.legacyObjectReader"
},
{
"members": [
"projectOwner:example-project-id",
"projectEditor:example-project-id"
],
"role": "roles/storage.legacyObjectOwner"
}
]
}
},
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.buckets.create invocation-id/06996e4c9a3f4d7cae489c4adba1d035 environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/True python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T13:19:37.119225227Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwgen-dw739065",
"serviceData": {
"@type": "type.googleapis.com/google.iam.v1.logging.AuditData",
"policyDelta": {
"bindingDeltas": [
{
"action": "ADD",
"member": "projectEditor:example-project-id",
"role": "roles/storage.legacyBucketOwner"
},
{
"action": "ADD",
"member": "projectOwner:example-project-id",
"role": "roles/storage.legacyBucketOwner"
},
{
"action": "ADD",
"member": "projectViewer:example-project-id",
"role": "roles/storage.legacyBucketReader"
},
{
"action": "ADD",
"member": "projectEditor:example-project-id",
"role": "roles/storage.legacyObjectOwner"
},
{
"action": "ADD",
"member": "projectOwner:example-project-id",
"role": "roles/storage.legacyObjectOwner"
},
{
"action": "ADD",
"member": "projectViewer:example-project-id",
"role": "roles/storage.legacyObjectReader"
}
]
}
},
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T13:19:38.188427788Z",
"resource": {
"labels": {
"bucket_name": "dwgen-dw739065",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "NOTICE",
"timestamp": "2026-06-29T13:19:37.105685848Z"
}
storage.buckets.delete: Delete bucket
#Description
Permanently deletes an empty bucket.
Example Audit Log Entry #
{
"insertId": "qdhdrveo4f4r",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Factivity",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.buckets.delete",
"resource": "projects/_/buckets/dwbb-dw746783",
"resourceAttributes": {}
}
],
"methodName": "storage.buckets.delete",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.rm invocation-id/2a83a292fc804ae4ac151c538e94b906 environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/False python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T15:31:49.295616252Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwbb-dw746783",
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T15:31:51.056504631Z",
"resource": {
"labels": {
"bucket_name": "dwbb-dw746783",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "NOTICE",
"timestamp": "2026-06-29T15:31:49.282203264Z"
}
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 |
|---|---|---|---|---|
severity (panther rule field) | ne | ERROR | 1 rule | panther |
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Sigma #
Elastic #
T1485Panther #
T1486, T1562↳ also matches storage.buckets.update: Update bucket metadata
storage.buckets.get: get
#Description
Returns metadata for the specified bucket.
Data Access audit logs are disabled by default.Example Audit Log Entry #
{
"insertId": "5kkq3ndtxo6",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.buckets.get",
"resource": "projects/_/buckets/dwbk7201353",
"resourceAttributes": {}
}
],
"methodName": "storage.buckets.get",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.buckets.update invocation-id/a60ddbb973f149988990974d6f4ad825 environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/True python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T16:25:47.316928986Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwbk7201353",
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T16:25:47.601314520Z",
"resource": {
"labels": {
"bucket_name": "dwbk7201353",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "INFO",
"timestamp": "2026-06-29T16:25:47.304419643Z"
}
storage.buckets.getIamPolicy: getIamPolicy
#Description
Returns an IAM policy for the specified bucket.
Data Access audit logs are disabled by default.
storage.buckets.getStorageLayout: getStorageLayout
#Description
Returns the storage layout configuration for the specified bucket. Note that this operation requires storage.objects.list permission.
Data Access audit logs are disabled by default.Example Audit Log Entry #
{
"insertId": "5afwf7e4s1el",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.objects.list",
"resource": "projects/_/buckets/dwgen-dw739065",
"resourceAttributes": {}
}
],
"methodName": "storage.buckets.getStorageLayout",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.cp invocation-id/519689db01bc43989c7d3733c4f4a3fa environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/False python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T13:19:38.988895322Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwgen-dw739065",
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T13:19:39.509751756Z",
"resource": {
"labels": {
"bucket_name": "dwgen-dw739065",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "INFO",
"timestamp": "2026-06-29T13:19:38.976061163Z"
}
storage.buckets.insert: Insert bucket
#Description
Creates a new bucket. Google Cloud Storage uses a flat namespace, so you can't create a bucket with a name that is already in use.
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Sigma #
storage.buckets.list: List buckets
#Description
Retrieves a list of buckets for a given project, ordered in the list lexicographically by name.
Data Access audit logs are disabled by default. Full rule details for this event, including ATT&CK technique mappings and native queries →Example Audit Log Entry #
{
"insertId": "m8nnw5e8932z",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.buckets.list",
"resourceAttributes": {}
}
],
"methodName": "storage.buckets.list",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.buckets.list invocation-id/b99122866b9342a0a98879bfe01f0225 environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/True python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T13:18:03.306892448Z"
}
},
"resourceLocation": {
"currentLocations": [
"global"
]
},
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T13:18:03.849725439Z",
"resource": {
"labels": {
"bucket_name": "",
"location": "global",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "INFO",
"timestamp": "2026-06-29T13:18:03.297916597Z"
}
Detection Rules #
Sigma #
storage.buckets.listChannels: List bucket notification channels
#Description
Lists notification channels for the given bucket. Requires ADMIN_READ Data Access logging to be enabled.
Data Access audit logs are disabled by default. Full rule details for this event, including ATT&CK technique mappings and native queries →Detection Rules #
Sigma #
storage.buckets.lockRetentionPolicy: lockRetentionPolicy
#Description
Locks retention policy on a bucket.
storage.buckets.operations.advanceRelocateBucket: advanceRelocateBucket
#Description
Starts asynchronous advancement of the relocate bucket operation in the case of required write downtime, to allow it to lock the bucket at the source location, and proceed with the bucket location swap. The server makes a best effort to advance the relocate bucket operation, but success is not guaranteed.
storage.buckets.operations.cancel: cancel
#Description
Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed.
storage.buckets.operations.get: get
#Description
Gets the latest state of a long-running operation.
Data Access audit logs are disabled by default.
storage.buckets.operations.list: list
#Description
Lists operations that match the specified filter in the request.
Data Access audit logs are disabled by default.
storage.buckets.patch: Patch bucket
#Description
Patches a bucket, changing only the metadata that is specified in the request.
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Sigma #
storage.buckets.relocate: relocate
#Description
Initiates a long-running Relocate Bucket operation on the specified bucket.
storage.buckets.restore: restore
#Description
Restores a soft-deleted bucket.
storage.buckets.setIamPolicy: setIamPolicy
#Description
Updates an IAM policy for the specified bucket.
storage.buckets.testIamPermissions: testIamPermissions
#Description
Tests a set of permissions on the given bucket to see which, if any, are held by the caller.
Data Access audit logs are disabled by default.Example Audit Log Entry #
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {},
"authenticationInfo": {
"principalEmail": "terraform@anon-terraform-prod.iam.gserviceaccount.com",
"serviceAccountKeyName": "//iam.googleapis.com/projects/anon-terraform-prod/serviceAccounts/terraform@anon-terraform-prod.iam.gserviceaccount.com/keys/cbf7d9769c83853e97a2dc08240872c54de991f2"
},
"requestMetadata": {
"callerIp": "2600::1",
"callerSuppliedUserAgent": "apitools Python/3.6.8 gsutil/4.61 (darwin) analytics/enabled interactive/True command/versioning google-cloud-sdk/339.0.0,gzip(gfe)",
"requestAttributes": {
"time": "2021-08-19T17:51:31.844550548Z",
"auth": {}
},
"destinationAttributes": {}
},
"serviceName": "storage.googleapis.com",
"methodName": "storage.buckets.update",
"authorizationInfo": [
{
"resource": "projects/_/buckets/s3.anon.net",
"permission": "storage.buckets.update",
"granted": true,
"resourceAttributes": {}
}
],
"resourceName": "projects/_/buckets/s3.anon.net",
"request": {
"bucket": "s3.anon.net",
"metadata": {
"versioning": {
"enabled": true
},
"name": "s3.anon.net",
"id": "s3.anon.net"
},
"projection": "NO_ACL"
},
"response": {
"etag": "CAM=",
"metageneration": "3",
"storageClass": "STANDARD",
"updated": "2021-08-19T17:51:31.954Z",
"timeCreated": "2018-07-20T00:46:43.093Z",
"id": "s3.anon.net",
"versioning": {
"enabled": true
},
"iamConfiguration": {
"uniformBucketLevelAccess": {}
},
"projectNumber": "417127842024",
"name": "s3.anon.net",
"locationType": "multi-region",
"location": "US"
},
"resourceLocation": {
"currentLocations": [
"us"
]
}
},
"insertId": "slfn9ddc3sc",
"resource": {
"type": "gcs_bucket",
"labels": {
"location": "us",
"bucket_name": "s3.anon.net",
"project_id": "anon-logs-prod"
}
},
"timestamp": "2021-08-19T17:51:31.834523489Z",
"severity": "NOTICE",
"logName": "projects/anon-logs-prod/logs/cloudaudit.googleapis.com%2Factivity",
"receiveTimestamp": "2021-08-19T17:51:32.286951460Z"
}
References #
storage.buckets.update: Update bucket metadata
#Description
Updates a bucket. Changes to the bucket will be readable immediately after writing, but configuration changes may take time to propagate.
Example Audit Log Entry #
{
"insertId": "k07zn9e7vspr",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Factivity",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.buckets.update",
"resource": "projects/_/buckets/dwg2-dw743447",
"resourceAttributes": {}
}
],
"methodName": "storage.buckets.update",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.buckets.update invocation-id/4a24750fd9ad44c78dccc3cdfca8a382 environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/False python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T14:33:58.034563452Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwg2-dw743447",
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T14:33:58.853445049Z",
"resource": {
"labels": {
"bucket_name": "dwg2-dw743447",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "NOTICE",
"timestamp": "2026-06-29T14:33:58.020283294Z"
}
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 |
|---|---|---|---|---|
severity (panther rule field) | ne | ERROR | 1 rule | panther |
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Sigma #
Elastic #
T1578, T1578.005Panther #
T1486, T1562↳ also matches storage.buckets.delete: Delete bucket
storage.channels.stop: stop
#Description
Stop watching resources through this channel
storage.defaultObjectAccessControls.delete: delete
#Description
Permanently deletes the default object ACL entry for the specified entity on the specified bucket.
storage.defaultObjectAccessControls.get: get
#Description
Returns the default object ACL entry for the specified entity on the specified bucket.
Data Access audit logs are disabled by default.
storage.defaultObjectAccessControls.insert: insert
#Description
Creates a new default object ACL entry on the specified bucket.
storage.defaultObjectAccessControls.list: list
#Description
Retrieves default object ACL entries on the specified bucket.
Data Access audit logs are disabled by default.
storage.defaultObjectAccessControls.patch: patch
#Description
Patches a default object ACL entry on the specified bucket.
storage.defaultObjectAccessControls.update: update
#Description
Updates a default object ACL entry on the specified bucket.
storage.folders.delete: delete
#Description
Permanently deletes a folder. Only applicable to buckets with hierarchical namespace enabled.
storage.folders.deleteRecursive: deleteRecursive
#Description
Deletes a folder recursively. Only applicable to buckets with hierarchical namespace enabled.
storage.folders.get: get
#Description
Returns metadata for the specified folder. Only applicable to buckets with hierarchical namespace enabled.
Data Access audit logs are disabled by default.
storage.folders.insert: insert
#Description
Creates a new folder. Only applicable to buckets with hierarchical namespace enabled.
storage.folders.list: list
#Description
Retrieves a list of folders matching the criteria. Only applicable to buckets with hierarchical namespace enabled.
Data Access audit logs are disabled by default.
storage.folders.rename: rename
#Description
Renames a source folder to a destination folder. Only applicable to buckets with hierarchical namespace enabled.
storage.hmacKeys.create: Create HMAC key
#Description
Creates a new HMAC key for the specified service account.
Example Audit Log Entry #
{
"insertId": "hhcr1zcznu",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Factivity",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.hmacKeys.create",
"resource": "projects/0000004e9ccde496",
"resourceAttributes": {}
}
],
"methodName": "storage.hmacKeys.create",
"request": {
"@type": "type.googleapis.com/google.storage.v1.CreateHmacKeyRequest",
"projectId": "example-project-id",
"serviceAccountEmail": "dwg2-dw743447@example-project-id.iam.gserviceaccount.com"
},
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.hmac.create invocation-id/c07d47c22d26463f9405a650dd487217 environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/False python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T14:34:06.201509721Z"
}
},
"resourceLocation": {
"currentLocations": [
"global"
]
},
"resourceName": "projects/0000004e9ccde496",
"response": {
"error": {
"code": 412,
"errors": [
{
"domain": "global",
"message": "Request violates constraint 'constraints/iam.disableServiceAccountKeyCreation'",
"reason": "conditionNotMet"
}
],
"message": "Request violates constraint 'constraints/iam.disableServiceAccountKeyCreation'"
}
},
"serviceName": "storage.googleapis.com",
"status": {
"code": 9
}
},
"receiveTimestamp": "2026-06-29T14:34:06.668010299Z",
"resource": {
"labels": {
"method": "storage.hmacKeys.create",
"project_id": "example-project-id",
"service": "storage.googleapis.com"
},
"type": "audited_resource"
},
"severity": "ERROR",
"timestamp": "2026-06-29T14:34:06.192967990Z"
}
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Panther #
storage.hmacKeys.delete: Delete HMAC key
#Description
Deletes an HMAC key. The HMAC key must be INACTIVE.
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →YARA-L #
T1531
storage.managedFolders.delete: delete
#Description
Permanently deletes a managed folder.
storage.managedFolders.get: get
#Description
Returns metadata of the specified managed folder.
Data Access audit logs are disabled by default.
storage.managedFolders.getIamPolicy: getIamPolicy
#Description
Returns an IAM policy for the specified managed folder.
Data Access audit logs are disabled by default.
storage.managedFolders.insert: insert
#Description
Creates a new managed folder.
storage.managedFolders.list: list
#Description
Lists managed folders in the given bucket.
Data Access audit logs are disabled by default.Example Audit Log Entry #
{
"insertId": "154dnpof1btj1u",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.managedFolders.list",
"resource": "projects/_/buckets/dwbk7201353",
"resourceAttributes": {}
}
],
"methodName": "storage.managedFolders.list",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.rm invocation-id/1ae75efbd67540c983531af191dfc813 environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/False python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T16:33:47.385092704Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwbk7201353",
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T16:33:47.843796720Z",
"resource": {
"labels": {
"bucket_name": "dwbk7201353",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "INFO",
"timestamp": "2026-06-29T16:33:47.371716115Z"
}
storage.managedFolders.setIamPolicy: setIamPolicy
#Description
Updates an IAM policy for the specified managed folder.
storage.managedFolders.testIamPermissions: testIamPermissions
#Description
Tests a set of permissions on the given managed folder to see which, if any, are held by the caller.
Data Access audit logs are disabled by default.
storage.notifications.delete: delete
#Description
Permanently deletes a notification subscription.
storage.notifications.get: get
#Description
View a notification configuration.
Data Access audit logs are disabled by default.
storage.notifications.insert: insert
#Description
Creates a notification subscription for a given bucket.
storage.notifications.list: list
#Description
Retrieves a list of notification subscriptions for a given bucket.
Data Access audit logs are disabled by default.
storage.objectAccessControls.delete: delete
#Description
Permanently deletes the ACL entry for the specified entity on the specified object.
storage.objectAccessControls.get: get
#Description
Returns the ACL entry for the specified entity on the specified object.
Data Access audit logs are disabled by default.
storage.objectAccessControls.insert: insert
#Description
Creates a new ACL entry on the specified object.
storage.objectAccessControls.list: list
#Description
Retrieves ACL entries on the specified object.
Data Access audit logs are disabled by default.
storage.objectAccessControls.patch: patch
#Description
Patches an ACL entry on the specified object.
storage.objectAccessControls.update: update
#Description
Updates an ACL entry on the specified object.
storage.objects.bulkRestore: bulkRestore
#Description
Initiates a long-running bulk restore operation on the specified bucket.
Data Access audit logs are disabled by default.
storage.objects.compose: compose
#Description
Concatenates a list of existing objects into a new object in the same bucket.
Data Access audit logs are disabled by default.
storage.objects.copy: copy
#Description
Copies a source object to a destination object. Optionally overrides metadata.
Data Access audit logs are disabled by default.
storage.objects.create: Create object
#Description
Stores a new object and metadata. IAM audit log methodName (protoPayload.methodName in real Cloud Audit Logs); cf. storage.objects.insert in the REST discovery doc.
Data Access audit logs are disabled by default. Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis. Full rule details for this event, including ATT&CK technique mappings and native queries →Example Audit Log Entry #
{
"insertId": "jge554eho6ix",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.objects.create",
"resource": "projects/_/buckets/dwgen-dw739065/objects/sample.txt",
"resourceAttributes": {}
},
{
"granted": true,
"permission": "storage.objects.delete",
"resource": "projects/_/buckets/dwgen-dw739065/objects/sample.txt",
"resourceAttributes": {}
}
],
"methodName": "storage.objects.create",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.cp invocation-id/519689db01bc43989c7d3733c4f4a3fa environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/False python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T13:19:39.197798952Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwgen-dw739065/objects/sample.txt",
"serviceData": {
"@type": "type.googleapis.com/google.iam.v1.logging.AuditData",
"policyDelta": {}
},
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T13:19:39.893714225Z",
"resource": {
"labels": {
"bucket_name": "dwgen-dw739065",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "INFO",
"timestamp": "2026-06-29T13:19:39.189281833Z"
}
Common Indicators #
Field Kind Value Rules Vendors protoPayload.methodName (panther rule field)eq storage.objects.create2 rules panther Detection Rules #
Panther #
T1486, T1530, T1537T1486References #
storage.objects.delete: delete
#Description
Deletes an object and its metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the generation parameter is used.
Data Access audit logs are disabled by default. Field/value combinations most frequently checked by detection rules targeting this event, derived from cross-vendor predicate analysis. Full rule details for this event, including ATT&CK technique mappings and native queries →Example Audit Log Entry #
{
"insertId": "103wau4e1497e",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.objects.delete",
"resource": "projects/_/buckets/dwgen-dw739065/objects/sample.txt",
"resourceAttributes": {}
}
],
"methodName": "storage.objects.delete",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.rm invocation-id/d1d29b688e534a399fcfc99fa1d6528a environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/False python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T13:19:44.996837356Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwgen-dw739065/objects/sample.txt",
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T13:19:45.340029100Z",
"resource": {
"labels": {
"bucket_name": "dwgen-dw739065",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "INFO",
"timestamp": "2026-06-29T13:19:44.985966559Z"
}
Common Indicators #
Field Kind Value Rules Vendors severity (panther rule field)ne ERROR1 rule panther Detection Rules #
Panther #
T1485
storage.objects.get: get
#Description
Retrieves an object or its metadata.
Data Access audit logs are disabled by default. Full rule details for this event, including ATT&CK technique mappings and native queries →Example Audit Log Entry #
{
"insertId": "15cghlge4w876",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.objects.get",
"resource": "projects/_/buckets/dwgen-dw739065/objects/sample.txt",
"resourceAttributes": {}
}
],
"methodName": "storage.objects.get",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.cp invocation-id/519689db01bc43989c7d3733c4f4a3fa environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/True python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T13:19:38.699617694Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwgen-dw739065/objects/sample.txt",
"serviceName": "storage.googleapis.com",
"status": {
"code": 5,
"message": "No such object: dwgen-dw739065/sample.txt"
}
},
"receiveTimestamp": "2026-06-29T13:19:39.916606155Z",
"resource": {
"labels": {
"bucket_name": "dwgen-dw739065",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "ERROR",
"timestamp": "2026-06-29T13:19:38.687248185Z"
}
Detection Rules #
Panther #
T1537
storage.objects.getIamPolicy: getIamPolicy
#Description
Returns an IAM policy for the specified object.
Data Access audit logs are disabled by default.Example Audit Log Entry #
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {},
"authenticationInfo": {
"principalEmail": "user@domain.com"
},
"requestMetadata": {
"callerIp": "8.8.8.8",
"callerSuppliedUserAgent": "apitools Python/3.6.8 gsutil/4.67 (darwin) analytics/enabled interactive/True command/cp google-cloud-sdk/356.0.0,gzip(gfe)",
"requestAttributes": {
"time": "2021-09-13T03:03:08.926017323Z",
"auth": {}
},
"destinationAttributes": {}
},
"serviceName": "storage.googleapis.com",
"methodName": "storage.objects.list",
"authorizationInfo": [
{
"resource": "projects/_/buckets/scc-export-sample",
"permission": "storage.objects.list",
"granted": true,
"resourceAttributes": {}
}
],
"resourceName": "projects/_/buckets/scc-export-sample",
"resourceLocation": {
"currentLocations": [
"us"
]
}
},
"insertId": "-kj1h22dqg3c",
"resource": {
"type": "gcs_bucket",
"labels": {
"bucket_name": "scc-export-sample",
"project_id": "gsec-monitoring-prod",
"location": "us"
}
},
"timestamp": "2021-09-13T03:03:08.918318174Z",
"severity": "INFO",
"logName": "projects/gsec-monitoring-prod/logs/cloudaudit.googleapis.com%2Fdata_access",
"receiveTimestamp": "2021-09-13T03:03:09.951986944Z"
}
References #
storage.objects.insert: insert
#Description
Stores a new object and metadata.
Data Access audit logs are disabled by default.
storage.objects.list: list
#Description
Retrieves a list of objects matching the criteria.
Data Access audit logs are disabled by default.Example Audit Log Entry #
{
"insertId": "ypn38te16foq",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.objects.list",
"resource": "projects/_/buckets/dwgen-dw739065",
"resourceAttributes": {}
}
],
"methodName": "storage.objects.list",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.cp invocation-id/519689db01bc43989c7d3733c4f4a3fa environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/True python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T13:19:38.778444902Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwgen-dw739065",
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T13:19:39.766422812Z",
"resource": {
"labels": {
"bucket_name": "dwgen-dw739065",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "INFO",
"timestamp": "2026-06-29T13:19:38.767033086Z"
}
storage.objects.move: move
#Description
Moves the source object to the destination object in the same bucket.
Data Access audit logs are disabled by default.
storage.objects.patch: patch
#Description
Patches an object's metadata.
Data Access audit logs are disabled by default.
storage.objects.restore: restore
#Description
Restores a soft-deleted object.
Data Access audit logs are disabled by default.
storage.objects.rewrite: rewrite
#Description
Rewrites a source object to a destination object. Optionally overrides metadata.
Data Access audit logs are disabled by default.
storage.objects.setIamPolicy: setIamPolicy
#Description
Updates an IAM policy for the specified object.
storage.objects.testIamPermissions: testIamPermissions
#Description
Tests a set of permissions on the given object to see which, if any, are held by the caller.
Data Access audit logs are disabled by default.
storage.objects.update: update
#Description
Updates an object's metadata.
Data Access audit logs are disabled by default.
storage.objects.watchAll: watchAll
#Description
Watch for changes on all objects in a bucket.
Data Access audit logs are disabled by default.
storage.projects.hmacKeys.create: create
#Description
Creates a new HMAC key for the specified service account.
storage.projects.hmacKeys.delete: delete
#Description
Deletes an HMAC key.
storage.projects.hmacKeys.get: get
#Description
Retrieves an HMAC key's metadata
Data Access audit logs are disabled by default.
storage.projects.hmacKeys.list: list
#Description
Retrieves a list of HMAC keys matching the criteria.
Data Access audit logs are disabled by default.
storage.projects.hmacKeys.update: update
#Description
Updates the state of an HMAC key. See the HMAC Key resource descriptor for valid states.
Example Audit Log Entry #
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {},
"authenticationInfo": {
"principalEmail": "user@organization.com"
},
"requestMetadata": {
"callerIp": "8.8.8.8",
"callerSuppliedUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36,gzip(gfe)",
"requestAttributes": {
"time": "2021-08-17T17:27:22.981337412Z",
"auth": {}
},
"destinationAttributes": {}
},
"serviceName": "storage.googleapis.com",
"methodName": "storage.setIamPermissions",
"authorizationInfo": [
{
"resource": "projects/_/buckets/sample-logs-org",
"permission": "storage.buckets.setIamPolicy",
"granted": true,
"resourceAttributes": {}
}
],
"resourceName": "projects/_/buckets/sample-logs-org",
"serviceData": {
"@type": "type.googleapis.com/google.iam.v1.logging.AuditData",
"policyDelta": {
"bindingDeltas": [
{
"action": "ADD",
"role": "roles/storage.admin",
"member": "user:user@organization.com"
}
]
}
},
"request": {
"iamRequest": {
"resource": "projects/_/buckets/sample-logs-org",
"policy": {
"etag": "CAY=",
"bindings": [
{
"role": "roles/storage.admin",
"members": [
"serviceAccount:o793924137099-000712@gcp-sa-logging.iam.gserviceaccount.com",
"user:user@organization.com"
]
},
{
"members": [
"projectEditor:sample-logs-prod",
"projectOwner:sample-logs-prod"
],
"role": "roles/storage.legacyBucketOwner"
},
{
"members": [
"projectViewer:sample-logs-prod"
],
"role": "roles/storage.legacyBucketReader"
},
{
"members": [
"serviceAccount:service-417127842024@cloud-cdn-fill.iam.gserviceaccount.com",
"user:anon@organization.com"
],
"role": "roles/storage.objectViewer"
}
],
"version": 3
}
}
},
"response": {
"etag": "CAc=",
"version": 1,
"bindings": [
{
"role": "roles/storage.admin",
"members": [
"serviceAccount:o793924137099-000712@gcp-sa-logging.iam.gserviceaccount.com",
"user:user@organization.com"
]
},
{
"role": "roles/storage.legacyBucketOwner",
"members": [
"projectEditor:sample-logs-prod",
"projectOwner:sample-logs-prod"
]
},
{
"role": "roles/storage.legacyBucketReader",
"members": [
"projectViewer:sample-logs-prod"
]
},
{
"members": [
"serviceAccount:service-417127842024@cloud-cdn-fill.iam.gserviceaccount.com",
"user:anon@organization.com"
],
"role": "roles/storage.objectViewer"
}
]
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
}
},
"insertId": "xl5g0ceapu9i",
"resource": {
"type": "gcs_bucket",
"labels": {
"project_id": "sample-logs-prod",
"bucket_name": "sample-logs-org",
"location": "us-central1"
}
},
"timestamp": "2021-08-17T17:27:22.975758523Z",
"severity": "NOTICE",
"logName": "projects/sample-logs-prod/logs/cloudaudit.googleapis.com%2Factivity",
"receiveTimestamp": "2021-08-17T17:27:23.425872134Z"
}
References #
storage.projects.serviceAccount.get: get
#Description
Get the email address of this project's Google Cloud Storage service account.
Data Access audit logs are disabled by default.
storage.setIamPermissions: Set IAM permissions on bucket
#Description
Updates an IAM policy for the specified bucket. This method appears in Data Access audit logs as an ADMIN_READ entry when the caller reads IAM policies on bucket resources.
Example Audit Log Entry #
{
"insertId": "29eei5eeapla",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Factivity",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.buckets.setIamPolicy",
"resource": "projects/_/buckets/dwgen-dw739065",
"resourceAttributes": {}
}
],
"methodName": "storage.setIamPermissions",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.buckets.add-iam-policy-binding invocation-id/9d864b7794df4637a8361d6754dde9c0 environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/True python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T13:19:43.216372131Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwgen-dw739065",
"serviceData": {
"@type": "type.googleapis.com/google.iam.v1.logging.AuditData",
"policyDelta": {
"bindingDeltas": [
{
"action": "ADD",
"member": "serviceAccount:dwgen-dw739065@example-project-id.iam.gserviceaccount.com",
"role": "roles/storage.objectViewer"
}
]
}
},
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T13:19:44.701728298Z",
"resource": {
"labels": {
"bucket_name": "dwgen-dw739065",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "NOTICE",
"timestamp": "2026-06-29T13:19:43.204756132Z"
}
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 |
|---|---|---|---|---|
protoPayload.methodName (panther rule field) | eq | storage.setIamPermissions | 2 rules | panther |
action (splunk rule field) | eq | add | 1 rule | splunk |
protoPayload.serviceData (panther rule field) | is_not_null | | 1 rule | panther |
protoPayload.serviceData.policyDelta.bindingDeltas (panther rule field) | is_not_null | | 1 rule | panther |
target.resource.attribute.labels["ser_binding_deltas_action"] (Chronicle) | eq | ADD | 1 rule | chronicle |
Detection Rules #
Full rule details for this event, including ATT&CK technique mappings and native queries →Elastic #
T1098, T1098.003, T1222Splunk #
storage.setIamPermissions method and checks if the allUsers member is added. This…T1530Kusto #
T1078, T1078.004, T1530, T1567, T1567.002YARA-L #
T1562Panther #
T1530T1530
storage.getIamPermissions: getIamPermissions
#Description
Test caller IAM permissions on a Cloud Storage resource.
Data Access audit logs are disabled by default.Example Audit Log Entry #
{
"insertId": "ztzeb3f1ebajd",
"logName": "projects/example-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"oauthInfo": {
"oauthClientId": "32555940559.apps.googleusercontent.com"
},
"principalEmail": "user@example.com"
},
"authorizationInfo": [
{
"granted": true,
"permission": "storage.buckets.getIamPolicy",
"resource": "projects/_/buckets/dwgen-dw739065",
"resourceAttributes": {}
}
],
"methodName": "storage.getIamPermissions",
"requestMetadata": {
"callerIp": "203.0.113.10",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/574.0.0 agent-name/claude_code command/gcloud.storage.buckets.add-iam-policy-binding invocation-id/9d864b7794df4637a8361d6754dde9c0 environment/None environment-version/None client-os/LINUX client-os-ver/6.1.0 client-pltf-arch/x86_64 interactive/False from-script/True python/3.14.5 term/tmux-256color (Linux 6.1.0-41-amd64),gzip(gfe)",
"destinationAttributes": {},
"requestAttributes": {
"auth": {},
"time": "2026-06-29T13:19:43.038040091Z"
}
},
"resourceLocation": {
"currentLocations": [
"us-central1"
]
},
"resourceName": "projects/_/buckets/dwgen-dw739065",
"serviceName": "storage.googleapis.com",
"status": {}
},
"receiveTimestamp": "2026-06-29T13:19:43.596886079Z",
"resource": {
"labels": {
"bucket_name": "dwgen-dw739065",
"location": "us-central1",
"project_id": "example-project-id"
},
"type": "gcs_bucket"
},
"severity": "INFO",
"timestamp": "2026-06-29T13:19:43.022114612Z"
}