Predefined posture template for CIS Benchmark v2.0

This page describes the detective policies that are included in the v1.0 version of the predefined posture template for Center for Internet Security (CIS) Google Cloud Computing Platform Benchmark v2.0.0. This predefined posture helps you detect when your Google Cloud environment doesn't align with the CIS Benchmark.

You can deploy this posture template without making any changes.

The following table describes the Security Health Analytics detectors that are included in the posture template. For more information about these detectors, see Vulnerability findings.

Detector name Description
ACCESS_TRANSPARENCY_DISABLED

This detector checks whether Access Transparency is turned off.

ADMIN_SERVICE_ACCOUNT

This detector checks whether a service account has Admin, Owner, or Editor privileges.

ESSENTIAL_CONTACTS_NOT_CONFIGURED

This detector checks whether you have at least one Essential Contact.

API_KEY_APIS_UNRESTRICTED

This detector checks whether API keys are being used too broadly.

API_KEY_EXISTS

This detector checks whether a project is using API keys instead of standard authentication.

API_KEY_NOT_ROTATED

This detector checks whether an API key has been rotated within the last 90 days.

AUDIT_CONFIG_NOT_MONITORED

This detector checks whether audit configuration changes are being monitored.

AUDIT_LOGGING_DISABLED

This detector checks whether audit logging is turned off for a resource.

AUTO_BACKUP_DISABLED

This detector checks whether a Cloud SQL database doesn't have automatic backups turned on.

BIGQUERY_TABLE_CMEK_DISABLED

This detector checks whether a BigQuery table isn't configured to use a customer-managed encryption key (CMEK). For more information, see Dataset vulnerability findings.

BUCKET_IAM_NOT_MONITORED This detector checks whether logging is turned off for IAM permission changes in Cloud Storage.
BUCKET_POLICY_ONLY_DISABLED

This detector checks whether uniform bucket-level access is configured.

CLOUD_ASSET_API_DISABLED

This detector checks whether Cloud Asset Inventory is turned off.

COMPUTE_PROJECT_WIDE_SSH_KEYS_ALLOWED

This detector checks whether project-wide SSH keys are being used.

COMPUTE_SERIAL_PORTS_ENABLED

This detector checks whether serial ports are enabled.

CONFIDENTIAL_COMPUTING_DISABLED

This detector checks whether Confidential Computing is turned off.

CUSTOM_ROLE_NOT_MONITORED

This detector checks whether logging is turned off for custom role changes.

DATAPROC_CMEK_DISABLED

This detector checks whether CMEK support is turned off for a Dataproc cluster.

DATASET_CMEK_DISABLED

This detector checks whether CMEK support is turned off for a BigQuery dataset.

DEFAULT_NETWORK

This detector checks whether the default network exists in a project.

DEFAULT_SERVICE_ACCOUNT_USED

This detector checks whether the default service account is being used.

DISK_CSEK_DISABLED

This detector checks whether customer supplied encryption key (CSEK) support is turned off for a VM.

DNS_LOGGING_DISABLED

This detector checks whether DNS logging is enabled on the VPC network.

DNSSEC_DISABLED

This detector checks whether DNSSEC is turned off for Cloud DNS zones.

FIREWALL_NOT_MONITORED

This detector checks whether log metrics and alerts aren't configured to monitor VPC firewall rule changes.

VPC_FLOW_LOGS_SETTINGS_NOT_RECOMMENDED

This detector checks whether VPC Flow Logs is not turned on.

FULL_API_ACCESS

This detector checks whether an instance is using a default service account with full access to all Google Cloud APIs.

INSTANCE_OS_LOGIN_DISABLED

This detector checks whether OS Login is not turned on.

IP_FORWARDING_ENABLED

This detector checks whether IP forwarding is turned on.

KMS_KEY_NOT_ROTATED

This detector checks whether rotation for the Cloud Key Management Service encryption is not turned on.

KMS_PROJECT_HAS_OWNER

This detector checks whether a user has the Owner permission on a project that includes keys.

KMS_PUBLIC_KEY

This detector checks whether a Cloud Key Management Service cryptographic key is publicly accessible. For more information, see KMS vulnerability findings.

KMS_ROLE_SEPARATION

This detector checks for separation of duties for Cloud KMS keys.

LEGACY_NETWORK

This detector checks whether a legacy network exists in a project.

LOCKED_RETENTION_POLICY_NOT_SET

This detector checks whether the locked retention policy is set for logs.

LOAD_BALANCER_LOGGING_DISABLED

This detector checks whether logging is turned off for the load balancer.

LOG_NOT_EXPORTED

This detector checks whether a resource doesn't have a log sink configured.

MFA_NOT_ENFORCED

This detector checks whether a user isn't using 2-step verification.

NETWORK_NOT_MONITORED

This detector checks whether log metrics and alerts aren't configured to monitor VPC network changes.

NON_ORG_IAM_MEMBER

This detector checks whether a user isn't using organization credentials.

OPEN_RDP_PORT

This detector checks whether a firewall has an open RDP port.

OPEN_SSH_PORT

This detector checks whether a firewall has an open SSH port that allows generic access. For more information, see Firewall vulnerability findings.

OS_LOGIN_DISABLED

This detector checks whether OS Login is turned off.

OVER_PRIVILEGED_SERVICE_ACCOUNT_USER

This detector checks whether a user has service account roles at the project level, instead of for a specific service account.

OWNER_NOT_MONITORED

This detector checks whether logging is turned off for project ownership assignments and changes.

PUBLIC_BUCKET_ACL

This detector checks whether a bucket is publicly accessible.

PUBLIC_DATASET

This detector checks whether a dataset is configured to be open to public access. For more information, see Dataset vulnerability findings.

PUBLIC_IP_ADDRESS

This detector checks whether an instance has an external IP address.

PUBLIC_SQL_INSTANCE

This detector checks whether a Cloud SQL allows connections from all IP addresses.

ROUTE_NOT_MONITORED

This detector checks whether log metrics and alerts aren't configured to monitor VPC network route changes.

RSASHA1_FOR_SIGNING

This detector checks whether RSASHA1 is used for key signing in Cloud DNS zones.

SERVICE_ACCOUNT_KEY_NOT_ROTATED

This detector checks whether a service account key has been rotated within the last 90 days.

SERVICE_ACCOUNT_ROLE_SEPARATION

This detector checks for separation of duties for service account keys.

SHIELDED_VM_DISABLED

This detector checks whether Shielded VM is turned off.

SQL_CONTAINED_DATABASE_AUTHENTICATION

This detector checks whether the contained database authentication flag in Cloud SQL for SQL Server isn't off.

SQL_CROSS_DB_OWNERSHIP_CHAINING

This detector checks whether the cross_db_ownership_chaining flag in Cloud SQL for SQL Server isn't off.

SQL_EXTERNAL_SCRIPTS_ENABLED

This detector checks whether the external scripts enabled flag in Cloud SQL for SQL Server isn't off.

SQL_INSTANCE_NOT_MONITORED

This detector checks whether logging is turned off for Cloud SQL configuration changes.

SQL_LOCAL_INFILE

This detector checks whether the local_infile flag in Cloud SQL for MySQL isn't off.

SQL_LOG_CONNECTIONS_DISABLED

This detector checks whether the log_connections flag in Cloud SQL for PostgreSQL isn't on.

SQL_LOG_DISCONNECTIONS_DISABLED

This detector checks whether the log_disconnections flag in Cloud SQL for PostgreSQL isn't on.

SQL_LOG_ERROR_VERBOSITY

This detector checks whether the log_error_verbosity flag in Cloud SQL for PostgreSQL isn't set to default.

SQL_LOG_MIN_DURATION_STATEMENT_ENABLED

This detector checks whether the log_min_duration_statement flag in Cloud SQL for PostgreSQL isn't set to -1.

SQL_LOG_MIN_ERROR_STATEMENT_SEVERITY

This detector checks whether the log_min_error_statement flag in Cloud SQL for PostgreSQL doesn't have an appropriate severity level.

SQL_LOG_MIN_MESSAGES

This detector checks whether the log_min_messages flag in Cloud SQL for PostgreSQL isn't set to warning.

SQL_LOG_STATEMENT

This detector checks whether the log_statement flag in Cloud SQL for PostgreSQL Server isn't set to ddl.

SQL_NO_ROOT_PASSWORD

This detector checks whether a Cloud SQL database with an external IP address doesn't have a password for the root account.

SQL_PUBLIC_IP

This detector checks whether a Cloud SQL database has an external IP address.

SQL_REMOTE_ACCESS_ENABLED

This detector checks whether the remote_access flag in Cloud SQL for SQL Server isn't off.

SQL_SKIP_SHOW_DATABASE_DISABLED

This detector checks whether the skip_show_database flag in Cloud SQL for MySQL isn't on.

SQL_TRACE_FLAG_3625

This detector checks whether the 3625 (trace flag) flag in Cloud SQL for SQL Server isn't on.

SQL_USER_CONNECTIONS_CONFIGURED

This detector checks whether the user connections flag in Cloud SQL for SQL Server is configured.

SQL_USER_OPTIONS_CONFIGURED

This detector checks whether the user options flag in Cloud SQL for SQL Server is configured.

USER_MANAGED_SERVICE_ACCOUNT_KEY

This detector checks whether a user manages a service account key.

WEAK_SSL_POLICY

This detector checks whether an instance has a weak SSL policy.

YAML definition

The following is the YAML definition for the posture template for CIS 2.0.

name: organizations/123/locations/global/postureTemplates/cis_2_0
description: Posture Template to make your workload secure and CIS 2.0 compliant
revision_id: v.1.0
state: ACTIVE
policy_sets:
- policy_set_id: CIS_2_0 detective policy set
  description: CIS_2_0 SHA modules that new customers can automatically enable.
  policies:
  - policy_id: Access transparency disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: ACCESS_TRANSPARENCY_DISABLED
  - policy_id: Admin service account
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: ADMIN_SERVICE_ACCOUNT
  - policy_id: Essential contacts not configured
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: ESSENTIAL_CONTACTS_NOT_CONFIGURED
  - policy_id: API key APIs unrestricted
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: API_KEY_APIS_UNRESTRICTED
  - policy_id: API key APPs unrestricted
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: API_KEY_APPS_UNRESTRICTED
  - policy_id: API key exists
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: API_KEY_EXISTS
  - policy_id: API key not rotated
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: API_KEY_NOT_ROTATED
  - policy_id: Audit config not monitored
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: AUDIT_CONFIG_NOT_MONITORED
  - policy_id: Audit logging disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: AUDIT_LOGGING_DISABLED
  - policy_id: Auto backup disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: AUTO_BACKUP_DISABLED
  - policy_id: BigQuery table CMEK disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: BIGQUERY_TABLE_CMEK_DISABLED
  - policy_id: Bucket IAM not monitored
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: BUCKET_IAM_NOT_MONITORED
  - policy_id: Bucket policy only disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: BUCKET_POLICY_ONLY_DISABLED
  - policy_id: Cloud asset API disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: CLOUD_ASSET_API_DISABLED
  - policy_id: Compute project wide SSH keys allowed
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: COMPUTE_PROJECT_WIDE_SSH_KEYS_ALLOWED
  - policy_id: Compute serial port enabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: COMPUTE_SERIAL_PORTS_ENABLED
  - policy_id: Confidential computing disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: CONFIDENTIAL_COMPUTING_DISABLED
  - policy_id: Custom role not monitored
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: CUSTOM_ROLE_NOT_MONITORED
  - policy_id: Dataproc CMEK disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: DATAPROC_CMEK_DISABLED
  - policy_id: Dataset CMEK disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: DATASET_CMEK_DISABLED
  - policy_id: Default network
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: DEFAULT_NETWORK
  - policy_id: Default service account used
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: DEFAULT_SERVICE_ACCOUNT_USED
  - policy_id: Disk CSEK disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: DISK_CSEK_DISABLED
  - policy_id: DNS logging disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: DNS_LOGGING_DISABLED
  - policy_id: DNSSEC disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: DNSSEC_DISABLED
  - policy_id: Firewall not monitored
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: FIREWALL_NOT_MONITORED
  - policy_id: VPC flow logs settings not recommended
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: VPC_FLOW_LOGS_SETTINGS_NOT_RECOMMENDED
  - policy_id: Full API access
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: FULL_API_ACCESS
  - policy_id: Instance OS login disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: INSTANCE_OS_LOGIN_DISABLED
  - policy_id: IP forwarding enabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: IP_FORWARDING_ENABLED
  - policy_id: KMS key not rotated
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: KMS_KEY_NOT_ROTATED
  - policy_id: KMS project has owner
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: KMS_PROJECT_HAS_OWNER
  - policy_id: KMS public key
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: KMS_PUBLIC_KEY
  - policy_id: KMS role separation
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: KMS_ROLE_SEPARATION
  - policy_id: Legacy network
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: LEGACY_NETWORK
  - policy_id: Locked retention policy not set
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: LOCKED_RETENTION_POLICY_NOT_SET
  - policy_id: Load balancer logging disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: LOAD_BALANCER_LOGGING_DISABLED
  - policy_id: Log not exported
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: LOG_NOT_EXPORTED
  - policy_id: MFA not enforced
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: MFA_NOT_ENFORCED
  - policy_id: Network not monitored
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: NETWORK_NOT_MONITORED
  - policy_id: Non org IAM member
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: NON_ORG_IAM_MEMBER
  - policy_id: Open RDP port
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: OPEN_RDP_PORT
  - policy_id: Open SSH port
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: OPEN_SSH_PORT
  - policy_id: OS login disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: OS_LOGIN_DISABLED
  - policy_id: Over privileged service account user
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: OVER_PRIVILEGED_SERVICE_ACCOUNT_USER
  - policy_id: Owner not monitored
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: OWNER_NOT_MONITORED
  - policy_id: Public bucket ACL
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: PUBLIC_BUCKET_ACL
  - policy_id: Public dataset
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: PUBLIC_DATASET
  - policy_id: Public IP address
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: PUBLIC_IP_ADDRESS
  - policy_id: Public SQL instance
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: PUBLIC_SQL_INSTANCE
  - policy_id: Route not monitored
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: ROUTE_NOT_MONITORED
  - policy_id: RSASHA1 for signing
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: RSASHA1_FOR_SIGNING
  - policy_id: Service account key not rotated
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SERVICE_ACCOUNT_KEY_NOT_ROTATED
  - policy_id: Service account role separation
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SERVICE_ACCOUNT_ROLE_SEPARATION
  - policy_id: Shielded VM disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SHIELDED_VM_DISABLED
  - policy_id: SQL contained database authentication
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_CONTAINED_DATABASE_AUTHENTICATION
  - policy_id: SQL cross DB ownership chaining
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_CROSS_DB_OWNERSHIP_CHAINING
  - policy_id: SQL external scripts enabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_EXTERNAL_SCRIPTS_ENABLED
  - policy_id: SQL instnance not monitored
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_INSTANCE_NOT_MONITORED
  - policy_id: SQL local infile
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_LOCAL_INFILE
  - policy_id: SQL log connections disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_LOG_CONNECTIONS_DISABLED
  - policy_id: SQL log disconnections disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_LOG_DISCONNECTIONS_DISABLED
  - policy_id: SQL log error verbosity
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_LOG_ERROR_VERBOSITY
  - policy_id: SQL log min duration statement enabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_LOG_MIN_DURATION_STATEMENT_ENABLED
  - policy_id: SQL log min error statement severity
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_LOG_MIN_ERROR_STATEMENT_SEVERITY
  - policy_id: SQL log min messages
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_LOG_MIN_MESSAGES
  - policy_id: SQL log statement
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_LOG_STATEMENT
  - policy_id: SQL no root password
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_NO_ROOT_PASSWORD
  - policy_id: SQL public IP
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_PUBLIC_IP
  - policy_id: SQL remote access enabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_REMOTE_ACCESS_ENABLED
  - policy_id: SQL skip show database disabled
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_SKIP_SHOW_DATABASE_DISABLED
  - policy_id: SQL trace flag 3625
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_TRACE_FLAG_3625
  - policy_id: SQL user connection configured
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_USER_CONNECTIONS_CONFIGURED
  - policy_id: SQL user options configured
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: SQL_USER_OPTIONS_CONFIGURED
  - policy_id: User managed service account key
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: USER_MANAGED_SERVICE_ACCOUNT_KEY
  - policy_id: Weak SSL policy
    constraint:
      securityHealthAnalyticsModule:
        moduleEnablementState: ENABLED
        moduleName: WEAK_SSL_POLICY

What's next