This document includes the best practices and guidelines for data management systems when running generative AI workloads on Google Cloud.
Data management systems such as BigQuery and Cloud Storage let you store the data that you require for your ML workflows, including training data, model artifacts, and production data.
Common controls
These controls apply to all data management systems.
Enable Sensitive Data Protection for data inspection
| Google control ID | COM-CO-5.1 |
|---|---|
| Implementation | Recommended |
| Description | Google Cloud recommends using Sensitive Data Protection. The infoTypes or job templates that you select depend on your particular systems. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Data warehouse controls
These controls apply to BigQuery.
Ensure BigQuery datasets aren't publicly readable or set to allAuthenticatedUsers
| Google control ID | BQ-CO-6.1 |
|---|---|
| Implementation | Required |
| Description | Restrict access to the information in a BigQuery dataset to specific users only. To configure this protection, you must set up detailed roles. |
| Applicable products |
|
| Path | cloudasset.assets/assetType |
| Operator | == |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Ensure BigQuery tables aren't publicly readable or set to allAuthenticatedUsers
| Google control ID | BQ-CO-6.2 |
|---|---|
| Implementation | Required |
| Description | Restrict access to the information in a BigQuery table to specific users only. To configure this protection, you must set up detailed roles. |
| Applicable products |
|
| Path | cloudasset.assets/iamPolicy.bindings.members |
| Operator | anyof |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Encrypt individual values in a BigQuery table
| Google control ID | BQ-CO-6.3 |
|---|---|
| Implementation | Optional |
| Description | If your organization requires that you encrypt individual values within a BigQuery table, use the Authenticated Encryption with Associated Data (AEAD) encryption functions. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Use authorized views for BigQuery datasets
| Google control ID | BQ-CO-6.4 |
|---|---|
| Implementation | Optional |
| Description | Authorized views let you share a subset of data in a dataset to specific users. For example, an authorized view lets you share query results with particular users and groups without giving them access to the underlying source data. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Use BigQuery column-level security
| Google control ID | BQ-CO-6.5 |
|---|---|
| Implementation | Optional |
| Description | Use BigQuery column-level security to create policies that check at query time whether a user has proper access. BigQuery provides fine-grained access to sensitive columns using policy tags or type-based classification of data. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Use BigQuery row-level security
| Google control ID | BQ-CO-6.6 |
|---|---|
| Implementation | Optional |
| Description | Use row-level security and access policies to enable fine-grained access control to a subset of data in a BigQuery table. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Use BigQuery resource charts
| Google control ID | BQ-CO-7.1 |
|---|---|
| Implementation | Optional |
| Description | BigQuery resource charts let BigQuery administrators observe how their organization, folder, or reservation uses BigQuery slots and how their queries perform. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Storage controls
These controls apply to Cloud Storage.
Block public access to Cloud Storage buckets
| Google control ID | GCS-CO-4.1 |
|---|---|
| Implementation | Required |
| Description | The |
| Applicable products |
|
| Path | constraints/storage.publicAccessPrevention |
| Operator | == |
| Value |
|
| Type | Boolean |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Use uniform bucket-level access
| Google control ID | GCS-CO-4.2 |
|---|---|
| Implementation | Required |
| Description | The Using two different and conflicting systems to manage permissions on storage buckets is complex and a common cause of accidental data leaks. This setting turns off the legacy system (access control lists, or ACLs) and makes the modern, centralized system (IAM) the single source of truth for all permissions. |
| Applicable products |
|
| Path | constraints/storage.uniformBucketLevelAccess |
| Operator | == |
| Value |
|
| Type | Boolean |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Protect HMAC keys for service accounts
| Google control ID | GCS-CO-6.9 |
|---|---|
| Implementation | Required |
| Description | An HMAC key is a long-lived type of credential that is associated with a service account or a user account in Cloud Storage. Use an HMAC key to create signatures that are included in requests to Cloud Storage. A signature proves a user or service account has authorized a request. Unlike short-lived credentials (such as. OAuth 2.0 tokens), HMAC keys don't expire automatically and remain valid until manually revoked. HMAC keys are high-risk credentials: if compromised, they provide persistent access to your resources. You must ensure appropriate mechanisms are in place to help protect them. |
| Applicable products |
|
| Path | storage.projects.hmacKeys/id |
| Operator | Exists |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Detect enumeration of Cloud Storage buckets by service accounts
| Google control ID | GCS-CO-7.2 |
|---|---|
| Implementation | Required |
| Description | Service accounts are non-human identities that are designed for applications, and their behavior is predictable and automated. Normally, service accounts don't need to itemize buckets, as they're already mapped. Therefore, if you detect a service account attempting to retrieve a list of all Cloud Storage buckets, investigate it immediately. Reconnaissance enumeration is often used as a recon technique by a malicious actor that has gained access to the service account. |
| Applicable products |
|
| Operator | == |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Detect Identity and Access Management (IAM) policy modifications of Cloud Storage buckets by service accounts
| Google control ID | GCS-CO-7.3 |
|---|---|
| Implementation | Required |
| Description | Configure an alert that detects when a Cloud Storage bucket's IAM policy is modified to grant public access. This alert fires when the In the alert, set the |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Ensure Cloud Storage bucket retention policy uses Bucket Lock
| Google control ID | GCS-CO-6.1 |
|---|---|
| Implementation | Recommended |
| Description | Depending on your regulatory requirements, ensure that each Cloud Storage bucket retention policy is locked. Set the retention period to a timeframe that meets your requirements. |
| Applicable products |
|
| Path | storage.buckets/retentionPolicy.isLocked |
| Operator | != |
| Value |
|
| Type | Boolean |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Set lifecycle rules for the SetStorageClass action
| Google control ID | GCS-CO-6.11 |
|---|---|
| Implementation | Recommended |
| Description | Apply lifecycle rules to each Cloud Storage bucket that has a |
| Applicable products |
|
| Path | storage.buckets/lifecycle.rule.action.type |
| Operator | == |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Set permitted regions for storage classes
| Google control ID | GCS-CO-6.12 |
|---|---|
| Implementation | Recommended |
| Description | Ensure that storage classes for the lifecycle configuration aren't within permitted regional classifications. |
| Applicable products |
|
| Path | storage.buckets/lifecycle.rule.action.storageClass |
| Operator | nin |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enable lifecycle management for Cloud Storage buckets
| Google control ID | GCS-CO-6.13 |
|---|---|
| Implementation | Recommended |
| Description | Ensure that lifecycle management of Cloud Storage is enabled and configured. The lifecycle control contains the configuration for the storage lifecycle. Verify that the policies in this setting match your requirements. |
| Applicable products |
|
| Path | storage.buckets/lifecycle |
| Operator | Exists |
| Value |
|
| Type | Object |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enable lifecycle management rules for Cloud Storage buckets
| Google control ID | GCS-CO-6.14 |
|---|---|
| Implementation | Recommended |
| Description | Ensure that lifecycle management rules for Cloud Storage are enabled and configured. The rule control contains the configuration for the storage lifecycle. Verify that the policies in this setting match your requirements. |
| Applicable products |
|
| Path | storage.buckets/lifecycle.rule |
| Operator | Empty |
| Value |
|
| Type | Array |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Review and evaluate temporary holds on active objects
| Google control ID | GCS-CO-6.16 |
|---|---|
| Implementation | Recommended |
| Description | Identify all objects where temporaryHold is set to TRUE and start an investigation and validation process. This evaluation is appropriate for the following use cases:
|
| Applicable products |
|
| Path | storage.objects/temporaryHold |
| Operator | == |
| Value |
|
| Type | Boolean |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enforce retention policies on Cloud Storage buckets
| Google control ID | GCS-CO-6.17 |
|---|---|
| Implementation | Recommended |
| Description | Ensure that all the Cloud Storage buckets have a retention policy. |
| Applicable products |
|
| Path | storage.buckets/retentionPolicy.retentionPeriod |
| Operator | agesmaller |
| Value |
|
| Type | int64 |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enforce classification tags for Cloud Storage buckets
| Google control ID | GCS-CO-6.18 |
|---|---|
| Implementation | Recommended |
| Description | Data classification is a foundational component of any data governance and security program. Applying a classification label with values like public, internal, confidential, or restricted to each bucket is essential. Confirm that |
| Applicable products |
|
| Path | storage.buckets/labels.classification |
| Operator | notexists |
| Value |
|
| Type | Extended |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enforce log buckets for Cloud Storage buckets
| Google control ID | GCS-CO-6.3 |
|---|---|
| Implementation | Recommended |
| Description | Ensure that every Cloud Storage bucket includes a log bucket. |
| Applicable products |
|
| Path | storage.buckets/logging.logBucket |
| Operator | notexists |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Configure deletion rules for Cloud Storage buckets
| Google control ID | GCS-CO-6.5 |
|---|---|
| Implementation | Recommended |
| Description | In Cloud Storage, Configure the |
| Applicable products |
|
| Path | storage.buckets/lifecycle.rule.action.type |
| Operator | == |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Ensure isLive condition is False for deletion rules
| Google control ID | GCS-CO-6.6 |
|---|---|
| Implementation | Recommended |
| Description | For deletion rules, ensure that the In Cloud Storage, Use cases:
|
| Applicable products |
|
| Path | storage.buckets/lifecycle.rule.condition.isLive |
| Operator | == |
| Value |
|
| Type | Boolean |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enforce versioning for Cloud Storage buckets
| Google control ID | GCS-CO-6.7 |
|---|---|
| Implementation | Recommended |
| Description | Ensure that all Cloud Storage buckets have versioning enabled. Use cases include the following:
|
| Applicable products |
|
| Path | storage.buckets/versioning.enabled |
| Operator | != |
| Value |
|
| Type | Boolean |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enforce owners for Cloud Storage buckets
| Google control ID | GCS-CO-6.8 |
|---|---|
| Implementation | Recommended |
| Description | Ensure that |
| Applicable products |
|
| Path | storage.buckets/labels.owner |
| Operator | notexists |
| Value |
|
| Type | Extended |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enable logging of key Cloud Storage activities
| Google control ID | GCS-CO-7.4 |
|---|---|
| Implementation | Recommended |
| Description | Enable additional logging around particular storage objects based on their use case. For example, log access to sensitive data buckets so that you can trace who gained access and when. When enabling additional logging, consider the volume of logs that you might generate. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
What's next
Review tools and inference controls.
See more Google Cloud security best practices and guidelines for generative AI workloads.