Compliance Manager includes many built-in cloud controls that you can add to frameworks and deploy in your environment. If required, you can create and manage your own custom cloud controls and update built-in cloud controls.
Before you begin
Complete these tasks before you complete the remaining tasks on this page.
Set up permissions
-
To get the permissions that you need to manage cloud controls frameworks, ask your administrator to grant you the following IAM roles on your organization or project:
- Compliance Manager Admin (
roles/cloudsecuritycompliance.admin) -
To create or modify cloud controls that are based on organization policies, one of:
- Organization Policy Administrator (
roles/orgpolicy.policyAdmin) - Assured Workloads Administrator (
roles/assuredworkloads.admin) - Assured Workloads Editor (
roles/assuredworkloads.editor)
- Organization Policy Administrator (
-
To create or modify cloud controls that are based on project policies:
Project IAM Admin (
roles/resourcemanager.projectIamAdmin)
For more information about granting roles, see Manage access to projects, folders, and organizations.
You might also be able to get the required permissions through custom roles or other predefined roles.
- Compliance Manager Admin (
Set up Google Cloud CLI
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
To set up the gcloud CLI to use service account impersonation to authenticate to Google APIs, rather than your user credentials, run the following command:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
For more information, see Service account impersonation.
View cloud controls
Complete the following steps to view built-in cloud controls and any custom cloud controls that you already created.
Console
In the Google Cloud console, go to the Compliance page.
Select your organization or project.
In the Configure tab, click Cloud Controls. The available cloud controls display.
The dashboard includes information about which frameworks include the cloud control and the number of resources (organization, folders, and projects) that the cloud control is applied to.
To view details about a cloud control, click the control name.
CLI
You can see information about a specific cloud control or list all the cloud controls in your organization.
See details about a cloud control
To see details about a specific cloud control, run the gcloud
compliance-manager cloud-controls describe command:
gcloud compliance-manager cloud-controls describe CLOUD_CONTROL \
--location=LOCATION \
--organization=ORGANIZATION \
[--major-revision-id=MAJOR_REVISION_ID]
Replace the following values:
CLOUD_CONTROL: the name of the cloud controlORGANIZATION: your organization IDLOCATION: the region that the cloud control is stored inMAJOR_REVISION_IDis an optional flag that specifies which version of the cloud control to view. If you don't include the flag, the latest version is returned.
For example, to view a cloud control with the name
builtin-block-external-ip-addresses-for-vm-access
and the major revision number 1, run the following:
gcloud compliance-manager cloud-controls describe \
builtin-block-external-ip-addresses-for-vm-access \
--organization=3589215982 \
--location=global \
--major-revision-id=1
For more information, see gcloud compliance-manager cloud-controls describe.
Get list of cloud controls
To get the list of cloud controls in your organization, run the gcloud
compliance-manager cloud-controls list command:
gcloud compliance-manager cloud-controls list \
--location=LOCATION \
--organization=ORGANIZATION
Replace the following values:
ORGANIZATION: your organization IDLOCATION: the region that the cloud controls are stored in
For example, to view all cloud controls within organization 3589215982 and
stored in the global location, run the following:
gcloud compliance-manager cloud-controls list \
--organization=3589215982 \
--location=global
For information about optional flags, see gcloud compliance-manager cloud-controls list.
Create a custom cloud control
When you create a custom cloud control, you apply a rule to any Cloud Asset Inventory resource type.
Console
When using the console, you can create custom cloud controls with one rule that applies to one resource type.
In the Google Cloud console, go to the Compliance page.
Select your organization or project.
In the Configure tab, click Cloud Controls. The list of available cloud controls are displayed.
Create a cloud control, either with Gemini or manually:
Use Gemini
Ask Gemini to generate a cloud control for you. Based on your prompt, Gemini provides a unique identifier, a name, associated detection logic, and possible remediation steps.
Review the recommendations and make any required changes.
Save your custom cloud control.
Create manually
In Cloud control ID, provide a unique identifier for your control.
Enter a name and description to help users in your organization understand the purpose of the custom cloud control.
Optional: Select the categories for the control. Click Continue.
Select an available resource type for your custom cloud control. Compliance Manager supports all resource types. To find the name for a resource, see Asset types.
Provide the detection logic for your cloud control, in Common Expression Language (CEL) format.
CEL expressions let you define how you want to evaluate the properties of a resource. For more information and examples, see Write rules for custom cloud controls. Click Continue.
If your evaluation rule isn't valid, an error is displayed.
Select an appropriate findings severity.
Write your remediation instructions so that incident responders and administrators in your organization can resolve any findings for the cloud control. Click Continue.
Review your entries, and then click Create.
CLI
When using the gcloud CLI, you can create a custom cloud control with a maximum of three rules. Each rule can apply to only one resource type.
To create a custom cloud control, run the gcloud compliance-manager
cloud-controls create command:
gcloud compliance-manager cloud-controls create CLOUD_CONTROL \
--location=LOCATION \
--organization=ORGANIZATION \
[--display-name=DISPLAY_NAME] \
[--description=DESCRIPTION] \
[--categories=[CATEGORIES,...]] \
[--finding-category=FINDING_CATEGORY] \
[--parameter-spec=[defaultValue=DEFAULTVALUE],[description=DESCRIPTION],[displayName=DISPLAYNAME],[isRequired=ISREQUIRED],[name=NAME],[substitutionRules=SUBSTITUTIONRULES],[validation=VALIDATION],[valueType=VALUETYPE]] \
[--remediation-steps=REMEDIATION_STEPS] \
[--rules=[celExpression=CELEXPRESSION],[description=DESCRIPTION],[ruleActionTypes=RULEACTIONTYPES]] \
[--severity=SEVERITY] \
[--supported-cloud-providers=[SUPPORTED_CLOUD_PROVIDERS,…]] \
[--supported-target-resource-types=[SUPPORTED_TARGET_RESOURCE_TYPES,…]]
Replace the following values:
CLOUD_CONTROL: a unique alphanumeric name for the cloud controlORGANIZATION: your organization IDLOCATION: the region that the cloud control is stored inDISPLAY_NAME: a human-readable name for the cloud controlDESCRIPTION: an optional description of the purpose of the cloud controlCATEGORIES,…: an optional parameter that defines the categories that the cloud control is part of. For a list of permitted categories, see gcloud compliance-manager cloud-controls create.FINDING_CATEGORY: the value that shows in the Security Command Center findings dashboard when the cloud control generates a finding--parameter-spec=[defaultValue=DEFAULTVALUE], \ [description=DESCRIPTION], \ [displayName= DISPLAYNAME], \ [isRequired=ISREQUIRED], \ [name=NAME], \ [substitutionRules=SUBSTITUTIONRULES], \ [validation=VALIDATION], \ [valueType=VALUETYPE]...]
is the optional parameter information for the cloud control, in the following format:
DEFAULTVALUE: the data that is applied if a user doesn't customize the parameter when deploying a framework. Supported value types areboolValue,numberValue,stringListValue, orstringValue.DESCRIPTION: an optional description of the controlISREQUIRED:trueif the control requires a parameter to be setNAME: the name of the parameterSUBSTITUTIONRULES: how and where Compliance Manager injects the custom value for the parameter. Specify the targeted path inside the rule using a proto dot notation (for example,rules[0].org_policy_constraint...) Choose one of the following options:attributeSubstitutionRulewhen you want to inject the parameter value directly into a structural field of your rule (for example, filling a list of restricted values inside an organization policy constraint rule template).placeholderSubstitutionRulewhen your rule uses a text string (or CEL expression). The string must contain a placeholder variable that's prefixed with$(for example,$deniedServices), and this rule tells the compiler to map the parameter to that placeholder.
The following example creates a list parameter named
deniedServiceswith theSTRINGLISTtype. It usesattributeSubstitutionRuleto add user-provided service names (such ascompute.googleapis.com) directly into a structural custom organization policy rule (denied_values) when deployed:--parameter-spec='name=deniedServices,isRequired=true,valueType=STRINGLIST,substitutionRules=[{attributeSubstitutionRule={attribute="rules[0].org_policy_constraint.policy_rules[0].values.denied_values"}}]'VALIDATIONis the permitted set of values. Choose one of the following options:Use
allowedValuesto enforce a static allowlist—for example, limit location parameters to specific string fields:validation={allowedValues={values=[{stringValue=us-central1},{stringValue=us-west1}]}}Use
intRangeto enforce numeric bounds on integers—for example, set a retention period between 1 and 365:validation={intRange={min=1,max=365}}Use
regexpPatternto enforce regular expression matching on string text—for example, require strict alphanumeric naming:validation={regexpPattern={pattern="^[a-z][-a-z0-9]*$"}}
VALUETYPE: the data type or format of the value that a user provides for this parameter. Supported value types areSTRING,BOOLEAN,STRINGLIST,NUMBER, andONEOF.
Alternatively, you can specify a JSON or YAML file that defines the parameters. For example,
--parameter-spec=path_to_file.(yaml|json). Expand the following section to view example JSON and YAML files.Example JSON file
[ { "name": "deniedServices", "displayName": "Services Requiring CMEK", "description": "List of service names that must use Customer-Managed Encryption Keys.", "isRequired": true, "valueType": "STRINGLIST", "substitutionRules": [ { "attributeSubstitutionRule": { "attribute": "rules[0].org_policy_constraint.policy_rules[0].values.denied_values" } } ] } ]Example YAML file
- name: deniedServices displayName: "Services Requiring CMEK" description: "List of service names that must use Customer-Managed Encryption Keys." isRequired: true valueType: STRINGLIST substitutionRules: - attributeSubstitutionRule: attribute: "rules[0].org_policy_constraint.policy_rules[0].values.denied_values"REMEDIATION_STEPS: the steps required to resolve any findings. This string is limited to 400 characters.
--rules=[celExpression=CELEXPRESSION],[description=DESCRIPTION],[ruleActionTypes=RULEACTIONTYPES]is the rule that you want to enforce, in the following format:CELEXPRESSION: the common expression language (CEL) expression of the rule. For information about writing CEL expressions, see Write rules for custom cloud controls. Include the following:expression: the CEL expression, with a maximum of 1000 charactersresourceTypesValues: the name of the resources, in the formatSERVICE_NAME/type. Use avaluesarray to list all your resource types that you want to apply the rule to—for example,values=[compute.googleapis.com/Instance].
DESCRIPTION: a description of the ruleRULEACTIONTYPES: the action that the rule performs. Supported values arerule-action-type-detective,rule-action-type-preventive, andrule-action-type-audit.
For example, to check the Cloud Key Management Service key rotation period, enter the following:
--rules="[ { \"celExpression\": { \"expression\": \"has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')\", \"resourceTypesValues\": { \"values\": [ \"cloudkms.googleapis.com/CryptoKey\" ] } }, \"description\": \"Check KMS key rotation period\", \"ruleActionTypes\": [ \"rule-action-type-detective\" ] } ]"Alternatively, you can specify a JSON or YAML file that defines the rule. For example,
--rules=path_to_file.(yaml|json). Expand the following section to view example JSON and YAML files.Example JSON file
[ { "celExpression": { "expression": "has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')", "resourceTypesValues": { "values": [ "cloudkms.googleapis.com/CryptoKey" ] } }, "description": "Check KMS key rotation period to ensure it is under 60 hours.", "ruleActionTypes": [ "rule-action-type-detective" ] } ]Example YAML file
- celExpression: expression: "has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')" resourceTypesValues: values: - cloudkms.googleapis.com/CryptoKey description: "Check KMS key rotation period to ensure it is under 60 hours." ruleActionTypes: - rule-action-type-detectiveSEVERITY: the criticality level for the cloud control. Supported values arecritical,high,medium, andlow.SUPPORTED_CLOUD_PROVIDERS,…: the cloud providers that this cloud control applies to. The only supported value isgcp.SUPPORTED_TARGET_RESOURCE_TYPES,…: the resource types (organization, folder, project, or app-enabled folder in App Hub) that the cloud control supports. Supported values aretarget-resource-crm-type-folder,target-resource-crm-type-org,target-resource-crm-type-project, andtarget-resource-type-application.
For example, to create a cloud control that enforces resource locations, run the following command:
gcloud compliance-manager cloud-controls create \
restrict-resource-locations \
--organization=3589215982 \
--location=global \
--display-name="Restrict Resource Locations" \
--description="Enforces checks to ensure resources are only deployed in approved cloud regions." \
--severity=high \
--finding-category="LOCATION_VIOLATION" \
--supported-cloud-providers="gcp" \
--supported-target-resource-types="target-resource-crm-type-project" \
--parameter-spec='name=allowedLocations,isRequired=true,valueType=STRINGLIST,substitutionRules=[{placeholderSubstitutionRule={attribute="rules[0].cel_expression.expression"}}]' \
--rules="[{\"celExpression\": {\"expression\": \"resource.location in \$allowedLocations\", \"resourceTypesValues\": {\"values\": [\"compute.googleapis.com/Instance\"]}}, \"description\": \"Check Compute Engine instance locations\", \"ruleActionTypes\": [\"rule-action-type-detective\"]}]"
To create the same control but use YAML files to define the parameters and rules, run:
gcloud compliance-manager cloud-controls create \
restrict-resource-locations \
--organization=3589215982 \
--location=global \
--display-name="Restrict Resource Locations" \
--description="Enforces checks to ensure resources are only deployed in approved cloud regions." \
--severity=high \
--finding-category="LOCATION_VIOLATION" \
--supported-cloud-providers="gcp" \
--supported-target-resource-types="target-resource-crm-type-project" \
--parameter-spec=parameters.yaml \
--rules=rules.yaml
For more information, see gcloud compliance-manager cloud-controls create.
Terraform
When using Terraform, you can create a custom cloud control with a maximum of three rules. Each rule can apply to only one resource type.
The following sample shows how you can create a custom cloud control using Terraform.
Edit a custom cloud control
After you create a cloud control, you can change its name, description, rules, remediation steps, and severity level. You can't change the cloud control category.
In the Google Cloud console, go to the Compliance page.
Select your organization or project.
In the Configure tab, click Cloud Controls. The list of available cloud controls display.
Click the cloud control that you want to edit.
In the Cloud controls details page, verify that the cloud control isn't included in a framework. If required, edit the framework to remove the cloud control.
Click Edit.
In the Edit custom cloud control page, change the name and description as required. Click Continue.
Update the rules, finding severity, and remediation steps. Click Continue.
Review your changes and click Save.
Update a built-in cloud control to a newer release
Google publishes regular updates to its built-in cloud controls as services deploy new features or as new best practices emerge. Updates can include new controls or changes to existing controls.
You can view the releases of built-in cloud controls in the cloud controls dashboard in the Configure tab or in the cloud control details page.
Google notifies you in the release notes when the following items are updated:
- Cloud control name
- Finding category
- Change in the detective or preventive logic in a rule
- Underlying logic of a rule
To update a cloud control after you receive a notification, you must unassign and redeploy the frameworks that include the cloud control. For instructions, see Update a framework to a newer release.
Delete a custom cloud control
Delete a cloud control when it's no longer required. You can only delete cloud controls that you create. You can't delete built-in cloud controls.
Console
In the Google Cloud console, go to the Compliance page.
Select your organization or project.
In the Configure tab, click Cloud Controls. The list of available cloud controls display.
Click the cloud control that you want to delete.
In the Cloud controls details page, verify that the cloud control isn't included in a framework. If required, edit the framework to remove the cloud control.
Click Delete.
In the Delete window, review the message. Type
Deleteand click Confirm.
CLI
To delete a custom cloud control, run the gcloud compliance-manager
cloud-controls delete command:
gcloud compliance-manager cloud-controls delete CLOUD_CONTROL \
--location=LOCATION \
--organization=ORGANIZATION
Replace the following values:
CLOUD_CONTROL: the name of the cloud controlORGANIZATION: your organization IDLOCATION: the region that the cloud control is stored in
For example, to delete a cloud control with the name
restrict-resource-locations, run the following:
gcloud compliance-manager cloud-controls delete \
restrict-resource-locations \
--organization=3589215982 \
--location=global
For more information, see gcloud compliance-manager cloud-controls delete.
Mapping of Security Health Analytics detectors to cloud controls
The following table shows how Compliance Manager cloud controls map to Security Health Analytics detectors.
| Finding category in Security Health Analytics | Cloud control name in Compliance Manager |
|---|---|
|
Enable Access Transparency |
|
Block Administrator Roles from Service Accounts |
|
Configure the Allowed Ingress Settings for Cloud Run Organization Policy Constraint |
|
Configure the Allowed VPC Egress Settings for Cloud Run Organization Policy Constraint |
|
Enable AlloyDB Automated Backups on Cluster |
|
Enable AlloyDB Backups on Cluster |
|
Enable CMEK for AlloyDB Clusters |
|
Set Log Error Verbosity Flag for AlloyDB Instances |
|
Set Log Min Error Statement Flag for AlloyDB Instances |
|
Set Log Min Messages Flag for AlloyDB Instances |
|
Block Public IP Addresses for AlloyDB Cluster Instances |
|
Disable Alpha Features on GKE Clusters |
|
Restrict API Keys for Required APIs Only |
|
Not available |
|
Require Rotation of API Key |
|
Configure Log Metrics and Alerts for Audit Logging Changes |
|
Implement Event Logging for Google Cloud Services |
|
Enable Automatic Backups for Cloud SQL Databases |
|
Enable Auto Repair for GKE Clusters |
|
Enable Auto Upgrade on GKE Clusters |
|
Enable CMEK for BigQuery Tables |
|
Require Binary Authorization on a Cluster |
|
Enable CMEK for Cloud Storage Buckets |
|
Configure Log Metrics and Alerts for Cloud Storage IAM Policy Changes |
|
Require Cloud Storage Bucket Logging |
|
Enable Uniform Bucket-Level Access on Cloud Storage Buckets |
|
Enable Cloud Asset Inventory Service |
|
Enable Cloud Logging on GKE Clusters |
|
Enable Cloud Monitoring on GKE Clusters |
|
Enable Private Google Access on an instance |
|
Enable Encryption on GKE Clusters |
|
Enable Shielded GKE Nodes on a Cluster |
|
Block Project-Wide SSH Keys on Compute Engine Instances |
|
Enable Secure Boot on Compute Engine Instances |
|
Block Serial Ports for Compute Engine Instances |
|
Enable Confidential Computing for Compute Engine Instances |
|
Require Container-Optimized OS for a GKE Cluster |
|
Not available |
|
Configure Log Metrics and Alerts for Custom Role Changes |
|
Require CMEK on Dataproc Clusters |
|
Use Latest Image Versions on Dataproc Clusters |
|
Enable CMEK for BigQuery Datasets |
|
Use Networks with Custom Firewall Rules |
|
Use Custom Service Accounts for Compute Engine Instances |
|
Configure the Disable VPC External IPv6 Usage Organization Policy |
|
Configure the Disable VPC External IPv6 Usage Organization Policy |
|
Configure the Disable VM Serial Port Logging to Stackdriver Organization Policy |
|
Enable CMEK on Compute Engine Persistent Disks |
|
Enable CSEK On Compute Engine Persistent Disks |
|
Enable Cloud DNS Logs Monitoring |
|
Enable DNSSEC for Cloud DNS |
|
Enforce Deny All Egress Firewall Rule |
|
Define Essential Contacts |
|
Configure Log Metrics and Alerts for VPC Network Firewall Changes |
|
Enable Firewall Rule Logging |
|
Enable Flow Logs for VPC Subnet |
|
Restrict API Access to Google Cloud APIs for Compute Engine Instances |
|
Enforce HTTPS Traffic Only |
|
Define Service Perimeters in VPC Service Controls |
|
Enable OS Login |
|
Enable Integrity Monitoring on GKE Clusters |
|
Enable Intranode Visibility for GKE Clusters |
|
Enable IP Alias Range for GKE Clusters |
|
Prevent IP Forwarding on Compute Engine Instances |
|
Define Rotation Period for Cloud KMS Keys |
|
Not available |
|
Not available |
|
Enforce Separation of Duties |
|
Block Legacy Authorization on GKE Clusters |
|
Disable Legacy Metadata Server Endpoints on Compute Engine |
|
Don't Use Legacy Networks |
|
Enable Load Balancer Logging |
|
Lock Storage Bucket Retention Policies |
|
Configure Log Sinks |
|
Enable Control Plane Authorized Networks on GKE Clusters |
|
Not available |
|
Configure Log Metrics and Alerts for VPC Network Changes |
|
Enable Network Policy on GKE Clusters |
|
Enable CMEK on GKE Node Pool Boot Disks |
|
Enable Secure Boot for Shielded GKE Nodes |
|
Not available |
|
Enable Object Versioning on Buckets |
|
Block Connections to Cassandra Ports from All IP Addresses |
|
Block Connections to CiscoSecure/WebSM Ports from All IP Addresses |
|
Block Connections to Directory Services Ports from All IP Addresses |
|
Block Connections to DNS Ports from All IP Addresses |
|
Block Connections to Elasticsearch Ports from All IP Addresses |
|
Not available |
|
Block Connections to FTP Ports from All IP Addresses |
|
Not available |
|
Block Connections to HTTP Ports from All IP Addresses |
|
Block Connections to LDAP Ports from All IP Addresses |
|
Block Connections to Memcached Ports from All IP Addresses |
|
Block Connections to MongoDB Ports from All IP Addresses |
|
Block Connections to MySQL Ports from All IP Addresses |
|
Block Connections to NetBIOS Ports from All IP Addresses |
|
Block Connections to Oracle Database Ports from All IP Addresses |
|
Block Connections to POP3 Server Ports from All IP Addresses |
|
Block Connections to PostgreSQL Server Ports from All IP Addresses |
|
Block Access to RDP Port |
|
Block Connections to Redis Server Ports from All IP Addresses |
|
Block Connections to SMTP Server Ports from All IP Addresses |
|
Block Access to SSH Port |
|
Block Connections to Telnet Server Ports from All IP Addresses |
|
Enable the Confidential VM Organization Policy Constraint |
|
Enable OS Login for All Instances at Project Level |
|
Use Least Privilege Service Accounts for GKE Clusters |
|
Create GKE Clusters with Limited Service Account Access Scopes |
|
Block Administrator Roles from Service Accounts |
|
Not available |
|
Not available |
|
Restrict Legacy IAM Roles |
|
Enable Private Clusters for GKE |
|
Enable Private Google Access for VPC Subnets |
|
Restrict Public Access to Cloud Storage Buckets |
|
Restrict Public Access to Compute Images |
|
Restrict Public Access to BigQuery Datasets |
|
Restrict Public IP Addresses to Compute Engine Instances |
|
Restrict Public Access to Cloud Storage Buckets |
|
Restrict Public Access to Cloud SQL Database Instances |
|
Encrypt Pub/Sub topic with CMEK |
|
Enable Log Statement Flag for PostgreSQL |
|
Not available |
|
Subscribe a GKE Cluster to a Release Channel |
|
Enable OS Login |
|
Define VPC Connector Egress For Cloud Run Functions |
|
Enable the Restrict Authorized Networks on Cloud SQL Instances Organization Policy Constraint |
|
Configure Log Metrics and Alerts for VPC Route Changes |
|
Avoid RSASHA1 for DNSSEC Signing |
|
Not available |
|
Not available |
|
Require Service Account Key Rotation |
|
Enforce Separation of Duties |
|
Enable Shielded VM for Compute Engine Instances |
|
Restrict Default Network Creation for Compute Engine Instances |
|
Enable CMEK for Cloud SQL Databases |
|
Turn Off Contained Database Authentication Flag for SQL Server |
|
Turn Off Cross Database Ownership Chaining Flag for SQL Server |
|
Turn Off External Scripts Flag for SQL Server |
|
Configure Log Metrics and Alerts for Cloud SQL Configuration Changes |
|
Turn Off Local Infile Flag for MySQL |
|
Enable Log Checkpoints Flag for PostgreSQL |
|
Enable Log Connections Flag for PostgreSQL |
|
Enable Log Disconnections Flag for PostgreSQL |
|
Enable Log Duration Flag for PostgreSQL instance |
|
Enable Log Error Verbosity Flag for PostgreSQL |
|
Turn Off Log Executor Stats Flag for PostgreSQL |
|
Turn off Log Hostname Flag for PostgreSQL |
|
Enable Log Locks Wait Flag for PostgreSQL instance |
|
Turn Off Log Min Duration Statement Flag for PostgreSQL |
|
Enable Log Min Error Statement Flag for PostgreSQL |
|
Not available |
|
Enable Log Min Messages Flag for PostgreSQL |
|
Turn off Log Parser Stats Flag for PostgreSQL |
|
Turn off Log Planner Stats Flag for PostgreSQL |
|
Enable Log Statement Flag for PostgreSQL |
|
Enable Log Temp Files Flag for PostgreSQL instance |
|
Not available |
|
Block Public IP Addresses for Cloud SQL Instances |
|
Turn Off Remote Access Flag for SQL Server |
|
Enable SSL Encryption On AlloyDB Instances |
|
Enable Skip Show Database Flag for MySQL |
|
Enable 3625 Trace Database Flag for SQL Server |
|
Don't Use User Connections Flag for SQL Server |
|
Don't Use User Options Flag for SQL Server |
|
Not available |
|
Enforce SSL for all Incoming Database Connections |
|
Limit KMS Crypto Keys Users to Three |
|
Enable Uniform Bucket-Level Access on Cloud Storage Buckets |
|
Restrict User Managed Service Account Keys |
|
Not available |
|
Restrict Insecure SSL Policies for Compute Engine Instances |
|
Don't Use Kubernetes Web UI |
|
Enable Workload Identity Federation for GKE on clusters |