This document describes the common controls that create a baseline security environment for generative AI workloads in Google Cloud. These controls help ensure consistent and secure use of the Google Cloud environment. We recommend that you apply them to your environment before deploying production services.
These controls are meant to provide you with a starting point only. You can adapt and add organizational-specific controls as required by your organization's security policies. In addition, consider additional controls based on the specific workloads and sensitive data that you have on Google Cloud.
Required common controls
The following controls are strongly recommended for your Google Cloud environment.
Restrict TLS versions supported by Google APIs
| Google control ID | COM-CO-1.1 |
|---|---|
| Category | Required |
| Description | Google Cloud supports multiple TLS protocol versions. To meet compliance requirements, you might want to deny handshake requests from clients that use older TLS versions. To configure this control, use the Restrict TLS Versions ( Due to the behavior of organization policy hierarchy evaluation, the TLS version restriction applies to the specified resource node and all of its folders and projects (children). For example, if you deny TLS version 1.0 for an organization, it is also denied for all children that descend from that organization. You can override the inherited TLS version restriction by updating the organization policy on a child resource. For example, if your organization policy denies TLS 1.0 at the organization level, you can remove the restriction for a child folder by setting a separate organization policy on that folder. If the folder has any children, the folder's policy will also be applied on each child resource due to policy inheritance. To further restrict the TLS version to TLS 1.3 only, you can set this policy to also restrict TLS version 1.2. You must implement this control on applications that you host inside of Google Cloud. For example, at the organization level, set:
|
| Applicable products |
|
| Path | gcp.restrictTLSVersion |
| Operator | == |
| Value |
|
| Type | String |
| Compliance Manager control ID | RESTRICT_LEGACY_TLS_VERSIONS |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Encrypt data at rest in Google Cloud
| Google control ID | COM-CO-2.1 |
|---|---|
| Category | Required (default) |
| Description | All data in Google Cloud is encrypted at rest by default using NIST-approved algorithms. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Use NIST-approved algorithms for encryption and decryption
| Google control ID | COM-CO-2.4 |
|---|---|
| Category | Required |
| Description | Ensure that Cloud Key Management Service (Cloud KMS) only uses NIST-approved algorithms to store sensitive keys in the environment. This control ensures secure key usage by only NIST-approved algorithms and security. The Remove algorithms that don't comply with your organization's policies. |
| Applicable products |
|
| Path | cloudkms.projects.locations.keyRings.cryptoKeys/versionTemplate.algorithm |
| Operator | in |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Set the purpose for Cloud KMS keys
| Google control ID | COM-CO-2.5 |
|---|---|
| Category | Required |
| Description | Set the purpose for Cloud KMS keys to |
| Applicable products |
|
| Path | cloudkms.projects.locations.keyRings.cryptoKeys/purpose |
| Operator | == |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Ensure that CMEK settings are appropriate for secure BigQuery data warehouses
| Google control ID | COM-CO-2.6 |
|---|---|
| Category | Required |
| Description | The protection level indicates how cryptographic operations are performed. After you create a customer-managed encryption key (CMEK), you can't change the protection level. Supported protection levels are the following:
|
| Applicable products |
|
| Path | cloudkms.projects.locations.keyRings.cryptoKeys/primary.protectionLevel |
| Operator | in |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Rotate encryption key every 90 days
| Google control ID | COM-CO-2.7 |
|---|---|
| Category | Required |
| Description | Ensure that the rotation period of your Cloud KMS keys are set to 90 days. A general best practice is to rotate your security keys on a regular interval. This control enforces key rotation for keys that are created with HSM services. When you create this rotation period, also create appropriate policies and procedures to securely handle the creation, deletion, and modification of keying material so that you can help protect your information and ensure availability. Ensure that this period adheres to your corporate policies for key rotation. |
| Applicable products |
|
| Path | cloudkms.projects.locations.keyRings.cryptoKeys/rotationPeriod |
| Operator | <= |
| Value |
|
| Type | int32 |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Define authorized principals
| Google control ID | COM-CO-4.1 |
|---|---|
| Category | Required |
| Description | Use the Domain restricted sharing ( |
| Applicable products |
|
| Path | constraints/iam.allowedPolicyMemberDomains |
| Operator | Is |
| Value |
|
| Type | List |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Use audit logs
| Google control ID | COM-CO-7.3 |
|---|---|
| Category | Required |
| Description | Google Cloud services write audit log entries to answer who did what, where, and when with Google Cloud resources. Enable audit logging at the organization level. You can configure logging using the pipeline that you use to set up the Google Cloud organization. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enable VPC Flow Logs
| Google control ID | COM-CO-7.4 |
|---|---|
| Category | Required |
| Description | VPC Flow Logs record a sample of network flows that are sent from and received by VM instances, including those used as Google Kubernetes Engine (GKE) nodes. The sample is typically 50% or less of the VPC network flows. When you enable VPC Flow Logs, you enable logging for all VMs in a subnet. However, you can reduce the amount of information written to logging. Enable VPC Flow Logs for each VPC subnet. You can configure logging using a pipeline that you use to create a project. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enable Firewall Rules Logging
| Google control ID | COM-CO-7.5 |
|---|---|
| Category | Required |
| Description | Firewall Rules Logging creates a record each time that a firewall rule allows or denies traffic. Enable logging for each firewall rule. You can configure logging using a pipeline that you use to create a firewall. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Recommended cloud controls
We recommend that you apply the following common controls to your Google Cloud environment, regardless of your specific use case.
Restrict customer-managed encryption keys location
| Google control ID | COM-CO-2.2 |
|---|---|
| Category | Recommended |
| Description | Use the Restrict which projects may supply KMS CryptoKeys for CMEK ( To modify this constraint, administrators need the Organization Policy Administrator ( If you want to add a second layer of protection, such as bring your own key, change this constraint to represent the key names of the CMEK that is enabled. Product specifics:
|
| Applicable products |
|
| Path | constraints/gcp.restrictCmekCryptoKeyProjects |
| Operator | notexists |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Use CMEKs for Google Cloud services
| Google control ID | COM-CO-2.3 |
|---|---|
| Category | Recommended |
| Description | If you require more control over key operations than what Google-owned and Google-managed encryption keys allow, you can use customer-managed encryption keys (CMEKs). These keys are created and managed using Cloud KMS. Store the keys as software keys, in an HSM cluster, or in an external key management system. Cloud KMS encryption and decryption rates are subject to quotas. Cloud Storage specifics In Cloud Storage, use CMEKs on individual objects, or configure your Cloud Storage buckets to use a CMEK by default on all new objects added to a bucket. When using a CMEK, an object is encrypted with the key by Cloud Storage at the time it's stored in a bucket, and the object is automatically decrypted by Cloud Storage when the object is served to requesters. The following restrictions apply when using CMEKs with Cloud Storage:
|
| Applicable products |
|
| Path | constraints/gcp.restrictNonCmekServices |
| Operator | == |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Enable Sensitive Data Protection for data inspection
| Google control ID | COM-CO-5.1 |
|---|---|
| Category | 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 |
Recommended controls based on generative AI use case
If you handle sensitive data or sensitive generative AI workloads, we recommend that you implement the following controls in your applicable generative AI use cases.
Enable Data Access audit logs
| Google control ID | COM-CO-7.2 |
|---|---|
| Category | Recommended for certain use cases |
| Description | To track who accessed data in your Google Cloud environment, enable Data Access audit logs. These logs record API calls that read, create, or modify user data, as well as API calls that read resource configurations. We highly recommend enabling Data Access audit logs for generative AI models and sensitive data to ensure you can audit who has read the information. To use Data Access audit logs, you must set up your own custom detection logic for specific activities, like super admin logins. Data Access audit logs volume can be large. Enabling Data Access logs might result in your Google Cloud project being charged for the additional logs usage. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Recommended controls for your workload folders
We recommend that you implement the following security controls in folders that contain generative AI workloads.
Enable the service scope restriction in Access Context Manager access policies
| Google control ID | COM-CO-8.1 |
|---|---|
| Category | Recommended for generative AI on use cases |
| Description | For every service perimeter, confirm in the Google Cloud console that the perimeter type is set to regular. |
| Applicable products |
|
| Path | accesscontextmanager.accessPolicies.servicePerimeters/perimeterType |
| Operator | == |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Restrict APIs within VPC Service Controls service perimeters
| Google control ID | COM-CO-8.2 |
|---|---|
| Category | Recommended for generative AI on use cases |
| Description | For every service perimeter, use Access Context Manager to confirm that the perimeter is protecting the API. |
| Applicable products |
|
| Path | accesscontextmanager.accessPolicies.servicePerimeters/status.restrictedServices |
| Operator | Anyof |
| Value |
|
| Type | String |
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
Optional common controls
You can optionally implement the following common controls based on your organization's requirements.
Enable Access Transparency logs
| Google control ID | COM-CO-7.7 |
|---|---|
| Category | Optional |
| Description | Access Transparency provides logs that capture the actions that Google personnel take when accessing your content. You can enable Access Transparency at the organization level. |
| Applicable products |
|
| Related NIST-800-53 controls |
|
| Related CRI profile controls |
|
| Related information |
What's next
Review Vertex AI controls.
See more Google Cloud security best practices and guidelines for generative AI workloads.