Google Cloud best practices

Workload Manager checks the state of your resources against the up-to-date best practices and helps you improve the quality, reliability, and performance of your workloads running on Google Cloud.

This document lists the best practices that Workload Manager supports for evaluating your workloads running on Google Cloud. To learn about Workload Manager, see Product overview.

Best practices for Google Cloud

The following table shows the best practices for your workloads that run on Google Cloud.

Select one or more rule categories to filter the following table.

Rule Name Asset type and details Severity Tags
alloy-cluster-automated-backups-not-enabled

alloydb.googleapis.com/Cluster

Verifies that AlloyDB clusters have an automated backup policy enabled, ensuring critical data is protected against loss and can be rapidly recovered to maintain business continuity and service reliability.

Severity: Medium Medium
AlloyDB, Backup, Reliability, Cost, BCDR, DataProtection, CSPR
alloy-cluster-continuous-backups-not-enabled

alloydb.googleapis.com/Cluster

Verifies AlloyDB clusters have continuous backup enabled, providing crucial point-in-time recovery (PITR) to protect against data loss and ensure business continuity.

Severity: Medium Medium
Alloy, Backup, BCDR, DataProtection, Reliability, Cost, CSPR
api-key-no-restriction

apikeys.googleapis.com/Key

Verifies that all API keys have restrictions applied, preventing misuse that could lead to security breaches, unauthorized data access, and unexpected costs.

Severity: Medium Medium
IAM, api key, Security, CSPR
api-key-no-service-restriction

apikeys.googleapis.com/Key

Ensures API keys are restricted to specific services, preventing potential misuse that could lead to unauthorized API activation, security vulnerabilities, and unexpected costs.

Severity: Medium Medium
IAM, api key, Security, CSPR
api-key-older-90-days

apikeys.googleapis.com/Key

Enforces a 90-day rotation policy for API keys to minimize the security risk from lost, leaked, or compromised credentials.

Severity: Low Low
IAM, api key, Security, CSPR
api-keys

apikeys.googleapis.com/Key

Flags the existence of any API key to encourage the use of more secure authentication methods, such as service accounts, thereby reducing the risk associated with static, long-lived credentials.

Severity: Medium Medium
IAM, api key, Security, CSPR
bigquery-dataset-cmek-disabled

bigquery.googleapis.com/Dataset

Checks if BigQuery datasets are encrypted using Customer-Managed Encryption Keys (CMEK) from Cloud KMS. While BigQuery encrypts data at rest by default with Google-managed keys, CMEK offers finer-grained control over key management, including rotation, access control, and audit logging. This rule inspects the `defaultEncryptionConfiguration` field within the dataset's configuration. A violation is triggered if this field is *missing* or if it exists but lacks a `kmsKeyName` property. The absence of `defaultEncryptionConfiguration` or `kmsKeyName` signifies that the dataset is *not* employing CMEK for encryption, potentially impacting compliance and security posture.

Severity: Medium Medium
BigQuery, Dataset, Encryption, CMEK, Security, CSPR
bigquery-dataset-missing-labels

bigquery.googleapis.com/Dataset

Checks if a BigQuery dataset has labels applied. Labels are user-defined key-value pairs that help organize and manage resources within Google Cloud. They are used for filtering, grouping, and cost reporting. This rule checks for the presence of the `labels` field on the dataset. A violation is triggered if the `labels` field is missing or if it's empty.

Severity: Low Low
BigQuery, Dataset, Labels, Organization, FinOps, Management, CSPR
bigquery-dataset-missing-resource-tags

bigquery.googleapis.com/Dataset

Checks if a BigQuery dataset has resource tags applied. Resource tags are key-value pairs managed through Resource Manager. They are used for broader organizational purposes, including integration with other Google Cloud services and external systems (e.g., for access control via tag bindings). This rule checks for the presence of the `resourceTags` field. A violation is generated if the tags field is missing, or it is empty.

Severity: Low Low
BigQuery, Dataset, Tags, Organization, Management, AccessControl, FinOps, CSPR
bigquery-dataset-public

bigquery.googleapis.com/Dataset

Checks if BigQuery datasets are not publicly exposed. Publicly exposed datasets can lead to unintentional data leakage and potential privacy violations. BigQuery offers granular access controls via IAM roles, and datasets should be restricted to authorized users and service accounts only. This rule checks for the presence of 'allUsers' or 'allAuthenticatedUsers' in the dataset's access control list, which grants public access. The absence of these entries indicates that the dataset is *not* publicly accessible.

Severity: High High
BigQuery, Dataset, Security, Privacy, Cost, Reliability, CSPR
bigquery-table-cmek

bigquery.googleapis.com/Table

Checks if BigQuery tables are encrypted using Customer-Managed Encryption Keys (CMEK) in Cloud KMS. By default, BigQuery encrypts data at rest using Google-managed keys. CMEK provides more granular control over the encryption keys, allowing organizations to manage key rotation, access, and auditing. This rule examines the `encryptionConfiguration` field within the table's configuration. If this field is *missing*, or if it exists but does not contain a `kmsKeyName`, it indicates that the table is *not* using CMEK for encryption.

Severity: Medium Medium
BigQuery, Table, Encryption, CMEK, KMS, Security, Compliance, CSPR
bigquery-table-expiration

bigquery.googleapis.com/Table

Checks if a BigQuery table has an expiration time set. Setting an expiration time on tables is a best practice for managing data lifecycle and controlling storage costs, especially for temporary or staging tables. This rule examines the `expirationTime` field within the table's configuration. If `expirationTime` is *null* (or missing, which is treated the same way in Rego), it indicates that the table does *not* have an expiration time set, and a violation is generated. An explicit expiration time is a good practice for data governance.

Severity: Low Low
BigQuery, Table, Expiration, DataLifecycle, CostOptimization, DataGovernance, CSPR
bigquery-table-missing-labels

bigquery.googleapis.com/Table

Checks if a BigQuery table has labels applied. Labels are user-defined key-value pairs that help organize and manage resources within Google Cloud. They are used for filtering, grouping, and cost reporting. This rule checks for the presence of the `labels` field on the table. A violation is triggered if the `labels` field is missing or if it's empty.

Severity: Low Low
BigQuery, table, Labels, Organization, FinOps, Management, CSPR
bigquery-table-missing-resource-tags

bigquery.googleapis.com/Table

Checks if a BigQuery table has resource tags applied. Resource tags are key-value pairs managed through Resource Manager. They are used for broader organizational purposes, including integration with other Google Cloud services and external systems (e.g., for access control via tag bindings). This rule checks for the presence of the `resourceTags` field. A violation is generated if the 'resourceTags' field is missing, or if it is empty.

Severity: Low Low
BigQuery, Table, Tags, Organization, Management, AccessControl, FinOps, CSPR
bigquery-table-partition

bigquery.googleapis.com/Table

Checks if a time-partitioned BigQuery table has a partition expiration time set. Partition expiration automatically deletes partitions that are older than the specified duration. This is crucial for managing storage costs and data lifecycle, especially for large, time-series datasets. This rule examines the `timePartitioning` field and, specifically, the `expirationMs` field *within* `timePartitioning`. If `timePartitioning` is missing, or `expirationMs` is missing or if it's not a positive integer, it indicates that partition expiration is not configured correctly, and a violation is generated.

Severity: Low Low
BigQuery, Table, Partition, Expiration, DataLifecycle, CostOptimization, TimePartitioning, CSPR
cloudsql-instance-ca-cert-invalid

sqladmin.googleapis.com/Instance

Checks the expiration status of the Certificate Authority (CA) certificate for Cloud SQL instances. Regularly rotating CA certificates and ensuring they are not expired is a critical security best practice. An expired CA certificate can disrupt client connections to the database, leading to application downtime. This rule checks two key things

Severity: High High
CloudSQL, Security, Certificate, Expiration, Reliability, CSPR
cloudsql-instance-pitr-disabled

sqladmin.googleapis.com/Instance

Checks if Point-in-Time Recovery (PITR) is enabled for Cloud SQL instances. PITR allows restoring the database to a specific point in time, providing crucial data recovery capabilities. This rule directly checks the `pointInTimeRecoveryEnabled` setting within the `backupConfiguration`. If `pointInTimeRecoveryEnabled` is `false` or not present, it indicates that PITR is *not* enabled.

Severity: Medium Medium
CloudSQL, Instance, Backup, PITR, Recovery, Reliability, DataProtection, CSPR
cloudsql-instance-storage-autoresize

sqladmin.googleapis.com/Instance

Checks if Cloud SQL instances have automatic storage resizing enabled. Enabling `storageAutoResize` allows the instance's storage capacity to automatically increase as needed, preventing potential out-of-storage errors and downtime. Without automatic resizing, the instance can become unavailable if it runs out of storage space. This rule checks for the presence and value of the `storageAutoResize` setting within the instance's configuration. If `storageAutoResize` is `false` or not present, it indicates that automatic storage resizing is *disabled*, which can lead to operational issues. Enabling this feature is crucial for maintaining the reliability and availability of the database.

Severity: Medium Medium
CloudSQL, Instance, Storage, AutoResize, Reliability, Availability, Performance, Cost, CSPR
cloudsql-mysql-local-infile-enabled

sqladmin.googleapis.com/Instance

Enabling local_infile on Cloud SQL for MySQL can expose the server to file read exploits; disable it unless absolutely necessary.

Severity: Medium Medium
CloudSQL, MySQL, Instance, Security, Flags, CSPR
cloudsql-mysql-skip-show-db

sqladmin.googleapis.com/Instance

Ensures the 'skip_show_database' flag is enabled (set to 'on') for Cloud SQL for MySQL instances. Enabling this flag prevents users from using the `SHOW DATABASES` command unless they have the `SHOW DATABASES` privilege. This enhances security by limiting the ability of users to discover database names, reducing the risk of unauthorized access attempts and information disclosure. It's a form of security through obscurity.

Severity: Medium Medium
CloudSQL, MySQL, Instance, Security, Flags, CSPR
cloudsql-mysql-slow-query-log-disabled

sqladmin.googleapis.com/Instance

Checks if the 'slow_query_log' database flag is enabled (set to 'on') for Cloud SQL for MySQL instances. Enabling this flag activates the slow query log, which records SQL statements that exceed a defined execution time threshold (controlled by 'long_query_time'). The slow query log is an essential tool for identifying performance bottlenecks, optimizing queries, and troubleshooting database performance issues. Disabling this flag hinders your ability to diagnose and resolve slow query problems.

Severity: Medium Medium
CloudSQL, MySQL, Instance, Performance, Flags, Performance, Troubleshooting, CSPR
cloudsql-no-auto-backup

sqladmin.googleapis.com/Instance

Detects Cloud SQL instances that have automated backups *disabled*. Automated backups are *critical* for data protection and disaster recovery. Without regular backups, data loss due to accidental deletion, corruption, or other failures is highly likely and may be irreversible. Enabling automated backups ensures that point-in-time recovery is possible, minimizing data loss and downtime.

Severity: High High
CloudSQL, Database, Backup, Reliability, CSPR
cloudsql-password-policy-not-enabled

sqladmin.googleapis.com/Instance

Checks if a password validation Policy is set for Cloud SQL instances. For security best practices, it is *strongly* recommended to set a Password Validation Policy. Relying on default or not setting the password validation, significantly increases the risk of unauthorized access and potential data breaches. This rule checks for the *absence* of password validation. If password validation is *not* enforced for Instance, it indicates a potential security vulnerability.

Severity: High High
CloudSQL, Instance, Security, Password, Reliability, CSPR
cloudsql-pgsql-log-checkpoints

sqladmin.googleapis.com/Instance

Ensures that the 'log_checkpoints' database flag is enabled (set to 'on') for Cloud SQL for PostgreSQL instances. Checkpoints are critical points in the transaction log sequence where PostgreSQL writes all dirty data buffers to disk and updates the control file. Logging checkpoints provides valuable information for monitoring database recovery time, diagnosing performance issues related to I/O, and understanding write activity. Disabling this flag can hinder troubleshooting and recovery analysis.

Severity: Medium Medium
CloudSQL, PostgreSQL, Reliability, Performance, CSPR
cloudsql-pgsql-log-connections-disabled

sqladmin.googleapis.com/Instance

Checks if the 'log_connections' database flag is enabled (set to 'on') for Cloud SQL for PostgreSQL instances. When enabled, this flag logs each successful connection attempt to the database server, including the username and client IP address. This information is crucial for security auditing, tracking database access, and troubleshooting connection-related issues. It complements the 'log_disconnections' flag, which logs the end of sessions. This rule flags instances where connection logging is *disabled*.

Severity: Medium Medium
CloudSQL, PostgreSQL, Instance, Logging, Flags, Security, Troubleshooting, CSPR
cloudsql-pgsql-log-disconnections-disabled

sqladmin.googleapis.com/Instance

Checks if the 'log_disconnections' database flag is enabled (set to 'on') for Cloud SQL for PostgreSQL instances. When enabled, this flag logs the end of each client session, including the session duration. This information is valuable for auditing, security analysis (e.g., detecting unusual connection patterns), and troubleshooting connection-related issues. It complements the 'log_connections' flag, which logs the start of connections. This rule flags instances where disconnection logging is *disabled*.

Severity: Medium Medium
CloudSQL, PostgreSQL, Instance, Logging, Flags, Security, Troubleshooting, CSPR
cloudsql-pgsql-log-error-verbosity

sqladmin.googleapis.com/Instance

Ensures that the 'log_error_verbosity' database flag for Cloud SQL for PostgreSQL instances is set to either 'default' or 'verbose'. This flag controls the amount of detail included in error messages written to the server log. Setting it to 'default' or 'verbose' provides more information for troubleshooting and debugging compared to the 'terse' setting, which minimizes detail. More verbose error logs can significantly aid in diagnosing the root cause of database problems.

Severity: Medium Medium
CloudSQL, PostgreSQL, Instance, Logging, Flags, Troubleshooting, Debugging, Reliability, CSPR
cloudsql-pgsql-log-hostname

sqladmin.googleapis.com/Instance

Ensures that the 'log_hostname' database flag is enabled (set to 'on') for Cloud SQL for PostgreSQL instances. When enabled, this flag logs the hostnames of connecting clients in addition to their IP addresses. Logging hostnames can be valuable for troubleshooting, security auditing, and identifying the source of connections. This can be particularly helpful in environments where IP addresses change frequently (e.g., due to DHCP) or where multiple clients connect from the same IP address (e.g., through a proxy or NAT). However, enabling this can introduce a slight performance overhead due to the hostname.

Severity: Medium Medium
CloudSQL, PostgreSQL, Instance, Logging, Troubleshooting, Security, CSPR
cloudsql-pgsql-log-lock-waits

sqladmin.googleapis.com/Instance

Ensures that the 'log_lock_waits' database flag is enabled (set to 'on') for Cloud SQL for PostgreSQL instances. Enabling this flag logs long lock waits, which are often indicative of performance bottlenecks or concurrency issues within the database. By monitoring these logs, administrators can identify and address the root causes of slow queries or application performance problems. This proactive approach helps maintain database health and responsiveness.

Severity: Medium Medium
CloudSQL, Performance, Reliability, PostgreSQL, Instance, Logging, Flags, CSPR
cloudsql-pgsql-log-min-duration-disabled

sqladmin.googleapis.com/Instance

Checks if the 'log_min_duration_statement' database flag is set to '-1' (disabled) on Cloud SQL for PostgreSQL instances. This flag controls the minimum execution time (in milliseconds) a statement must take before it's logged. Setting it to '-1' disables logging of statement durations, hindering performance monitoring and troubleshooting. It's generally recommended to set a specific threshold (e.g., 2000 for 2 seconds) to capture slow queries without overwhelming the logs. This rule flags instances where duration-based statement logging is *disabled*.

Severity: Medium Medium
CloudSQL, PostgreSQL, Instance, Logging, Flags, Performance, Troubleshooting, CSPR
cloudsql-pgsql-log-min-error-too-high

sqladmin.googleapis.com/Instance

Checks if the 'log_min_error_statement' database flag is set to 'error', 'log', 'fatal', or 'panic' for Cloud SQL for PostgreSQL instances. This flag controls the severity level of SQL statements that are logged as errors. Setting it to 'error' or a stricter level (log, fatal, panic) ensures that all error-causing statements are logged, which is crucial for troubleshooting, auditing, and security analysis. Settings less strict than 'error' (e.g., 'warning', 'notice') may not capture all error conditions, hindering your ability to diagnose and resolve problems. This rule flags instances with a setting *less strict* than 'error'.

Severity: Medium Medium
CloudSQL, PostgreSQL, Instance, Logging, Flags, Troubleshooting, Security, CSPR
cloudsql-pgsql-log-min-messages-non-default

sqladmin.googleapis.com/Instance

Checks if the 'log_min_messages' database flag is set to its default value ('warning') for Cloud SQL for PostgreSQL instances. This flag controls the severity level of messages that are written to the server log. While the default ('warning') is generally appropriate, it's often recommended to adjust this setting based on your specific operational needs and the desired level of logging detail. Setting it to a more verbose level (e.g., 'notice', 'info', 'debug') can provide more information for troubleshooting, while setting it to a less verbose level (e.g., 'error', 'log', 'fatal', 'panic') can reduce log volume. This rule flags instances where the setting is *not* the default ('warning'). It's a policy decision whether to enforce the default or allow deviations.

Severity: Medium Medium
CloudSQL, PostgreSQL, Instance, Logging, Flags, Logging, Troubleshooting, Reliability, CSPR
cloudsql-pgsql-log-statement

sqladmin.googleapis.com/Instance

Verifies that the 'log_statement' database flag is configured to a value *other than* 'none' for Cloud SQL for PostgreSQL instances. The 'log_statement' flag controls which SQL statements are logged. Appropriate logging of SQL statements is crucial for auditing, security analysis, performance troubleshooting, and debugging. Setting it to values like 'ddl', 'mod', or 'all' (depending on your needs) provides valuable insights into database activity. A setting of 'none' disables statement logging entirely, hindering these important capabilities.

Severity: Medium Medium
CloudSQL, PostgreSQL, Instance, Logging, Flags, Troubleshooting, Performance, Security, CSPR
cloudsql-pgsql-log-temp-files

sqladmin.googleapis.com/Instance

Ensures that the 'log_temp_files' database flag is enabled (set to a non-zero value) for Cloud SQL for PostgreSQL instances. This flag controls the logging of temporary file usage. Setting it to a value other than '0' (which disables logging) allows you to monitor the size and number of temporary files created by queries. Excessive temporary file creation can indicate inefficient queries, poorly tuned `work_mem` settings, or potential performance bottlenecks. Analyzing these logs can help optimize query performance and resource utilization. A value of 0 disables logging, while positive values indicate a threshold in KB.

Severity: Medium Medium
CloudSQL, PostgreSQL, Instance, Logging, Flags, CSPR
cloudsql-pgsql-max-connections

sqladmin.googleapis.com/Instance

Ensures that the 'max_connections' database flag is explicitly configured for Cloud SQL for PostgreSQL instances. Setting an appropriate value for 'max_connections' is crucial for resource management and preventing connection exhaustion. Without a defined limit, a surge in connection requests could overwhelm the database, leading to performance degradation or denial of service. The optimal value depends on the instance size and workload.

Severity: Medium Medium
CloudSQL, Reliability, Performance, SQL, PostgreSQL, Instance, Connections, Flags, CSPR
cloudsql-pgsql-pgaudit-disabled

sqladmin.googleapis.com/Instance

Checks if the 'cloudsql.enable_pgaudit' flag is enabled (set to 'on') for Cloud SQL for PostgreSQL instances. This flag enables the pgaudit extension, which provides detailed session and object audit logging capabilities. pgaudit allows you to track specific database activities, such as SELECT, INSERT, UPDATE, and DELETE operations, and to configure granular auditing rules based on users, roles, and objects. This is crucial for security auditing, compliance, and forensic analysis.

Severity: Medium Medium
CloudSQL, PostgreSQL, Instance, Auditing, Flags, Security, Auditing, CSPR
cloudsql-public-access

sqladmin.googleapis.com/Instance

Detects Cloud SQL instances that are configured to allow connections from any IP address (0.0.0.0/0) in their authorized networks. Exposing a database instance to the public internet is a **critical security risk** and should be avoided unless absolutely necessary and with extreme caution. Public accessibility dramatically increases the attack surface, making the instance vulnerable to unauthorized access, brute-force attacks, and data breaches. Access should be restricted to specific, known IP addresses or ranges.

Severity: High High
CloudSQL, Instance, Security, Networking, CSPR
cloudsql-require-ssl

sqladmin.googleapis.com/Instance

Enforces the use of SSL/TLS connections for all clients connecting to this Cloud SQL instance. Requiring SSL/TLS encrypts data in transit, protecting against eavesdropping and man-in-the-middle attacks. This is a critical security best practice for any database handling sensitive information. Without SSL/TLS, data is transmitted in plain text.

Severity: High High
CloudSQL, Instance, Security, SSL, CSPR
cloudsql-root-password-not-set

sqladmin.googleapis.com/Instance

Checks if a root password is set for Cloud SQL instances. For security best practices, a strong, unique root password should be set for all Cloud SQL instances. This rule directly checks the `rootPassword` field within the instance configuration. An empty or missing `rootPassword` field indicates a significant security vulnerability, as it means the instance can be accessed without a password or with a default password.

Severity: High High
CloudSQL, Instance, Security, Password, Reliability, CSPR
cloudsql-server-contained-db-auth-enabled

sqladmin.googleapis.com/Instance

Checks if 'contained database authentication' is enabled on Cloud SQL for SQL Server instances. Contained databases allow authentication at the database level, rather than solely at the instance (server) level. While this can simplify database portability, it also introduces potential security risks if not carefully managed. Users authenticated to a contained database may bypass instance-level security controls. It's generally recommended to *disable* contained database authentication unless specifically required and with a thorough understanding of the security implications.

Severity: Medium Medium
CloudSQL, SQL Server, Instance, Security, Authentication, CSPR
cloudsql-server-cross-db-owner-chain

sqladmin.googleapis.com/Instance

Ensures that 'cross db ownership chaining' is disabled (set to 'off') on Cloud SQL for SQL Server instances. Disabling this setting is a crucial security best practice. When enabled, it can allow users in one database to potentially gain unintended access to objects in other databases if ownership chains are not carefully managed. This can lead to privilege escalation vulnerabilities.

Severity: Medium Medium
CloudSQL, Reliability, SQL Server, Instance, Security, Ownership Chaining, CSPR
cloudsql-server-ext-scripts-enabled

sqladmin.googleapis.com/Instance

Checks if the 'external scripts enabled' flag is enabled on Cloud SQL for SQL Server instances. This flag controls the ability to execute external scripts (e.g., R, Python) within the SQL Server environment. While this feature can be useful for advanced analytics and machine learning, enabling it introduces potential security risks if not carefully managed. External scripts can potentially access system resources or execute malicious code. It's generally recommended to *disable* this feature unless specifically required and with appropriate security precautions in place.

Severity: Medium Medium
CloudSQL, SQL Server, Instance, Security, Flags, Security, CSPR
cloudsql-server-remote-access

sqladmin.googleapis.com/Instance

Ensures that the 'remote access' database flag is disabled (set to 'off') on Cloud SQL for SQL Server instances. Disabling this flag prevents SQL Server clients on remote machines from connecting to this instance using the Dedicated Administrator Connection (DAC). While the DAC is a powerful troubleshooting tool, restricting its use to local connections only significantly reduces the attack surface. Misconfigured or compromised remote access can lead to unauthorized database control.

Severity: Medium Medium
CloudSQL, SQL Server, Instance, Security, Access Control, Reliability, CSPR
cloudsql-server-traceflag-3625-enabled

sqladmin.googleapis.com/Instance

Checks if trace flag 3625 is enabled on Cloud SQL for SQL Server instances. Trace flag 3625 limits the amount of information returned to non-sysadmin users in error messages, potentially masking sensitive details about the database structure or configuration. While useful in some security contexts, this trace flag is often *disabled* in development and testing environments to provide more detailed error information for troubleshooting. This rule flags instances where trace flag 3625 is *enabled*. It's important to understand the implications of this flag and whether it aligns with your security and operational needs.

Severity: Medium Medium
CloudSQL, SQL Server, Instance, Security, Reliability, Security, CSPR
cloudsql-server-unlimited-user-conn

sqladmin.googleapis.com/Instance

Checks if the 'user connections' database flag is set to '0' (unlimited) on Cloud SQL for SQL Server instances. Setting 'user connections' to '0' allows an unlimited number of simultaneous user connections, which can lead to resource exhaustion, performance degradation, and potential denial-of-service. It's a best practice to configure a specific, reasonable limit for user connections based on the instance size and expected workload to prevent resource contention and maintain database stability. This rule flags instances where the connections are *unlimited*.

Severity: Medium Medium
CloudSQL, SQL Server, Instance, Connections, Flags, Performance, Reliability, CSPR
cloudsql-server-user-options-set

sqladmin.googleapis.com/Instance

Checks if the 'user options' database flag is configured on Cloud SQL for SQL Server instances. The 'user options' flag specifies server-wide default settings for query processing behavior for all users. It's generally recommended to *avoid* setting global user options and instead allow individual users or applications to configure their own session-level settings as needed. Relying on global user options can lead to unexpected behavior or compatibility issues if different applications require different settings. This rule flags instances where 'user options' is set (i.e., not its default, unconfigured state, typically represented by 0 or an empty string).

Severity: Medium Medium
CloudSQL, SQL Server, Instance, Configuration, Flags, Reliability, CSPR
cloudsql-zonal-instance-failover-replica

sqladmin.googleapis.com/Instance

Checks if a Cloud SQL instance is configured for high availability (HA). This rule focuses on zonal instances (non-regional) and verifies whether a failover replica is available. For zonal instances, having a failover replica is *critical* for resilience. If `failoverReplicaAvailable` is `false` for a zonal instance, it means that the instance is a single point of failure and is vulnerable to outages within that zone. A zonal instance *without* a failover replica does not meet the requirements for high availability. This is considered a *high* severity issue because it directly impacts the reliability and uptime of the database.

Severity: High High
CloudSQL, Instance, Reliability, Availability, HA, Zonal, Failover, CSPR
compute-auto-create-subnet

compute.googleapis.com/Network

Severity: Medium Medium
Network, Security
compute-autonetworks-enabled

compute.googleapis.com/Network

Checks if a Compute Engine VPC network has the 'autoCreateSubnetworks' feature enabled. Auto-mode VPC networks automatically create a subnet in each Google Cloud region, which might not align with desired network segmentation or IP address management strategies. While convenient for setup, custom-mode VPCs offer more granular control. This rule identifies networks where `autoCreateSubnetworks` is explicitly set to `true`. It is often recommended to use custom-mode VPC networks for better control and security posture.

Severity: Low Low
Compute, Network, VPC, AutoMode, Subnets, Networking, Configuration, CSPR
compute-backend-service-logging

compute.googleapis.com/BackendService

Checks if logging is enabled for a Compute Engine Backend Service. Backend service logging records requests processed by the load balancer, providing essential visibility for monitoring traffic, troubleshooting errors, security analysis, and auditing. This rule examines the `logConfig` field within the backend service's configuration. A violation is generated if `logConfig` is missing, or if `logConfig.enable` is missing or if it's set to `false`.

Severity: Medium Medium
Compute, BackendService, Logging, Security, Auditing, Monitoring, LoadBalancing, CSPR
compute-be-bucket-cdn

compute.googleapis.com/BackendBucket

Checks if Cloud CDN is enabled for a Compute Engine backend bucket. Cloud CDN caches content closer to users, improving performance and reducing origin server load. This rule examines the `enableCDN` field within the backend bucket's configuration. If `enableCDN` is `false` or missing, it indicates that Cloud CDN is *not* enabled, and a violation is generated.

Severity: Low Low
Compute, BackendBucket, CDN, Performance, Caching, CSPR
compute-be-bucket-edge-security-policy

compute.googleapis.com/BackendBucket

Checks if an Edge Security Policy is associated with a Compute Engine backend bucket. Edge Security Policies (part of Cloud Armor) provide advanced security features, such as DDoS protection and WAF, for globally distributed applications. For backend buckets serving content through an external load balancer, associating an Edge Security Policy is a security best practice. This rule checks for the presence of the `edgeSecurityPolicy` field within the backend bucket's configuration. If `edgeSecurityPolicy` is missing or null, it indicates that no Edge Security Policy is associated, and a violation is generated.

Severity: High High
Compute, BackendBucket, Security, EdgeSecurityPolicy, CloudArmor, External, CSPR
compute-be-service-cdn

compute.googleapis.com/BackendService

Checks if Cloud CDN is enabled for a Compute Engine backend service. Cloud CDN caches content closer to users, improving performance and reducing origin server load. This rule examines the `enableCDN` field within the backend service's configuration. If `enableCDN` is `false` or missing, it indicates that Cloud CDN is *not* enabled, and a violation is generated.

Severity: Low Low
Compute, BackendService, CDN, Performance, Caching, CSPR
compute-be-service-ext-sec-policy

compute.googleapis.com/BackendService

Checks if an *external* Compute Engine backend service has a security policy configured. For external load balancers, it's crucial to have a Security Policy to protect against threats. This rule checks the following

Severity: High High
Compute, BackendService, Security, LoadBalancing, External, SecurityPolicy, CSPR
compute-be-service-iap-over-http

compute.googleapis.com/BackendService

Checks if a Compute Engine Backend Service has Identity-Aware Proxy (IAP) enabled while using the unencrypted HTTP protocol. Enabling IAP adds authentication and authorization, but if the connection between the load balancer and the backend service uses plain HTTP, the traffic (including potentially sensitive application data or session information) is unencrypted on the internal network. This poses a security risk. This rule checks if `iap.enabled` is true AND `protocol` is 'HTTP'. It is strongly recommended to use HTTPS for backend services when IAP is enabled to ensure end-to-end encryption.

Severity: High High
Compute, BackendService, IAP, Security, Encryption, HTTP, HTTPS, CSPR
compute-be-service-insecure-protocol

compute.googleapis.com/BackendService

Checks if a Compute Engine Backend Service is configured to use the unencrypted HTTP or TCP protocols. Using plain HTTP or TCP for backend connections can expose application traffic, including potentially sensitive data, on the internal network. It is strongly recommended to use secure protocols like HTTPS, SSL, or HTTP/2, or appropriate proxy protocols (such as TCP_PROXY) to ensure data confidentiality and integrity. This rule flags backend services where the `protocol` field is set to 'HTTP' or 'TCP'.

Severity: Medium Medium
Compute, BackendService, Security, Protocol, Encryption, HTTP, TCP, HTTPS, CSPR
compute-be-service-security-policy

compute.googleapis.com/BackendService

Checks if an *external* Compute Engine backend service has a security policy configured. For external load balancers, it's crucial to have either an Edge Security Policy (for global external HTTP(S) load balancers) or a Security Policy (for classic external HTTP(S) load balancers, regional external HTTP(S) load balancers, external TCP proxy load balancers, and external SSL proxy load balancers) to protect against threats. This rule checks the following

Severity: High High
Compute, BackendService, Security, LoadBalancing, External, EdgeSecurityPolicy, SecurityPolicy, CSPR
compute-default-sa-used

compute.googleapis.com/Instance

Detects Compute Engine instances that are using the default Compute Engine service account. The default service account is automatically created and has broad permissions (Editor role) by default, which violates the principle of least privilege. It's a security best practice to create and use *custom* service accounts with the minimum necessary permissions for each instance. Using the default service account increases the risk of unauthorized access and privilege escalation if an instance is compromised.

Severity: Medium Medium
Compute, Security, Service Account, Security, CSPR
compute-disk-csek-disabled

compute.googleapis.com/Disk

Checks if a Compute Engine disk is encrypted using Customer-Supplied Encryption Keys (CSEK). With CSEK, you provide your own encryption key, and Google Cloud uses that key, represented by its SHA256 hash, to protect your data. This rule examines the `diskEncryptionKey` field and, specifically, the `sha256` field *within* it. If `diskEncryptionKey` is missing, or if `sha256` is missing, empty, or null, it signifies that CSEK is *not* in use, triggering a violation.

Severity: Medium Medium
Compute, Disk, Encryption, CSEK, Security, sha256, CSPR
compute-firewall-all-protocols-internet

compute.googleapis.com/Firewall

A firewall rule permitting internet traffic on all protocols significantly broadens the network attack surface, increasing the risk of unauthorized access, potential service disruptions, and costly security incidents.

Severity: Medium Medium
Network, Security
compute-firewall-logging

compute.googleapis.com/Firewall

Checks if logging is enabled for a VPC Firewall rule. Firewall Rules Logging records connections that match the rule, providing valuable insights for security auditing, troubleshooting network connectivity, and understanding traffic patterns. This rule examines the `logConfig` field within the firewall rule's configuration. A violation is generated if `logConfig` is missing, or if `logConfig.enable` is missing or if it's set to `false`.

Severity: Medium Medium
Compute, Firewall, VPC, Logging, Security, Auditing, Network, CSPR
compute-firewall-policy-all-protocols-internet

compute.googleapis.com/FirewallPolicy

This rule identifies overly permissive firewall configurations that allow unrestricted internet ingress on all protocols, helping you reduce your network's attack surface and safeguard against unauthorized access.

Severity: Medium Medium
Network, Security
compute-firewall-policy-logging

compute.googleapis.com/FirewallPolicy

Checks if a Compute Engine Firewall Policy contains any *enabled* rules that do *not* have logging enabled. Firewall logging records connections matching rules, essential for auditing and troubleshooting. This policy iterates through the 'rules' array embedded within the FirewallPolicy resource. A violation is generated if the Firewall Policy contains at least one rule where `disabled` is not true (i.e., the rule is enabled) AND `enableLogging` is not true (i.e., logging is disabled), considering that missing boolean fields often default to false. Rules with the highest priority (typically default rules) are excluded.

Severity: Medium Medium
Compute, FirewallPolicy, Logging, Security, Auditing, Network, CSPR
compute-firewall-policy-public-ingress

compute.googleapis.com/FirewallPolicy

Checks if a Compute Engine Firewall Policy contains any enabled ingress rules allowing traffic from any source IP address (0.0.0.0/0 for IPv4 or

Severity: High High
Compute, FirewallPolicy, Security, Network, PublicAccess, Ingress, CSPR
compute-firewall-policy-unusual-protocol-internet

compute.googleapis.com/FirewallPolicy

Identifies firewall rules exposing unusual internet-facing protocols, enabling proactive attack surface reduction to enhance security and prevent costly system compromises.

Severity: Medium Medium
Network, Security
compute-firewall-policy-unusual-tcp-ports-internet

compute.googleapis.com/FirewallPolicy

Enhances security by identifying firewall rules granting unrestricted public internet access to commonly targeted TCP ports (e.g., 20, 21, 22, 25, 53, 80, 110, 143, 443), enabling proactive attack surface reduction and defense against unauthorized exploitation.

Severity: Medium Medium
Network, Security
compute-firewall-policy-unusual-udp-ports-internet

compute.googleapis.com/FirewallPolicy

Identifies firewall policies that expose typically TCP-associated or other sensitive UDP ports to the internet, enabling you to reduce your attack surface and enhance service reliability by preventing potential misconfigurations or exploits.

Severity: Medium Medium
Network, Security
compute-firewall-publicly-exposed-internet

compute.googleapis.com/Firewall

Detects Compute Engine firewall rules that are publicly exposed. A firewall rule is considered publicly exposed if it allows traffic from any IP address (0.0.0.0/0 for IPv4 or

Severity: High High
Compute, Security, Network, Firewall, CSPR
compute-firewall-unusual-protocols-internet

compute.googleapis.com/Firewall

Reduces your attack surface by identifying active ingress firewall rules that expose uncommon network protocols (not TCP, UDP, or ICMP) to the internet, preventing potential breaches through unmonitored services.

Severity: Medium Medium
Network, Security
compute-firewall-unusual-tcp-ports-internet

compute.googleapis.com/Firewall

Reduce your system's internet attack surface by identifying and reviewing firewall rules that expose a curated list of potentially vulnerable TCP ports [20,21,22,25,53,80,110,143,443,587,989,990,995,1194] to public access.

Severity: Medium Medium
Network, Security
compute-firewall-unusual-udp-ports-internet

compute.googleapis.com/Firewall

This rule enhances your network security by identifying publicly exposed firewall rules allowing unusual UDP ports [20,21,22,25,53,80,110,143,443,587,989,990,995,1194], thereby minimizing your attack surface and preventing potential service exploitation that could impact reliability, performance, or lead to unexpected costs.

Severity: Medium Medium
Network, Security
compute-google-private-access

compute.googleapis.com/Subnetwork

Checks if Private Google Access (PGA) is disabled for a Compute Engine Subnetwork. PGA allows VM instances in the subnet without external IP addresses to reach Google APIs and services using Google's internal network, enhancing security and potentially reducing egress costs. If PGA is disabled, VMs without external IPs cannot access these services directly. This rule examines the `privateIpGoogleAccess` field within the Subnetwork configuration. A violation is generated if `privateIpGoogleAccess` is missing or set to `false`.

Severity: Medium Medium
Compute, Subnet, Subnetwork, VPC, PrivateGoogleAccess, Networking, Security, CSPR
compute-http-load-balancer

compute.googleapis.com/TargetHttpProxy

This rule identifies HTTP load balancers, which transmit unencrypted data, critically exposing sensitive information, eroding customer trust, and often violating compliance mandates, thereby underscoring the necessity of HTTPS for secure, private, and trustworthy communications.

Severity: Medium Medium
Network, Security
compute-image-old-not-deprecated

compute.googleapis.com/Image

Detects Compute Engine images that are older than 90 days and are *not* in a deprecated state. Old, unused images can accumulate, increasing storage costs and potentially posing security risks if they contain outdated software or vulnerabilities. It's a best practice to regularly review and deprecate or delete old images that are no longer needed. This rule flags images older than 90 days that haven't been deprecated, prompting a review of their status and potential removal.

Severity: Medium Medium
Compute, Images, Lifecycle, FinOps, Cost, CSPR
compute-interconnect-attach-encry

compute.googleapis.com/InterconnectAttachment

Checks if a Cloud Interconnect Attachment (VLAN attachment) is configured to use IPsec encryption. IPsec provides end-to-end encryption for traffic traversing the attachment, adding a layer of security often used with Partner Interconnect or as an alternative/addition to MACsec. This rule examines the `encryption` field within the Interconnect Attachment configuration. A violation is generated if the `encryption` field is missing, or if its `type` is not set to 'IPSEC'.

Severity: Medium Medium
Compute, Interconnect, InterconnectAttachment, IPsec, Security, Encryption, Networking, PartnerInterconnect, CSPR
compute-interconnects-macsec

compute.googleapis.com/Interconnect

Checks if MACsec (Media Access Control Security) is enabled for a Cloud Interconnect (Dedicated Interconnect). MACsec provides Layer 2 encryption and integrity protection for traffic traversing the physical connection, enhancing security. This rule examines the `macsecEnabled` field within the Interconnect configuration. A violation is generated if the `macsecEnabled` field is missing or set to `false`. Enabling MACsec is a best practice for securing sensitive traffic over Dedicated Cloud Interconnect. Note

Severity: High High
Compute, Interconnect, MACsec, Security, Encryption, Networking, DedicatedInterconnect, CSPR
compute-missing-labels

compute.googleapis.com/Instance

Ensures Compute Engine instances have labels applied for better resource organization, cost allocation, and filtering capabilities.

Severity: Low Low
Compute, VM, Instance, Labels, Organization, Management, FinOps, CSPR
compute-missing-resource-tags

compute.googleapis.com/Instance

Ensures Compute Engine instances have Resource Manager tags applied via the 'params.resourceManagerTags' field for consistent governance, policy enforcement, and cost analysis.

Severity: Medium Medium
Compute, VM, Tags, FinOps, Organization, CSPR
compute-missing-tags

compute.googleapis.com/Instance

Ensures Compute Engine instances have network tags applied for effective firewall rule targeting and network segmentation.

Severity: Medium Medium
Compute, Network, Firewall, Tags, FinOps, CSPR
compute-nat-log-disabled

compute.googleapis.com/Router

Enabling Cloud NAT logging provides critical telemetry for rapid troubleshooting and security analysis, enhancing network reliability and operational visibility.

Severity: Medium Medium
Network, Logging, Security
compute-nat-log-errors-only

compute.googleapis.com/Router

Enable comprehensive Cloud NAT logging for both translations and errors to significantly improve troubleshooting capabilities and operational visibility, as error-only logging limits crucial diagnostic insights for network reliability and security analysis.

Severity: Medium Medium
Network, Logging, Security
compute-nat-router-logging

compute.googleapis.com/Router

Checks if logging is disabled for Cloud NAT configurations on a Compute Engine Router. Cloud NAT logging provides visibility into NAT translations and errors, crucial for monitoring, troubleshooting, and security analysis. This rule iterates through all NAT configurations (`nats` array) associated with a router. If *any* NAT configuration is found where the `logConfig.enable` field is missing or set to `false`, a violation is generated for the router.

Severity: Medium Medium
Compute, Router, NAT, Logging, Monitoring, Security, Networking, CSPR
compute-network-auto-create-subnet

compute.googleapis.com/Network

Severity: Medium Medium
Network, Security
compute-network-default

compute.googleapis.com/Network

Checks for the existence of the default Compute Engine network. The 'default' network is automatically created in new projects (unless disabled) and comes with permissive firewall rules (e.g., allow-internal, allow-rdp, allow-ssh from anywhere). While convenient for initial setup, using the default network for production workloads is discouraged due to its flat structure and overly broad default permissions. It's recommended to create custom VPC networks with more restrictive, purpose-built firewall rules. This rule identifies networks named 'default'.

Severity: Medium Medium
Compute, Network, VPC, Default, Security, Networking, CSPR
compute-snapshot-long-retention-keep-snapshots

compute.googleapis.com/ResourcePolicy

Detects Compute Engine snapshot schedules (within resource policies) that have both a retention period exceeding 365 days *and* are configured to keep automatic snapshots even after the source disk is deleted ('onSourceDiskDelete' set to 'KEEP_AUTO_SNAPSHOTS'). While long retention periods and keeping snapshots after source disk deletion might be valid in specific scenarios, this combination can lead to significant storage costs and potentially retain data longer than necessary. This rule flags such configurations for review to ensure that they align with data retention policies and cost optimization goals.

Severity: Medium Medium
Compute, Snapshots, Resource Policies, DataRetention, Reliability, FinOps, CSPR
compute-snapshot-no-guest-flush

compute.googleapis.com/ResourcePolicy

Detects Compute Engine snapshot schedules (within resource policies) that do *not* have application-consistent snapshots enabled (i.e., 'guestFlush' is not set to 'true'). Application-consistent snapshots ensure that the data on the disk is in a consistent state at the time of the snapshot, which is crucial for reliable backups and recovery, especially for applications like databases. Without 'guestFlush', the snapshot might capture data in an inconsistent state, potentially leading to data corruption or unrecoverable backups. This rule flags snapshot schedules lacking application consistency.

Severity: Medium Medium
Compute, Snapshots, Resource Policies, Backup, Reliability, CSPR
compute-snapshot-older-than-365d

compute.googleapis.com/Snapshot

Detects Compute Engine snapshots that are older than 365 days. Old snapshots can consume significant storage space and increase costs. While some snapshots may need to be retained for long periods, it's a best practice to regularly review and delete snapshots that are no longer needed. This rule flags snapshots older than 365 days for review, allowing you to determine if they can be safely deleted or archived.

Severity: Medium Medium
Compute, Snapshots, Lifecycle, Reliability, FinOps, CSPR
compute-ssl-load-balancer

compute.googleapis.com/TargetSslProxy

Ensures that application traffic is served by modern HTTPS Load Balancers instead of legacy SSL Proxy Load Balancers. When an HTTPS Load Balancer is used, it provides layer 7 traffic management, including features like URL maps, integration with Google-managed certificates, and advanced security controls. This is valuable for enhancing security with features like SSL Policies and Cloud Armor integration, improving traffic management with content-based routing, and simplifying certificate lifecycle management. This is particularly helpful for standard web applications that can benefit from application-aware security and routing rules. However, the SSL Proxy Load Balancer may still be required for specific non-HTTP workloads that use SSL for transport layer encryption.

Severity: Medium Medium
Network, Security
compute-subnet-flowlogs

compute.googleapis.com/Subnetwork

Checks if VPC Flow Logs are enabled for a Compute Engine Subnetwork. VPC Flow Logs record a sample of network flows sent from and received by VM instances in the subnet. This provides crucial visibility for network monitoring, forensics, security analysis, and real-time troubleshooting. This rule examines the `enableFlowLogs` field within the Subnetwork configuration. A violation is generated if `enableFlowLogs` is missing or set to `false`.

Severity: Medium Medium
Compute, Subnet, VPC, FlowLogs, Networking, Security, CSPR
compute-targethttpsproxy-ssl

compute.googleapis.com/TargetHttpsProxy

Checks if a Compute Engine TargetHttpsProxy resource has an SSL Policy defined. SSL Policies control the set of TLS features (such as TLS versions and cipher suites) that the proxy negotiates with clients. Associating a specific SSL Policy allows for enforcing stricter security standards than the default. This rule examines the `sslPolicy` field within the TargetHttpsProxy configuration. If `sslPolicy` is missing or null/empty, it indicates that no specific SSL Policy is assigned, and a violation is generated. Relying on default SSL settings might not meet specific security or compliance requirements.

Severity: Medium Medium
Compute, TargetHttpsProxy, SSL, TLS, Security, Policy, Encryption, LoadBalancing, CSPR
compute-tcp-load-balancer

compute.googleapis.com/TargetSslProxy

Validates SSL Proxy Load Balancer usage, guiding towards HTTPS Load Balancers for web traffic to enhance security, performance, and operational efficiency.

Severity: Medium Medium
Network, Security
compute-unused-publicip-address

compute.googleapis.com/Address

Checks for Compute Engine external IP addresses that are reserved but not currently in use by any resource. Reserved but unused public IP addresses incur costs and may indicate orphaned resources or configuration oversights. This rule identifies addresses where the `addressType` is 'EXTERNAL' and the `status` is 'RESERVED'. It is recommended to either assign unused addresses to a resource or release them to avoid unnecessary charges.

Severity: Medium Medium
Compute, Address, IP, PublicIP, CostOptimization, Unused, Networking, CSPR
compute-vm-confidential-compute-disabled

compute.googleapis.com/Instance

Checks if Confidential Computing is enabled for Compute Engine VM instances. Confidential Computing uses hardware-based encryption to protect data in use, even from the cloud provider. This provides a higher level of security and privacy for sensitive workloads. This rule flags instances where Confidential Computing is *not* enabled. Enabling Confidential Computing may be a requirement for compliance or to meet specific security needs.

Severity: Medium Medium
Compute, Security, Confidential Computing, CSPR
compute-vm-deletion-protection-disabled

compute.googleapis.com/Instance

Checks if deletion protection is enabled for Compute Engine VM instances. Deletion protection prevents accidental deletion of critical VMs. When enabled, any attempt to delete the instance through the API, CLI, or console will fail unless deletion protection is first explicitly disabled. This provides an important safeguard against human error or malicious actions. This rule flags instances *without* deletion protection enabled.

Severity: Medium Medium
Compute, Security, Deletion Protection, Security, Reliability, CSPR
compute-vm-disk-unencrypted

compute.googleapis.com/Instance

Checks if all disks attached to a Compute Engine VM instance are encrypted using a Customer-Managed Encryption Key (CMEK). Encrypting disks protects data at rest, preventing unauthorized access to the data if the physical storage is compromised. Using CMEKs gives you control over the encryption keys, including key rotation and access management. This rule flags instances where *any* attached disk is *not* encrypted with a CMEK.

Severity: High High
Compute, Security, Encryption, CSPR
compute-vm-ip-forwarding-enabled

compute.googleapis.com/Instance

Checks if IP forwarding is enabled for Compute Engine VM instances. Enabling IP forwarding allows a VM to route traffic between different networks, effectively acting as a router. While this capability is necessary for some use cases (e.g., NAT gateways, VPN servers), it should only be enabled when explicitly required. Enabling IP forwarding on instances that don't need it increases the attack surface and can potentially be exploited to bypass network security controls. This rule flags instances *with* IP forwarding enabled.

Severity: Medium Medium
Compute, Security, Networking, CSPR
compute-vm-oslogin-2fa-disabled

compute.googleapis.com/Instance

Checks if OS Login is enabled for Compute Engine VM instances *without* enabling two-factor authentication (2FA). While OS Login itself enhances security by using IAM for access control, requiring 2FA adds a crucial extra layer of protection against compromised credentials. Without 2FA, an attacker who obtains a user's password could gain access to the VM. This rule flags instances where OS Login is enabled, but 2FA is *not* enabled.

Severity: Medium Medium
Compute, Security, OSLogin, 2FA, CSPR
compute-vm-oslogin-disabled

compute.googleapis.com/Instance

Checks if OS Login is enabled for Compute Engine VM instances. OS Login provides centralized and granular access control to VMs using IAM roles, rather than relying on individual SSH keys managed at the instance or project level. OS Login improves security, simplifies key management, and enhances auditability. This rule flags instances where OS Login is *not* enabled.

Severity: Medium Medium
Compute, Security, OSLogin, CSPR
compute-vm-project-ssh-keys-allowed

compute.googleapis.com/Instance

Checks if a Compute Engine VM instance allows the use of project-wide SSH keys. Project-wide SSH keys can be added to a project's metadata and automatically grant access to all instances within that project *unless* explicitly blocked or OS Login is enabled. Relying solely on project-wide SSH keys violates the principle of least privilege and increases the risk of unauthorized access if a key is compromised. It's generally recommended to either use OS Login (which provides more granular control) or explicitly block project-wide SSH keys and use instance-specific keys instead. This rule flags instances that *do not* block project-wide SSH keys *and* do *not* have OS Login enabled.

Severity: Medium Medium
Compute, Security, SSH, Security, Reliability, CSPR
compute-vm-serial-port-enabled

compute.googleapis.com/Instance

Checks if serial port access is enabled for Compute Engine VM instances. The serial port provides a text-based console for interacting with the VM, primarily for debugging and troubleshooting. While useful in specific situations, enabling the serial port increases the attack surface, as it can potentially be used to gain unauthorized access if not properly secured. It is generally recommended to *disable* serial port access unless explicitly needed and with appropriate security measures (e.g., strong authentication, firewall rules). This rule flags instances *with* serial port access enabled.

Severity: Medium Medium
Compute, Security, Compute Engine, Serial Port, CSPR
compute-vm-shielded-vm-incomplete

compute.googleapis.com/Instance

Checks if all Shielded VM features (Integrity Monitoring, vTPM, and Secure Boot) are enabled for Compute Engine VM instances. Shielded VM provides verifiable integrity of your VM instances, helping to protect against advanced threats like rootkits and bootkits. Integrity Monitoring allows you to monitor the boot integrity of your instances. vTPM provides a virtualized Trusted Platform Module. Secure Boot helps ensure that the system only runs authentic software. This rule flags instances where *any* of these features are *not* enabled.

Severity: High High
Compute, Security, Shielded VM, CSPR
compute-vpntunnel-ike-version

compute.googleapis.com/VpnTunnel

Checks if a Compute Engine VPN Tunnel is configured to use the IKEv1 protocol. IKEv1 (Internet Key Exchange version 1) is an older VPN protocol with known security weaknesses compared to the more modern IKEv2. Using IKEv1 increases the risk of security vulnerabilities. This rule examines the `ikeVersion` field within the VPN Tunnel configuration. A violation is generated if `ikeVersion` is set to 1. It is strongly recommended to use IKEv2 (version 2) for enhanced security and reliability.

Severity: High High
Compute, VpnTunnel, VPN, IKEv1, IKEv2, Security, Encryption, Networking, CSPR
dns-policy-logging

dns.googleapis.com/Policy

Checks if logging is enabled for a Cloud DNS Policy. DNS policies define rules for DNS resolution behavior, often used for outbound forwarding or private DNS lookups. Enabling logging records the queries processed by the policy, which is essential for security auditing and troubleshooting DNS resolution issues within your VPC networks. This rule examines the `enableLogging` field within the DNS Policy configuration. A violation is generated if `enableLogging` is missing or if it's `false`.

Severity: Medium Medium
DNS, Policy, Logging, Security, Auditing, VPC, CSPR
dns-zone-public-dnssec

dns.googleapis.com/ManagedZone

Checks if DNSSEC (Domain Name System Security Extensions) is enabled for a *public* managed zone in Cloud DNS. DNSSEC adds a layer of security by digitally signing DNS records, preventing DNS spoofing and cache poisoning attacks. This rule examines the `dnssecConfig` field within the managed zone's configuration. If `dnssecConfig` is missing, or if its `state` is 'off' or missing, it indicates that DNSSEC is *not* enabled. A violation is generated if DNSSEC is not enabled for public zones. This rule filters to affect *only* managed zones where `visibility` is set to 'public'.

Severity: High High
DNS, DNSSEC, Security, ManagedZone, Public, CSPR
dns-zone-public-logging

dns.googleapis.com/ManagedZone

Checks if logging is enabled for a *public* Cloud DNS managed zone. Enabling DNS logging records the queries received by the zone's name servers, which is essential for security auditing, troubleshooting, and compliance. This rule examines the `loggingConfig` field within the managed zone's configuration. A violation is generated if the zone's `visibility` is 'public' *and* either `loggingConfig` is missing, or `loggingConfig.enableLogging` is missing or `false`.

Severity: Medium Medium
DNS, ManagedZone, Logging, Security, Auditing, Public, CSPR
filestore-instance-missing-labels

file.googleapis.com/Instance

Ensures Filestore instances have labels applied for resource organization, filtering, and potentially aiding in cost allocation analysis.

Severity: Low Low
Filestore, Instance, Labels, FinOps, CSPR
filestore-instance-missing-resource-tags

file.googleapis.com/Instance

Ensures Filestore instances have Resource Manager tags applied for consistent governance, policy enforcement, and cost analysis across cloud resources.

Severity: Low Low
Filestore, Instance, Tags, FinOps, CSPR
gce-images-publicly-exposed

cloudresourcemanager.googleapis.com/Project

Prevents unauthorized access and potential data exfiltration by detecting if a project's IAM policy grants public access (`allUsers` or `allAuthenticatedUsers`), which would expose all contained Compute Engine images.

Severity: High High
IAM, GCE, image, Security, CSPR
gce-instance-deletion-protection

compute_Instance_RESOURCE_4

Enhances operational stability by verifying that critical, standalone Compute Engine instances have the `deletionProtection` flag enabled to prevent accidental deletion and ensure service continuity.

Severity: Low Low
Reliability, Compute, MIG, Governance, CSPR
gke-cluster-auto-repair-enabled

container.googleapis.com/Cluster

Improves cluster resilience and reduces operational overhead by verifying GKE Standard node pools have auto-repair enabled, ensuring automatic recovery from node failures to maintain application availability.

Severity: Medium Medium
Reliability, GKE, Governance, CSPR
gke-cluster-auto-upgrade-enabled

container.googleapis.com/Cluster

Strengthens cluster security and reduces maintenance overhead by verifying GKE Standard node pools have auto-upgrade enabled, ensuring they receive timely security patches and stability fixes.

Severity: Medium Medium
GKE, Auto Upgrade, Security, Reliability, CSPR
gke-cluster-pga-enabled

container_Cluster_RESOURCE_2

Enhances security by verifying Private Google Access is enabled on the cluster's subnetwork, allowing private GKE nodes to pull images and access Google APIs without requiring public IP addresses.

Severity: Medium Medium
GKE, Private Google Access, subnetwork, security, CSPR
gke-cluster-using-cos-images

container.googleapis.com/Cluster

Enhances cluster security and stability by verifying all GKE node pools use Google's Container-Optimized OS (COS), a purpose-built, hardened operating system.

Severity: Medium Medium
GKE, COS, Security, CSPR
gke-default-sa-admin

container_Cluster_RESOURCE_IAM_POLICY_1

Mitigates a critical container-to-project privilege escalation risk by ensuring GKE node pools do not use the default service account when it has project-level Admin permissions, preventing a compromised pod from gaining control over all project resources.

Severity: High High
GKE, Default Service Account, Admin, Security, CSPR
gke-default-sa-editor

container_Cluster_RESOURCE_IAM_POLICY_1

Enforce least privilege on GKE nodes by disallowing default service accounts with editor roles, critically reducing security vulnerabilities to protect workloads and enhance cluster reliability.

Severity: High High
GKE, Default Service Account, Editor, Security, CSPR
gke-default-sa-owner

container_Cluster_RESOURCE_IAM_POLICY_1

Ensures GKE nodes do not use the default Compute Engine service account with the highly privileged Owner role, enforcing least privilege to significantly reduce security risks and the potential impact of a node compromise.

Severity: High High
GKE, Default Service Account, Owner, Security, CSPR
gke-default-sa-writer

container_Cluster_RESOURCE_IAM_POLICY_1

Enhance GKE security by ensuring default service accounts do not possess broad 'writer' permissions, significantly reducing the risk of unauthorized cluster modifications and upholding the principle of least privilege.

Severity: High High
GKE, Default Service Account, Writer, Security, CSPR
gke-default-sa

container_Cluster_RESOURCE_IAM_POLICY_1

Verify GKE node pools use dedicated, minimally-permissioned service accounts instead of the default Compute Engine service account to enhance cluster security posture by strictly adhering to the principle of least privilege.

Severity: High High
GKE, Default Service Account, Security, CSPR
gke-only-one-cluster-per-project

cloudresourcemanager_Project_RESOURCE_1

Severity: Medium Medium
GKE, Project, Security, CSPR
iam-basic-group-on-folder

cloudresourcemanager.googleapis.com/Folder

This rule identifies groups assigned overly broad basic roles (e.g., Owner, Editor) at the folder level, enabling customers to enforce the principle of least privilege, which significantly reduces security risks from excessive permissions and simplifies access governance.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-basic-group-on-organization

cloudresourcemanager.googleapis.com/Organization

This rule identifies groups that are assigned the highly permissive basic roles (such as Owner or Editor) at the organization level. It's a critical check to prevent widespread security vulnerabilities and ensures adherence to the principle of least privilege across all your cloud resources.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-basic-group-on-project

cloudresourcemanager.googleapis.com/Project

Reduce security risks and prevent unintended project alterations by identifying groups with overly broad basic roles (such as Owner or Editor), thereby enforcing least privilege for enhanced operational stability.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-basic-sa-on-folder

cloudresourcemanager.googleapis.com/Folder

Identifies service accounts granted overly permissive basic roles (such as Owner or Editor) at the folder level, crucial for enforcing the principle of least privilege to bolster security, maintain operational reliability, and control costs.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-basic-sa-on-organization

cloudresourcemanager.googleapis.com/Organization

Ensure service accounts at the organization level do not possess broad basic roles, a critical step to uphold the principle of least privilege, prevent widespread security breaches, and maintain operational reliability.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-basic-sa-on-project

cloudresourcemanager.googleapis.com/Project

This rule identifies service accounts that are granted overly permissive basic roles (such as Owner or Editor) at the project level. This rule enables proactive enforcement of the principle of least privilege to significantly reduce security risks and limit the potential impact of compromised credentials.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-basic-user-on-folder

cloudresourcemanager.googleapis.com/Folder

Identifying users with overly permissive basic roles (e.g., Owner, Editor) at the folder level is crucial for enforcing least privilege, which directly enhances your security posture, improves operational stability by preventing unintended changes.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-basic-user-on-organization

cloudresourcemanager.googleapis.com/Organization

Identifying individual users with broad basic roles at the organization level is critical to mitigate risks of widespread unauthorized access or accidental changes, safeguarding your cloud environment's security, reliability, and cost-efficiency.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-basic-user-on-project

cloudresourcemanager.googleapis.com/Project

Flagging direct assignment of broad basic roles to individual users at the project level enhances security and simplifies access management by encouraging adherence to the principle of least privilege via group-based permissions.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-billing-admin-principals-on-billing

cloudbilling.googleapis.com/BillingAccount

This rule enhances financial security by identifying principals with broad billing administrator privileges at the billing account level, and helps you prevent unauthorized spending and ensure robust cost governance.

Severity: High High
IAM, billing account, admin, Security, CSPR
iam-billing-admin-principals-on-organization

cloudresourcemanager.googleapis.com/Organization

Strengthen financial governance and security by identifying principals with direct organization-level billing administrator privileges, crucial for preventing unauthorized widespread billing modifications and enforcing the principle of least privilege.

Severity: High High
IAM, billing account, admin, Security, CSPR
iam-billing-admin-user-on-billing

cloudbilling.googleapis.com/BillingAccount

Detecting individual users with direct Billing Account Administrator privileges is crucial for mitigating financial risks and preventing service disruptions by enforcing the principle of least privilege.

Severity: High High
IAM, billing account, admin, Security, CSPR
iam-billing-admin-user-on-organization

cloudresourcemanager.googleapis.com/Organization

Enhance security, reliability, and cost control by restricting broad billing administrator permissions for individual user accounts at the organization level, thereby minimizing risks of unauthorized changes, service disruptions, and financial impact.

Severity: High High
IAM, billing account, admin, Security, CSPR
iam-billing-costs-manager-principals-on-billing

cloudbilling.googleapis.com/BillingAccount

Ensures only authorized individuals can view and export billing account cost data, safeguarding sensitive financial information and supporting stringent cost governance.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-costs-manager-principals-on-org

cloudresourcemanager.googleapis.com/Organization

Identifies principals with organization-level billing cost manager roles, helping you enforce the principle of least privilege to safeguard sensitive, comprehensive billing data and maintain appropriate cost visibility controls.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-costs-manager-user-on-billing

cloudbilling.googleapis.com/BillingAccount

Ensure robust cost governance by restricting the 'Billing Costs Manager' role for individual users at the billing account level, preventing potential budget misconfigurations and maintaining clear accountability for financial operations.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-costs-manager-user-on-organization

cloudresourcemanager.googleapis.com/Organization

Enhances financial security and cost control by identifying individual user accounts with organization-wide billing cost management permissions, thereby promoting least privilege and reducing risk.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-creator-domains-on-organization

cloudresourcemanager.googleapis.com/Organization

Detects domains assigned the 'Billing Account Creator' role at the organization level, a crucial check to prevent unauthorized billing account proliferation and maintain robust financial oversight.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-creator-principals-on-organization

cloudresourcemanager.googleapis.com/Organization

This rule identifies principals with organization-level billing creator privileges, crucial for preventing uncontrolled cloud spending and ensuring stringent financial governance over new billing account creation.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-creator-user-on-organization

cloudresourcemanager.googleapis.com/Organization

This rule identifies users with organization-level billing creation rights to prevent uncontrolled cloud spending and enforce critical financial governance.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-user-principals-on-billing

cloudbilling.googleapis.com/BillingAccount

Preventing the assignment of the 'Billing Account User' role to the overly broad `principal

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-user-principals-on-organization

cloudresourcemanager.googleapis.com/Organization

Ensures least privilege by identifying principals with the 'Billing Account User' role at the organization level, crucial for safeguarding sensitive financial data and strengthening cost governance.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-user-user-on-billing

cloudbilling.googleapis.com/BillingAccount

Identifies individual user accounts directly assigned billing user roles, promoting group-based permissions for enhanced security, simplified administration, and robust cost control.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-user-user-on-organization

cloudresourcemanager.googleapis.com/Organization

This rule enhances security by identifying `roles/billing.user` assignments at the organization level, which prevents overly broad access to sensitive financial data and enforces the principle of least privilege.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-viewer-principals-on-billing

cloudbilling.googleapis.com/BillingAccount

This rule enhances security by identifying principals with direct billing account viewer roles, ensuring adherence to least privilege to prevent unintended broad access to sensitive billing information.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-viewer-principals-on-organization

cloudresourcemanager.googleapis.com/Organization

Secure sensitive financial data and enforce least privilege by identifying principals with organization-level billing viewer access, thereby minimizing risks of unauthorized information exposure.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-viewer-user-on-billing

cloudbilling.googleapis.com/BillingAccount

Pinpoints users directly assigned billing viewer roles at the billing account level, enabling enforcement of least privilege to safeguard sensitive financial data and prevent unauthorized cost exposure.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-billing-viewer-user-on-organization

cloudresourcemanager.googleapis.com/Organization

This rule enhances financial data security by identifying individual users with organization-wide Billing Viewer access, crucial for enforcing least privilege and minimizing sensitive cost exposure.

Severity: High High
IAM, billing account, owner, organization, Security, CSPR
iam-group-can-create-project-at-folder-level

cloudresourcemanager.googleapis.com/Folder

Detects if groups possess project creator roles at the folder level, enabling proactive governance to prevent resource sprawl, enforce security baselines, and control costs.

Severity: Medium Medium
IAM, project creator, folder, Security, CSPR
iam-group-can-create-project-at-org-level

cloudresourcemanager.googleapis.com/Organization

This rule identifies groups with organization-wide project creation capabilities, helping you prevent uncontrolled project sprawl and associated costs while strengthening security and governance over resource provisioning.

Severity: Medium Medium
IAM, project creator, organization, Security, CSPR
iam-org-admin

cloudresourcemanager.googleapis.com/Organization

Identifying highly privileged Organization Administrator assignments enables you to secure your entire cloud environment by strictly controlling ultimate access, thereby preventing widespread security vulnerabilities and operational disruptions.

Severity: High High
IAM, billing account, admin, Security, CSPR
iam-owner-group-on-folder

cloudresourcemanager.googleapis.com/Folder

This rule flags groups holding Owner permissions on folders, a critical check to prevent widespread security vulnerabilities and accidental operational disruptions by enforcing tighter access control.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-owner-group-on-organization

cloudresourcemanager.googleapis.com/Organization

Identifies groups with organization-level 'owner' permissions, crucial for preventing catastrophic security breaches and operational failures stemming from indirect, hard-to-audit privilege escalations through group membership changes.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-owner-group-on-project

cloudresourcemanager.googleapis.com/Project

This rule identifies Google Groups assigned the powerful 'owner' role at the project level, which is crucial for mitigating security vulnerabilities from excessive permissions, preventing operational disruptions, and controlling unintended cloud expenditures.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-owner-sa-on-folder

cloudresourcemanager.googleapis.com/Folder

This rule critically enhances security by identifying service accounts with highly permissive 'Owner' roles at the folder level, essential for mitigating risks from excessive privileges and enforcing the principle of least privilege for robust resource control.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-owner-sa-on-organization

cloudresourcemanager.googleapis.com/Organization

Safeguard your organization against critical security threats by detecting service accounts with excessive owner privileges at the organization level, preventing widespread unauthorized control and manipulation of all cloud resources.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-owner-sa-on-project

cloudresourcemanager.googleapis.com/Project

This rule identifies service accounts with project-level owner roles, a critical security risk. This rule help enforce the principle of least privilege, which is crucial for enhancing security, ensuring operational reliability, and preventing uncontrolled cloud spend.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-owner-user-on-folder

cloudresourcemanager.googleapis.com/Folder

This check identifies user-assigned Owner roles at the folder level, enabling proactive mitigation of security risks from excessive permissions and prevention of unintended, potentially costly or disruptive, resource modifications.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-owner-user-on-organization

cloudresourcemanager.googleapis.com/Organization

Detects users assigned the organization-level 'owner' role, a critical check to prevent broad, unintended changes that could compromise security, disrupt service reliability, impair performance, and lead to uncontrolled costs.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-owner-user-on-project

cloudresourcemanager.googleapis.com/Project

Prevents unintended costs by identifying users assigned the 'owner' role, thereby mitigating risks from excessive privileges.

Severity: High High
IAM, owner, organization, Security, CSPR
iam-sa-group-token-creator-on-folder

cloudresourcemanager.googleapis.com/Folder

Strengthen security by preventing broad, group-based impersonation of service accounts at the folder level, thus reducing the risk of privilege escalation and unauthorized resource access.

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-group-token-creator-on-organization

cloudresourcemanager.googleapis.com/Organization

This rule identifies groups that are assigned organization-level Service Account User or Token Creator roles, and helps you mitigate critical security risks such as privilege escalation and broad resource compromise by enforcing least privilege principles.

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-group-token-creator-on-project

cloudresourcemanager.googleapis.com/Project

Enhances project security by identifying groups with Service Account User or Token Creator roles, enabling proactive risk mitigation from overly broad impersonation capabilities and simplifying access audit trails.

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-principal-token-creator-on-folder

cloudresourcemanager.googleapis.com/Folder

Check to detect service account user and token creator on principals at folder level

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-principal-token-creator-on-organization

cloudresourcemanager.googleapis.com/Organization

This rule identifies principals with organization-level service account user or token creator roles, enabling proactive enforcement of least privilege to prevent widespread system compromise and significantly reduce security risk.

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-principal-token-creator-on-project

cloudresourcemanager.googleapis.com/Project

This rule detects principals with project-level Service Account User or Token Creator roles, which grant sweeping and high-risk impersonation capabilities over *any* service account. This role detection helps you enforce the principle of least privilege and drastically reduce the security risks.

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-principalset-token-creator-on-folder

cloudresourcemanager.googleapis.com/Folder

Identifies `principalSet` assignments with Service Account User or Token Creator roles at the folder level, preventing excessive service account impersonation privileges to enhance security and enforce least privilege.

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-principalset-token-creator-on-organization

cloudresourcemanager.googleapis.com/Organization

Reduces organizational risk by identifying `principalSet`s with overly broad service account impersonation or token creation privileges at the organization level, preventing potential widespread security breaches and unauthorized resource access.

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-principalset-token-creator-on-project

cloudresourcemanager.googleapis.com/Project

Restricting service account user/token creator roles for broad principalSets (such as groups or domains) at the project level mitigates widespread privilege escalation risks and unauthorized impersonation, enhancing overall project security posture.

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-user-token-creator-on-folder

cloudresourcemanager.googleapis.com/Folder

Check to detect service account user and token creator on users at folder level

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-user-token-creator-on-organization

cloudresourcemanager.googleapis.com/Organization

Check to detect service account user and token creator on users at organization level

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-sa-user-token-creator-on-project

cloudresourcemanager.googleapis.com/Project

This rule identifies users with extensive project-level service account impersonation or token creation privileges, and helps preemptively neutralize major security vulnerabilities, such as privilege escalation via compromised accounts, thereby protecting vital assets and curtailing potential financial losses from breaches.

Severity: Medium Medium
IAM, service account, Security, CSPR
iam-secret-reader-folder

cloudresourcemanager.googleapis.com/Folder

Strengthen data protection and helps you enforce the principle of least privilege by identifying and rectifying overly broad folder-level permissions that grant widespread access to secrets, minimizing the risk of unauthorized exposure.

Severity: High High
IAM, secret, Security, CSPR
iam-secret-reader-organization

cloudresourcemanager.googleapis.com/Organization

This rule identifies organization-level IAM roles granting broad secret access (such as Owner, Secret Manager Admin/Accessor), crucial for enforcing the principle of least privilege and minimizing the risk of widespread sensitive data exposure.

Severity: High High
IAM, secret, Security, CSPR
iam-secret-reader-project

cloudresourcemanager.googleapis.com/Project

This rule identifies project-level IAM bindings granting overly permissive roles (such as 'roles/owner', 'roles/secretmanager.admin', or 'roles/secretmanager.secretAccessor') with broad access to all secrets. This rule helps you enforce the principle of least privilege, thereby safeguarding sensitive data and reducing the risk of costly security incidents.

Severity: High High
IAM, secret, Security, CSPR
iam-service-account-key-expiration-longer-90-days

iam.googleapis.com/ServiceAccountKey

Enforcing a 90-day rotation for user-managed service account keys significantly reduces the risk of prolonged unauthorized access from compromised credentials, safeguarding your critical services and preventing costly security incidents.

Severity: Medium Medium
IAM, service account key, Security, CSPR
iam-service-account-key-older-90-days

iam.googleapis.com/ServiceAccountKey

Identifying active user-managed service account keys older than 90 days enables proactive rotation, significantly reducing the attack surface and minimizing risks of unauthorized access or credential compromise.

Severity: Medium Medium
IAM, service account key, Security, CSPR
iam-service-account-key-user-managed

iam.googleapis.com/ServiceAccountKey

User-managed service account keys lack automatic rotation, increasing security vulnerabilities and operational burden; migrating to Google-managed keys enhances security and simplifies key management.

Severity: Medium Medium
IAM, service account key, Security, CSPR
iam-service-account-no-expiration-date

iam.googleapis.com/ServiceAccountKey

Define expiration dates for user-managed service account keys to limit their active lifespan, which is crucial for minimizing security risks and protecting your resources from unauthorized access if a key is compromised.

Severity: Medium Medium
IAM, service account key, Security, CSPR
iam-service-account-user-admin-folder

cloudresourcemanager.googleapis.com/Folder

This rule enhances security by detecting principals on a folder who can both use and fully manage service accounts, a critical over-permissioning that, if compromised, dramatically increases the risk of widespread unauthorized access and resource manipulation.

Severity: High High
IAM, service account, admin, Security, CSPR
iam-service-account-user-admin-organization

cloudresourcemanager.googleapis.com/Organization

This rule identifies principals possessing both Service Account User and Admin roles at the organization level, a critical check to prevent significant privilege escalation and enforce least privilege, thereby safeguarding your resources and maintaining operational reliability.

Severity: High High
IAM, service account, admin, Security, CSPR
iam-service-account-user-admin-project

cloudresourcemanager.googleapis.com/Project

Identifies principals with redundant Service Account User and Admin roles on a project to help you enforce the principle of least privilege, simplifying IAM and bolstering security.

Severity: High High
IAM, service account, admin, Security, CSPR
iam-service-account-user-admin

iam.googleapis.com/ServiceAccount

This rule identifies principals holding both Service Account User and Admin roles at the organization level, a critical check for enforcing least privilege to reduce the attack surface and minimize risks from excessive permissions.

Severity: High High
IAM, service account, admin, Security, CSPR
iam-service-account-with-user-managed-key

iam_ServiceAccount_RESOURCE_1

This rule identifies service accounts employing user-managed keys, which necessitate manual rotation and pose a heightened security risk. This rule helps you strengthen the security posture by transitioning to Google-managed keys or implementing rigorous key lifecycle controls.

Severity: Medium Medium
IAM, service account key, Security, CSPR
iam-user-can-create-project-at-folder-level

cloudresourcemanager.googleapis.com/Folder

This rule identifies users with direct project creation privileges at the folder level, critical for preventing uncontrolled resource sprawl to safeguard budgets, enforce security policies, and maintain operational stability.

Severity: Medium Medium
IAM, project creator, folder, Security, CSPR
iam-user-can-create-project-at-org-level

cloudresourcemanager.googleapis.com/Organization

Validating that project creation rights are not granted to users directly at the organization level helps enforce least privilege, preventing uncontrolled resource sprawl to improve cost management, security, and overall governance.

Severity: Medium Medium
IAM, project creator, folder, Security, CSPR
k8s-automatic-container-scanning-enabled

cloudresourcemanager_Project_RESOURCE_2

Enable automated container scanning to proactively detect vulnerabilities, thereby bolstering application security, enhancing operational reliability, maintaining performance integrity, and mitigating costly breach risks.

Severity: High High
Project, Container, Auto Scanning, Security, CSPR
k8s-on-demand-container-scanning-enabled

cloudresourcemanager_Project_RESOURCE_2

Enable container on-demand scanning to proactively detect vulnerabilities in your container images, thereby safeguarding your applications, ensuring operational reliability, and preventing costly security incidents.

Severity: High High
Project, Container, On Demand Scanning, Security, CSPR
kms-cryptokey-protection-level-hsm

cloudkms.googleapis.com/CryptoKey

Checks if a Cloud KMS CryptoKey's protection level is set to HSM. The `protectionLevel` determines where cryptographic operations are performed. `HSM` means they occur within a Hardware Security Module. HSM provides a higher level of security. This rule checks the `versionTemplate.protectionLevel` field. A violation is generated if the `protectionLevel` is `HSM`. While `SOFTWARE` protection level is acceptable for some use cases, `HSM` is generally recommended for higher security requirements.

Severity: Medium Medium
KMS, CryptoKey, Security, HSM, ProtectionLevel, Encryption, CSPR
kms-cryptokey-protection-level-software

cloudkms.googleapis.com/CryptoKey

Checks if a Cloud KMS CryptoKey's protection level is set to SOFTWARE. The `protectionLevel` determines where cryptographic operations are performed. `SOFTWARE` means operations occur in software, while `HSM` means they occur within a Hardware Security Module. HSM provides a higher level of security. This rule checks the `versionTemplate.protectionLevel` field. A violation is generated if the `protectionLevel` is `SOFTWARE`. While `SOFTWARE` protection level is acceptable for some use cases, `HSM` is generally recommended for higher security requirements.

Severity: Medium Medium
KMS, CryptoKey, Security, HSM, ProtectionLevel, Encryption, CSPR
kms-cryptokey-symmetric-rotation

cloudkms.googleapis.com/CryptoKey

Checks if a Cloud KMS CryptoKey with the `GOOGLE_SYMMETRIC_ENCRYPTION` algorithm and an 'ENABLED' state has key rotation configured. Regular key rotation is a critical security best practice. This rule verifies the following

Severity: High High
KMS, CryptoKey, Rotation, Security, Encryption, Symmetric, KeyRotation, CSPR
kms-key-folder-publicly-exposed

cloudresourcemanager.googleapis.com/Folder

Detects publicly exposed KMS keys within a folder for preventing unauthorized access and decryption of sensitive data, thereby safeguarding your critical information assets and mitigating breach risks.

Severity: High High
IAM, GCE, image, Security, CSPR
kms-key-organization-publicly-exposed

cloudresourcemanager.googleapis.com/Organization

Ensure your organization's KMS encryption keys are not publicly exposed through IAM policies, safeguarding sensitive data from unauthorized access and preventing costly data breaches.

Severity: High High
IAM, GCE, image, Security, CSPR
kms-key-project-publicly-exposed

cloudresourcemanager.googleapis.com/Project

Safeguard critical data and maintain compliance by preventing public KMS key exposure, which restricts cryptographic operations to authorized identities only and mitigates risks of unauthorized access and data breaches.

Severity: High High
IAM, GCE, image, Security, CSPR
kms-key-publicly-exposed

cloudkms.googleapis.com/CryptoKey

This rule identifies publicly exposed KMS keys, preventing unauthorized data decryption to safeguard sensitive information, ensure data integrity, and avert costly breaches.

Severity: High High
IAM, GCE, image, Security, CSPR
kms-key-ring-publicly-exposed

cloudkms.googleapis.com/KeyRing

Prevent unauthorized access to sensitive encrypted data by ensuring KMS key ring IAM policies do not grant public permissions, thereby safeguarding data confidentiality and integrity.

Severity: High High
IAM, GCE, image, Security, CSPR
kms-key-rotation-enabled-1yr

cloudkms.googleapis.com/CryptoKey

Checks if Google Cloud Key Management Service (KMS) keys have automatic key rotation enabled and if the rotation period is within an acceptable limit (not greater than 365 days). Regular key rotation is a critical security best practice to limit the potential impact of a compromised key. If a key is compromised, rotation limits the time an attacker can use it. This rule flags KMS keys that either *do not have rotation enabled* or have a *rotation period exceeding 365 days*. Shorter rotation periods are generally preferred for enhanced security.

Severity: Medium Medium
KMS, KeyRotation, Security, Cryptography, Compliance, Reliability, CSPR
kms-owner-role

cloudkms_CryptoKey_RESOURCE_IAM_POLICY_1

Restricting the highly permissive 'Owner' role on KMS projects safeguards cryptographic keys from accidental or malicious actions, enhancing data security and operational stability.

Severity: Medium Medium
KMS, Security, CSPR
org-pol-appengine-disable-code-download

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'appengine.disableCodeDownload' organization policy is configured on the project or its parents to prevent unauthorized code downloads and protect against potential security risks.

Severity: Medium Medium
Organization policy, Appengine, Security, CSPR
org-pol-compute-disable-guest-attributes-access

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'compute.disableGuestAttributesAccess' organization policy is enforced on the project or any parent, preventing potential unauthorized access to guest attributes.

Severity: High High
Organization policy, GCE, Security, CSPR
org-pol-compute-disable-internet-endpoint-group

cloudresourcemanager_Project_RESOURCE_3

Verifies that the compute.disableInternetNetworkEndpointGroup organization policy is enforced on the project or its parents, preventing potential security vulnerabilities.

Severity: Low Low
Organization policy, GCE, Security, CSPR
org-pol-compute-disable-nested-virtualization

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy compute.disableNestedVirtualization is configured on the project or any parent, preventing unauthorized use of nested virtualization.

Severity: Medium Medium
Organization policy, GCE, Security, CSPR
org-pol-compute-disable-serial-port-logging

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'compute.disableSerialPortLogging' organization policy is enforced on the project or any parent, preventing potential security risks from unauthorized serial port access.

Severity: Low Low
Organization policy, GCE, Security, CSPR
org-pol-compute-disables-serial-port-access

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'compute.disableSerialPortAccess' organization policy is enforced on the project or its parents, preventing unauthorized access to serial ports.

Severity: High High
Organization policy, GCE, Security, CSPR
org-pol-compute-require-os-login

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'compute.requireOsLogin' organization policy is enforced to ensure OS Login is enabled on the project or its parents, preventing unauthorized access to virtual machines.

Severity: High High
Organization policy, GCE, Security, CSPR
org-pol-compute-require-shielded-vm

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy compute.requireShieldedVm is enforced on the project or its parents, ensuring that only shielded VMs are created, thus enhancing security.

Severity: Medium Medium
Organization policy, GCE, Security, CSPR
org-pol-compute-restrict-dedicated-interconnect

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'compute.restrictDedicatedInterconnectUsage' organization policy is enforced on the project or any parent, preventing potential risks associated with unrestricted dedicated interconnect usage.

Severity: Low Low
Organization policy, GCE, Security, CSPR
org-pol-compute-restrict-load-balancer-creation

cloudresourcemanager_Project_RESOURCE_3

Verifies that the compute.restrictLoadBalancerCreationForTypes organization policy is enforced to prevent the creation of insecure load balancers on the project or its parents.

Severity: Medium Medium
Organization policy, GCE, Security, CSPR
org-pol-compute-restrict-protocol-forward-creation

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy compute.restrictProtocolForwardingCreationForTypes is configured on the project or any parent, to prevent potential security vulnerabilities.

Severity: High High
Organization policy, GCE, Security, CSPR
org-pol-compute-restrict-shared-vpc-host-projects

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy compute.restrictSharedVpcHostProjects is configured on the project or any parent, preventing potential security vulnerabilities.

Severity: Medium Medium
Organization policy, GCE, Security, CSPR
org-pol-compute-restrict-shared-vpc-subnetworks

cloudresourcemanager_Project_RESOURCE_3

Verifies that the compute.restrictSharedVpcSubnetworks organization policy is enforced on the project or its parents, ensuring only approved subnets are used, thereby enhancing network security.

Severity: Low Low
Organization policy, GCE, Security, CSPR
org-pol-compute-restrict-vpc-peering

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy compute.restrictVpcPeering is enforced on the project or its parents, preventing potential unauthorized VPC peering.

Severity: Medium Medium
Organization policy, GCE, Security, CSPR
org-pol-compute-restrict-vpn-peer-ips

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy compute.restrictVpnPeerIPs is configured on the project or any parent, preventing unauthorized VPN peer IP access.

Severity: Medium Medium
Organization policy, GCE, Security, CSPR
org-pol-compute-restrict-xpn-project-lien-removal

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'compute.restrictXpnProjectLienRemoval' organization policy is enforced on the project or its parents, preventing unauthorized removal of project liens.

Severity: Medium Medium
Organization policy, GCE, Security, CSPR
org-pol-compute-skip-default-network-creation

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'compute.skipDefaultNetworkCreation' organization policy is enforced on the project or its parents, preventing potential security vulnerabilities.

Severity: Medium Medium
Organization policy, GCE, Security, CSPR
org-pol-compute-storage-resource-use-restrictions

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy `compute.storageResourceUseRestrictions` is enforced to ensure that storage resource use restrictions are configured on the project or its parents, preventing potential security vulnerabilities.

Severity: High High
Organization policy, GCE, Security, CSPR
org-pol-compute-trusted-image-projects

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy compute.trustedImageProjects is configured on the project or any parent, preventing the use of untrusted images.

Severity: Medium Medium
Organization policy, GCE, Security, CSPR
org-pol-compute-vm-can-ip-forward

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'compute.vmCanIpForward' organization policy is configured on the project or its parents to allow VMs to forward IP traffic, ensuring proper network functionality.

Severity: Low Low
Organization policy, GCE, Security, CSPR
org-pol-compute-vm-external-ip-access

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'compute.vmExternalIpAccess' organization policy is enforced on the project or its parents, preventing potential security vulnerabilities.

Severity: High High
Organization policy, GCE, Security, CSPR
org-pol-functions-allowed-vpc-connector-egress

cloudresourcemanager_Project_RESOURCE_3

Verifies that the cloudfunctions.allowedVpcConnectorEgressSettings organization policy is enforced on the project or its parents, preventing unauthorized egress settings for Cloud Functions, thereby enhancing security.

Severity: High High
Organization policy, Cloud Function, Security, CSPR
org-pol-functions-require-vpc-connector

cloudresourcemanager_Project_RESOURCE_3

Verifies that the cloudfunctions.requireVPCConnector organization policy is enforced to ensure Cloud Functions use VPC connectors, enhancing network security.

Severity: High High
Organization policy, Cloud Function, Security, CSPR
org-pol-gce-disable-psc-creation

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy compute.disablePrivateServiceConnectCreationForConsumers is configured to prevent unauthorized Private Service Connect creation.

Severity: Low Low
Organization policy, GCE, PSC, Security, CSPR
org-pol-gcp-detailed-audit-logging-mode

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy gcp.detailedAuditLoggingMode is configured on the project or any parent to enable detailed audit logging, aiding in comprehensive security monitoring and compliance.

Severity: Low Low
Organization policy, Cloud Logging, Security, CSPR
org-pol-gcp-disable-cloud-logging

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy gcp.disableCloudLogging is configured on the project or any parent to ensure that Cloud Logging is properly enforced.

Severity: Low Low
Organization policy, Cloud Logging, Security, CSPR
org-pol-gcp-resource-locations

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'gcp.resourceLocations' organization policy is enforced on the project or any parent, ensuring resources are created in the designated geographic locations, thereby meeting compliance requirements.

Severity: Medium Medium
Organization policy, Security, CSPR
org-pol-iam-allow-disable-sa-key-creation

cloudresourcemanager_Project_RESOURCE_3

Reduces your attack surface by identifying active ingress firewall rules that expose uncommon network protocols (not TCP, UDP, or ICMP) to the internet, preventing potential breaches through unmonitored services.

Severity: High High
Organization policy, IAM, Security, CSPR
org-pol-iam-allow-sa-credential-lifetime-extension

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy iam.allowServiceAccountCredentialLifetimeExtension is configured on the project or any parent, ensuring that service account credential lifetime extensions are managed to maintain security.

Severity: Medium Medium
Organization policy, IAM, Security, CSPR
org-pol-iam-allowed-policy-member-domains

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'iam.allowedPolicyMemberDomains' organization policy is enforced on the project or its parents, ensuring only approved domains can be added as policy members, enhancing security by preventing unauthorized access.

Severity: Critical Critical
Organization policy, IAM, Security, CSPR
org-pol-iam-auto-grants-for-default-service-account

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'iam.automaticIamGrantsForDefaultServiceAccounts' organization policy is enforced on the project or any parent to ensure that the default service accounts are not automatically granted IAM roles, improving security.

Severity: High High
Organization policy, IAM, Security, CSPR
org-pol-iam-disable-service-account-creation

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'iam.disableServiceAccountCreation' organization policy is enforced to prevent the creation of service accounts, reducing the risk of unauthorized access and potential security breaches.

Severity: Low Low
Organization policy, IAM, Security, CSPR
org-pol-iam-disable-service-account-key-upload

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'iam.disableServiceAccountKeyUpload' organization policy is enforced on the project or any parent, preventing potential security risks associated with unauthorized service account key uploads.

Severity: Low Low
Organization policy, IAM, Security, CSPR
org-pol-iam-disable-workload-identity-cluster

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'iam.disableWorkloadIdentityClusterCreation' organization policy is enforced on the project or any parent, preventing the creation of workload identity clusters if the policy is not configured.

Severity: Medium Medium
Organization policy, IAM, Security, CSPR
org-pol-iam-workload-identity-pool-providers

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'iam.workloadIdentityPoolProviders' organization policy is enforced on the project or any parent, ensuring that workload identity pool providers are correctly configured to prevent unauthorized access.

Severity: Medium Medium
Organization policy, IAM, Security, CSPR
org-pol-restrict-non-confidential-computing

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy compute.restrictNonConfidentialComputing is configured on the project or its parents, preventing the use of non-confidential computing resources that could lead to data exposure.

Severity: Low Low
Organization policy, GCE, Security, CSPR
org-pol-restrict-partner-interconnect-usage

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'compute.restrictPartnerInterconnectUsage' organization policy is enforced on the project or any parent, preventing potential unauthorized usage of Partner Interconnect.

Severity: Low Low
Organization policy, GCE, Security, CSPR
org-pol-serviceuser-services

cloudresourcemanager_Project_RESOURCE_3

Verifies that the organization policy serviceuser.services is configured on the project or its parents, preventing potential security vulnerabilities.

Severity: Low Low
Organization policy, Services, Security, CSPR
org-pol-sql-restrict-authorized-networks

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'sql.restrictAuthorizedNetworks' organization policy is enforced on the project or its parents, preventing unauthorized access to Cloud SQL instances from unapproved networks.

Severity: High High
Organization policy, Cloud Sql, Security, CSPR
org-pol-sql-restrict-public-ip

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'sql.restrictPublicIp' organization policy is enforced on the project or its parents, preventing potential security vulnerabilities by restricting public IP access to Cloud SQL instances.

Severity: High High
Organization policy, Cloud Sql, Security, CSPR
org-pol-storage-retention-policy-seconds

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'storage.retentionPolicySeconds' organization policy is enforced on the project or its parents to ensure data is protected from accidental or malicious deletion.

Severity: Medium Medium
Organization policy, Cloud Storage, Security, CSPR
org-pol-storage.uniform-bucket-level-access

cloudresourcemanager_Project_RESOURCE_3

Verifies that the 'storage.uniformBucketLevelAccess' organization policy is enforced on the project or any parent, ensuring consistent access control for all objects within a bucket and preventing potential data breaches.

Severity: High High
Organization policy, GCS, Storage, Security, CSPR
osconfig-vuln-report-critical

osconfig.googleapis.com/VulnerabilityReport

Detects OS Config vulnerability reports that contain vulnerabilities with a 'CRITICAL' severity level. Vulnerability reports provide information about vulnerabilities found on Compute Engine VM instances. Critical vulnerabilities represent the highest level of risk and should be addressed immediately to prevent potential exploitation. This rule flags any vulnerability report containing at least one critical vulnerability.

Severity: Critical Critical
Compute, Security, osconfig, Vulnerability, CSPR
project-no-folder

cloudresourcemanager.googleapis.com/Project

Identifies projects created directly under an organization, which bypasses folder-level policy inheritance essential for consistent governance, security posture, and cost management.

Severity: High High
project, resource management, Security, CSPR
pubsub-subscription-deadletter

pubsub.googleapis.com/Subscription

Checks if a Pub/Sub subscription has a dead-letter topic configured. A dead-letter topic (DLT) is essential for handling message delivery failures. When a message cannot be delivered to a subscriber after multiple attempts, it can be sent to a DLT, preventing message loss and allowing for analysis of delivery issues. This rule examines the `deadLetterPolicy` field within the subscription's configuration. If `deadLetterPolicy` is *missing* or if it exists but does not have a `deadLetterTopic` field, the rule generates a violation. Using a DLT is a best practice for reliable message processing.

Severity: Medium Medium
PubSub, Subscription, DeadLetter, Reliability, Messaging, ErrorHandling, CSPR
redis-auth-enabled

redis.googleapis.com/Instance

Checks if Memorystore for Redis instances have Redis AUTH enabled. Redis AUTH requires clients to authenticate with a password before accessing the database. This is a fundamental security measure to prevent unauthorized access. This rule flags instances where 'authEnabled' is 'false'.

Severity: High High
Redis, Memorystore, Instance, Security, Authentication, AccessControl
redis-authorized-network-set

redis.googleapis.com/Instance

Checks if Memorystore for Redis instances have an authorized network configured. Restricting access to a specific VPC network limits the potential attack surface. While this rule doesn't validate the *specific* network, it checks that *some* network restriction is in place. A more robust check would compare against a list of allowed networks (using parameters).

Severity: Medium Medium
Redis, Memorystore, Instance, Security, Network, AccessControl, VPC
redis-maintenance-window-configured

redis.googleapis.com/Instance

Checks if Memorystore for Redis instances have a maintenance window configured. A defined maintenance window allows you to control when potentially disruptive maintenance operations occur. Without a defined window, updates can happen at any time, which could impact application availability. This rule flags instances that *do not* have a 'maintenancePolicy' defined.

Severity: High High
Redis, Memorystore, Instance, Availability, Reliability, Maintenance
redis-no-basic-tier

redis.googleapis.com/Instance

Checks if Memorystore for Redis instances are using the 'BASIC' tier. The 'BASIC' tier provides a single Redis node and does not offer replication or automatic failover. This makes it unsuitable for production workloads that require high availability. This rule flags any instance using the 'BASIC' tier. Upgrading to 'STANDARD_HA' is strongly recommended for production environments.

Severity: High High
Redis, Memorystore, Instance, Availability, Reliability, HighAvailability, CSPR
redis-standard-ha-has-replicas

redis.googleapis.com/Instance

Checks if Memorystore for Redis instances using the 'STANDARD_HA' tier have at least one replica. While 'STANDARD_HA' provides high availability features, a replica count of zero eliminates the redundancy benefits. This rule flags 'STANDARD_HA' instances with zero replicas. Increasing the replica count to at least 1 (and ideally 2 or more, up to 5) is recommended for true high availability.

Severity: Medium Medium
Redis, Memorystore, Instance, Availability, Reliability, HighAvailability, Performance, CSPR
resourcemanager-host-projects

compute.googleapis.com/Project

Checks if a Google Cloud project is configured as a Shared VPC Host Project. Shared VPC allows an organization to connect resources from multiple projects to a common VPC network, hosted in a designated 'Host Project'. This allows for centralized network administration. This rule identifies host projects by checking the `xpnProjectStatus` field within the project's Compute Engine metadata. A status of 'HOST' indicates it's a Shared VPC Host Project. This policy is informational, identifying projects with this specific configuration.

Severity: Low Low
Compute, Project, SharedVPC, HostProject, Networking, Organization, CSPR
scc-not-enabled-on-org

cloudresourcemanager.googleapis.com/Organization

Activating Security Command Center (SCC) at the organization level provides essential, centralized visibility into security findings and compliance status, enabling proactive risk mitigation to safeguard your Google Cloud resources.

Severity: High High
IAM, scc, Security, CSPR
secret-manager-90d-rotation

secretmanager.googleapis.com/SecretVersion

Checks if a Secret Manager secret is both enabled and older than 90 days since its creation time. Regularly rotating secrets is a security best practice to minimize the impact of potential compromise. This rule examines two fields - 1. `state`- Checks if the secret is in the 'ENABLED' state. 2. `createTime`- Checks if the secret's creation time is more than 90 days in the past. A violation is generated if *both* conditions are true

Severity: Medium Medium
SecretManager, Secret, Rotation, Security, Age, CSPR
sslpolicy-modern-with-tlsv12

compute.googleapis.com/SslPolicy

Checks if a Compute Engine SSL Policy meets recommended security standards by having its profile set to 'MODERN' and its minimum TLS version set to 'TLS_1_2'. The 'MODERN' profile includes strong cipher suites and disables older, less secure TLS versions. Setting the minimum TLS version to 'TLS_1_2' further enhances security by disallowing TLS 1.0 and 1.1. This rule examines the `profile` and `minTlsVersion` fields. A violation is generated if the `profile` is not 'MODERN' OR the `minTlsVersion` is not 'TLS_1_2'.

Severity: High High
Compute, SslPolicy, TLS, Security, Encryption, Profile, Modern, CSPR
storage-bucket-empty-lifecycle

storage.googleapis.com/Bucket

Identifies Cloud Storage buckets that have lifecycle rules defined, but where those rules are missing a specified 'action'. A lifecycle rule without an action is ineffective and serves no purpose. Lifecycle rules are designed to manage object lifecycle through actions like deletion or storage class transitions. An empty action indicates a configuration error that should be corrected. This could be a sign of an incomplete setup or a typo in the configuration.

Severity: Medium Medium
Storage, Bucket, Lifecycle, Reliability, Cost, CSPR
storage-bucket-gdpr

storage.googleapis.com/Bucket

Checks if a Google Cloud Storage bucket is located outside of the European Union (EU) geographical boundaries. For organizations subject to GDPR or similar data residency regulations, storing data in compliant locations is critical. This rule identifies buckets where the `location` field does not correspond to an EU multi-region ('EU') or a specific EU region (typically starting with 'EUROPE-'). Buckets found outside the EU region might require review for compliance.

Severity: Medium Medium
Storage, Bucket, GDPR, Compliance, Location, EU, DataResidency, CSPR
storage-bucket-no-cmek

storage.googleapis.com/Bucket

Checks if a Cloud Storage bucket is encrypted using a Customer-Managed Encryption Key (CMEK). Using CMEKs provides *greater control* over your data encryption keys compared to Google-managed encryption. With CMEKs, you manage the key lifecycle, including rotation, access control, and auditing, within Cloud KMS. This is often a requirement for regulatory compliance or enhanced security postures where you need direct control over your encryption keys. If a bucket is *not* using a CMEK, it's using Google-managed encryption by default.

Severity: High High
Storage, Bucket, Encryption, CMEK, Security, CSPR
storage-bucket-versioning-disabled

storage.googleapis.com/Bucket

Checks if object versioning is enabled for the Cloud Storage bucket. Object versioning preserves previous versions of an object when it's overwritten or deleted, providing a crucial safeguard against accidental data loss or corruption. With versioning enabled, you can restore earlier versions of objects if needed. Disabling versioning means that overwrites and deletions are permanent.

Severity: Medium Medium
Storage, Bucket, Versioning, Reliability, Recovery, CSPR
storage-retention-policy-not-locked

storage.googleapis.com/Bucket

Checks if a Google Cloud Storage bucket has a retention policy configured and if that policy is locked. A retention policy specifies a minimum duration that objects in the bucket must be retained. Locking the retention policy makes it *permanent* and *immutable*, preventing accidental or malicious deletion or modification of the policy. This rule checks for two conditions

Severity: Medium Medium
Storage, Bucket, Retention, Policy, Lock, Compliance, DataLoss, DataGovernance, CSPR
storage-uniform-bucket-access

storage.googleapis.com/Bucket

Checks if Uniform Bucket-Level Access (UBLA) is enabled for the Cloud Storage bucket. Enabling UBLA provides a simplified and consistent way to manage permissions using IAM roles at the bucket level, rather than managing individual object ACLs. This is generally recommended for improved security and manageability. With UBLA, you *only* use IAM to control access, making permissions easier to audit and understand. Disabling UBLA means you are relying on a combination of IAM and object ACLs, which can become complex and difficult to manage.

Severity: Medium Medium
Storage, Bucket, Security, CSPR