Google Cloud configuration hardening security checks
Vendor-recommended secure defaults, patch levels and housekeeping settings that drift as tenants grow and admins change.
On Google Cloud, Black Cat runs 45 checks in this area on every scan. Each one below lists its severity, how to fix it, and the compliance controls it satisfies where a control applies. See what access the Google Cloud connector needs.
Checks (45)
severity: critical Public Firewall Rule fix difficulty: medium #
Restrict GCP firewall rules to specific IP ranges instead of allowing 0.0.0.0/0 ingress
- Navigate to GCP Console > VPC Network > Firewall
- Identify firewall rules allowing 0.0.0.0/0 ingress
- Restrict source ranges to specific IP addresses or CIDR blocks
- Test network connectivity after tightening the rule
Satisfies: ISO 27001:2022 A.8.20 SOC 2 Type II CC6.6 CIS Controls v8 CIS-13.4 NIST CSF 2.0 DE.CM GDPR (SaaS Security) GDPR-25.1 HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: critical Firewall Rule Exposes Dangerous Port fix difficulty: medium #
Restrict source ranges for firewall rules exposing SSH, RDP, or database ports to 0.0.0.0/0
- Navigate to GCP Console > VPC Network > Firewall
- Identify the flagged rule that exposes dangerous ports (22, 3389, 3306, 5432, 1433, 27017, 6379, 9200)
- Change source ranges to specific corporate IPs, a VPN range, or use IAP TCP forwarding for SSH
- Consider replacing direct access with Cloud IAP for administrative services
- Click Save and verify the rule is now restricted
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP GDPR (SaaS Security) GDPR-25.1 HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Firewall Rule Egress Open to World fix difficulty: medium #
Restrict egress firewall destinations to prevent data exfiltration
- Navigate to GCP Console > VPC Network > Firewall
- Identify the flagged egress rule with destination 0.0.0.0/0
- Determine which destinations the workload actually needs
- Update the destination ranges to specific CIDR blocks, VPC endpoints, or Google service ranges
- Save and verify workloads still reach their required services
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP GDPR (SaaS Security) GDPR-25.1 HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: low Bucket Versioning Disabled fix difficulty: easy #
Enable object versioning on GCP Storage buckets to protect against accidental deletion
- Navigate to GCP Console > Cloud Storage > Buckets
- Select the bucket without versioning
- Click Edit bucket and enable Object Versioning
- Save changes
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC8.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.DS-01 GDPR (SaaS Security) GDPR-32.1c HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high Security Contact Missing fix difficulty: easy #
Add a security notification contact to GCP Essential Contacts for the project
- Navigate to GCP Console > Essential Contacts
- Click Add Essential Contact
- Add a security notification category contact with a monitored email address
- Save changes
Satisfies: ISO 27001:2022 A.8.27 SOC 2 Type II CC2.1 CIS Controls v8 CIS-04.6 NIST CSF 2.0 DE.CM GDPR (SaaS Security) GDPR-32.1d HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Essential Contacts Coverage Incomplete fix difficulty: easy #
Add essential contacts for TECHNICAL_INCIDENTS, LEGAL, and BILLING notifications
- Navigate to GCP Console > Essential Contacts
- Click "Add essential contact"
- Add contacts for each missing notification category (Technical Incidents, Legal, Billing)
- Use monitored distribution lists rather than individual accounts where possible
- Save each contact and verify the category subscriptions
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP GDPR (SaaS Security) GDPR-25.1 HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Instance Serial Port Enabled fix difficulty: easy #
Disable serial port access on Compute Engine instances to prevent unauthorized interactive access (CIS GCP 4.5)
- Navigate to GCP Console > Compute Engine > VM Instances
- Select the flagged instance and click Edit
- Under Remote access, uncheck Enable connecting to serial ports
- Save changes
- Alternatively enforce via GCP Org Policy constraints/compute.disableSerialPortAccess
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP GDPR (SaaS Security) GDPR-25.1 HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Shielded VM Disabled fix difficulty: easy #
Enable Shielded VM (vTPM and integrity monitoring) on Compute Engine instances to protect against boot-level threats
- Navigate to GCP Console > Compute Engine > VM Instances
- Select the flagged instance and stop it
- Click Edit and expand the Shielded VM section
- Enable Turn on vTPM and Turn on Integrity Monitoring
- Save changes and start the instance
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP GDPR (SaaS Security) GDPR-25.1 HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Default VPC In Use fix difficulty: hard #
Replace the default VPC network with a custom VPC to enforce explicit network segmentation (CIS GCP 3.1)
- Navigate to GCP Console > VPC Network > VPC Networks
- Create a new custom-mode VPC network with subnets sized for your workloads
- Migrate existing resources (Compute Engine instances, GKE clusters) to the new VPC
- Delete the default VPC network once all resources have been migrated
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP GDPR (SaaS Security) GDPR-25.1 HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high Cloud SQL Instance Has Public IP fix difficulty: medium #
Configure Cloud SQL instances to use private IP only to avoid direct internet exposure (CIS GCP 6.6)
- Navigate to GCP Console > SQL > Instances and select the flagged instance
- Click Edit, then open the Connections section
- Under Instance IP assignment, uncheck Public IP
- Ensure a Private IP with a valid VPC network is configured
- Save changes and restart the instance if required
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP GDPR (SaaS Security) GDPR-25.1 HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high Cloud SQL SSL Not Required fix difficulty: easy #
Require SSL/TLS for all connections to Cloud SQL instances to protect data in transit (CIS GCP 6.4)
- Navigate to GCP Console > SQL > Instances and select the flagged instance
- Click Edit, then open the Connections section
- Under Security, enable Require SSL
- Download and distribute the server CA certificate to all clients
- Save changes
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP GDPR (SaaS Security) GDPR-25.1 HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium MySQL skip_show_database Not Enabled fix difficulty: easy #
Set the skip_show_database database flag to on to restrict SHOW DATABASES to privileged users (CIS GCP 6.1.2)
- Navigate to GCP Console > SQL > Instances and select the MySQL instance
- Click Edit, then open the Flags section
- Add or update the skip_show_database flag to on
- Save and confirm the restart
Satisfies: ISO 27001:2022 A.8.27 SOC 2 Type II CC7.2 CIS Controls v8 CIS-06.1 NIST CSF 2.0 DE.CM NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium MySQL local_infile Enabled fix difficulty: easy #
Set the local_infile database flag to off to prevent loading local files (CIS GCP 6.1.3)
- Navigate to GCP Console > SQL > Instances and select the MySQL instance
- Click Edit, then open the Flags section
- Add or update the local_infile flag to off
- Save and confirm the restart
Satisfies: ISO 27001:2022 A.8.27 SOC 2 Type II CC7.2 CIS Controls v8 CIS-06.1 NIST CSF 2.0 DE.CM NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Cloud SQL Backup Not Enabled fix difficulty: easy #
Enable automated backups on Cloud SQL instances to ensure data recovery capability (CIS GCP 6.7)
- Navigate to GCP Console > SQL > Instances and select the flagged instance
- Click Edit, then open the Backups section
- Enable Automated backups and set an appropriate backup window
- Optionally enable Point-in-time recovery for finer-grained restore
- Save changes
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP GDPR (SaaS Security) GDPR-25.1 HIPAA (SaaS Security) HIPAA-308.a1 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high Cloud KMS Key Rotation Period Exceeds 90 Days fix difficulty: easy #
Configure Cloud KMS key rotation to occur at least every 90 days — CIS GCP 1.10
- Navigate to GCP Console > Security > Key Management
- Select the flagged crypto key
- Click Edit and update the rotation period to 90 days or fewer
- Save changes
Satisfies: ISO 27001:2022 A.8.24 SOC 2 Type II CC7.1 CIS Controls v8 CIS-03.6 NIST CSF 2.0 PR.DS-01 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Cloud KMS Encryption Key Has No Rotation Schedule fix difficulty: easy #
Enable automatic key rotation on Cloud KMS ENCRYPT_DECRYPT keys — CIS GCP 1.10
- Navigate to GCP Console > Security > Key Management
- Select the flagged crypto key
- Click Edit and set a rotation period of 90 days or fewer
- Save changes
Satisfies: ISO 27001:2022 A.8.24 SOC 2 Type II CC7.1 CIS Controls v8 CIS-03.6 NIST CSF 2.0 PR.DS-01 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high Cloud KMS Key Primary Version Not Active fix difficulty: medium #
Ensure Cloud KMS crypto keys have an active primary key version to prevent encryption failures
- Navigate to GCP Console > Security > Key Management
- Select the flagged crypto key and review the primary key version status
- If DISABLED, re-enable the primary version
- If DESTROYED or DESTROY_SCHEDULED, create a new key version and set it as primary
- Update all applications to use the new primary key version
Satisfies: ISO 27001:2022 A.8.24 SOC 2 Type II CC7.1 CIS Controls v8 CIS-03.6 NIST CSF 2.0 PR.DS-01 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: low Cloud KMS Key Uses Software Protection Level fix difficulty: hard #
Migrate Cloud KMS keys to HSM protection level for hardware-backed key security
- Navigate to GCP Console > Security > Key Management
- Create a new key ring or key with HSM protection level
- Re-encrypt data with the new HSM-backed key
- Update application references to use the new key
- Disable and schedule destruction of the old SOFTWARE-protection key
Satisfies: ISO 27001:2022 A.8.24 SOC 2 Type II CC7.1 CIS Controls v8 CIS-03.6 NIST CSF 2.0 PR.DS-01 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Secret Manager Secret Has No Rotation fix difficulty: medium #
Enable automatic rotation for Secret Manager secrets to reduce the risk of long-lived credentials
- Navigate to GCP Console > Security > Secret Manager
- Select the flagged secret and click Edit
- Enable automatic rotation and configure a rotation schedule
- Ensure a rotation function (Cloud Functions or Cloud Run) is set up to handle rotation events
- Save changes and verify the first rotation completes successfully
Satisfies: ISO 27001:2022 A.8.24 SOC 2 Type II CC7.1 CIS Controls v8 CIS-03.6 NIST CSF 2.0 PR.DS-01 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: low Secret Manager Secret Has No Versioning fix difficulty: easy #
Ensure Secret Manager secrets have at least 2 versions to confirm rotation is occurring
- Navigate to GCP Console > Security > Secret Manager
- Select the flagged secret
- Add a new secret version with the rotated credential value
- Update dependent applications to use the latest version
- Disable the old version once the new version is confirmed working
Satisfies: ISO 27001:2022 A.8.24 SOC 2 Type II CC7.1 CIS Controls v8 CIS-03.6 NIST CSF 2.0 PR.DS-01 NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high GKE Network Policy Disabled fix difficulty: medium #
Enable network policy enforcement on GKE clusters to control pod-to-pod traffic (CIS GKE 6.6.7)
- Navigate to GCP Console > Kubernetes Engine > Clusters
- Select the flagged cluster and click Edit
- Under Networking, enable Network policy
- Save changes — this may restart nodes in a rolling update
- Deploy Kubernetes NetworkPolicy resources to define allowed traffic between pods
Satisfies: ISO 27001:2022 A.8.20 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high GKE Private Cluster Disabled fix difficulty: hard #
Create a new private GKE cluster with private nodes to prevent direct internet exposure (CIS GKE 6.6.2)
- Note that enabling private nodes requires cluster recreation — it cannot be changed on an existing cluster
- Create a new GKE cluster with Enable private nodes selected under Networking
- Configure a private endpoint or master authorized networks to allow cluster management access
- Migrate workloads to the new private cluster
- Delete the old non-private cluster
Satisfies: ISO 27001:2022 A.8.20 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium GKE Shielded Nodes Disabled fix difficulty: easy #
Enable Shielded Nodes on the GKE cluster to protect node integrity against boot-level attacks (CIS GKE 6.5.5)
- Navigate to GCP Console > Kubernetes Engine > Clusters
- Select the flagged cluster and click Edit
- Under Security, enable Shielded nodes
- Save changes — nodes will be recreated in a rolling update
Satisfies: ISO 27001:2022 A.8.27 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium GKE Release Channel Not Set fix difficulty: easy #
Enroll the GKE cluster in the REGULAR or STABLE release channel to receive automatic Kubernetes security updates (CIS GKE 6.5.3)
- Navigate to GCP Console > Kubernetes Engine > Clusters
- Select the flagged cluster and click Edit
- Under Release channel, select REGULAR or STABLE
- Save changes
Satisfies: ISO 27001:2022 A.8.27 SOC 2 Type II CC8.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium GKE Binary Authorization Disabled fix difficulty: medium #
Enable Binary Authorization on the GKE cluster to enforce image provenance policies (CIS GKE 6.10.2)
- Navigate to GCP Console > Kubernetes Engine > Clusters
- Select the flagged cluster and click Edit
- Under Security, enable Binary Authorization
- Save changes
- Configure a Binary Authorization policy in Security > Binary Authorization to define which images are allowed
Satisfies: ISO 27001:2022 A.8.27 SOC 2 Type II CC8.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium GKE Database Encryption Disabled fix difficulty: medium #
Enable application-layer secrets encryption on the GKE cluster using a Cloud KMS key (CIS GKE 6.3.1)
- Navigate to GCP Console > Security > Key Management and create or select an existing KMS key
- Grant the GKE service account the roles/cloudkms.cryptoKeyEncrypterDecrypter role on the key
- Navigate to GCP Console > Kubernetes Engine > Clusters
- Select the flagged cluster and click Edit
- Under Security, enable Application-layer secrets encryption and select the KMS key
- Save changes
Satisfies: ISO 27001:2022 A.8.27 SOC 2 Type II CC6.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: low GKE Intranode Visibility Disabled fix difficulty: easy #
Enable intranode visibility on the GKE cluster to expose pod-to-pod traffic to VPC flow logs
- Navigate to GCP Console > Kubernetes Engine > Clusters
- Select the flagged cluster and click Edit
- Under Networking, enable Intranode visibility
- Save changes — nodes will be recreated in a rolling update
- Ensure VPC flow logs are enabled on the cluster subnetwork to capture the traffic
Satisfies: ISO 27001:2022 A.8.27 SOC 2 Type II CC7.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high GKE Logging Disabled fix difficulty: easy #
Enable Cloud Logging on the GKE cluster to capture audit and system logs (CIS GKE 6.7.1)
- Navigate to GCP Console > Kubernetes Engine > Clusters
- Select the flagged cluster and click Edit
- Under Features, set Cloud Logging to System and workloads
- Save changes
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC7.1 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.CM NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high GKE Node Pool Auto-Upgrade Disabled fix difficulty: easy #
Enable automatic node upgrades on GKE node pools to ensure nodes receive security patches (CIS GKE 6.5.1)
- Navigate to GCP Console > Kubernetes Engine > Clusters
- Select the cluster containing the flagged node pool
- Click the node pool name, then click Edit
- Under Management, enable Automatic node upgrades
- Save changes
Satisfies: ISO 27001:2022 A.8.27 SOC 2 Type II CC8.1 CIS Controls v8 CIS-04.1 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high Cloud Logging Sink Missing fix difficulty: medium #
Create an enabled Cloud Logging sink with an empty filter to export all log entries (CIS 2.2)
- Navigate to GCP Console > Logging > Log Router
- Click Create Sink
- Name the sink and select a destination (Cloud Storage, BigQuery, or Pub/Sub)
- Leave the inclusion filter empty to capture all logs
- Ensure the sink is enabled
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC7.2 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.CM NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Log Metric for Project Ownership Missing fix difficulty: medium #
Create a log-based metric to track project ownership assignment changes (CIS 2.4)
- Navigate to GCP Console > Logging > Log-based Metrics
- Click Create Metric
- Set the metric name to project-ownership-assignments
- Set the filter to track protoPayload.serviceName="cloudresourcemanager.googleapis.com" AND ProjectOwnership changes
- Save the metric
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC7.2 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.CM NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Log Metric for Audit Config Changes Missing fix difficulty: medium #
Create a log-based metric to track audit configuration changes (CIS 2.5)
- Navigate to GCP Console > Logging > Log-based Metrics
- Click Create Metric
- Set the metric name to audit-config-changes
- Set the filter to track protoPayload.methodName="SetIamPolicy" with audit config changes
- Save the metric
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC7.2 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.CM NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Log Metric for Custom Role Changes Missing fix difficulty: medium #
Create a log-based metric to track custom IAM role changes (CIS 2.6)
- Navigate to GCP Console > Logging > Log-based Metrics
- Click Create Metric
- Set the metric name to custom-role-changes
- Set the filter to track protoPayload.serviceName="iam.googleapis.com" AND custom role mutations
- Save the metric
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC7.2 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.CM NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Alert Policy Disabled fix difficulty: easy #
Enable the disabled alert policy to ensure monitoring coverage
- Navigate to GCP Console > Monitoring > Alerting
- Locate the flagged alert policy
- Click Edit and toggle the Enabled switch on
- Save changes
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC7.2 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.AE NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high Alert Policy Has No Notification Channels fix difficulty: easy #
Add notification channels to the alert policy so incidents are delivered to responders
- Navigate to GCP Console > Monitoring > Alerting
- Click Edit on the flagged alert policy
- Under Notifications, add at least one notification channel (email, Slack, PagerDuty, etc.)
- Save changes
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC7.2 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.AE NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Log Metric Project Ownership Alert Missing fix difficulty: medium #
Create an alert policy for the project-ownership-assignments log metric with notification channels (CIS 2.4)
- Navigate to GCP Console > Monitoring > Alerting
- Click Create Policy
- Add a condition using the log-based metric logging/user/project-ownership-assignments
- Set a threshold of > 0 with a 1-minute window
- Add at least one notification channel
- Save the policy
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC7.2 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.AE NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Log Metric Audit Config Alert Missing fix difficulty: medium #
Create an alert policy for the audit-config-changes log metric with notification channels (CIS 2.5)
- Navigate to GCP Console > Monitoring > Alerting
- Click Create Policy
- Add a condition using the log-based metric logging/user/audit-config-changes
- Set a threshold of > 0 with a 1-minute window
- Add at least one notification channel
- Save the policy
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC7.2 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.AE NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium Log Metric Custom Role Alert Missing fix difficulty: medium #
Create an alert policy for the custom-role-changes log metric with notification channels (CIS 2.6)
- Navigate to GCP Console > Monitoring > Alerting
- Click Create Policy
- Add a condition using the log-based metric logging/user/custom-role-changes
- Set a threshold of > 0 with a 1-minute window
- Add at least one notification channel
- Save the policy
Satisfies: ISO 27001:2022 A.8.9 SOC 2 Type II CC7.2 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.AE NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: high DNS DNSSEC Disabled fix difficulty: medium #
Enable DNSSEC on the public DNS managed zone to protect against DNS spoofing (CIS 3.3)
- Navigate to GCP Console > Network Services > Cloud DNS
- Select the flagged managed zone
- Click DNSSEC and set the state to On
- Save changes and update DS records at your domain registrar
Satisfies: ISO 27001:2022 A.8.24 SOC 2 Type II CC6.6 CIS Controls v8 CIS-12.6 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium DNS DNSSEC RSASHA1 Key-Signing Key fix difficulty: hard #
Replace the RSASHA1 key-signing algorithm with a stronger algorithm such as RSASHA256 or ECDSAP256SHA256 (CIS 3.4)
- Navigate to GCP Console > Network Services > Cloud DNS
- Select the flagged managed zone
- Disable DNSSEC temporarily, then re-enable with a stronger key-signing algorithm
- Update DS records at your domain registrar with the new key
Satisfies: ISO 27001:2022 A.8.24 SOC 2 Type II CC6.6 CIS Controls v8 CIS-12.6 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium DNS DNSSEC RSASHA1 Zone-Signing Key fix difficulty: hard #
Replace the RSASHA1 zone-signing algorithm with a stronger algorithm such as RSASHA256 or ECDSAP256SHA256 (CIS 3.5)
- Navigate to GCP Console > Network Services > Cloud DNS
- Select the flagged managed zone
- Disable DNSSEC temporarily, then re-enable with a stronger zone-signing algorithm
- Update DS records at your domain registrar with the new key
Satisfies: ISO 27001:2022 A.8.24 SOC 2 Type II CC6.6 CIS Controls v8 CIS-12.6 NIST CSF 2.0 PR.IP NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium DNS Logging Disabled fix difficulty: easy #
Enable DNS query logging on the managed zone for audit and security monitoring (CIS 2.12)
- Navigate to GCP Console > Network Services > Cloud DNS
- Select the flagged managed zone
- Click Edit, then enable Cloud Logging
- Save changes
Satisfies: ISO 27001:2022 A.8.20 SOC 2 Type II CC7.2 CIS Controls v8 CIS-08 NIST CSF 2.0 DE.CM NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium No IAM Deny Policy Configured fix difficulty: medium #
Configure an IAM deny policy to establish a baseline block on sensitive permissions
- Navigate to GCP Console > IAM & Admin > Deny Policies
- Create a deny policy at the project, folder, or organization level
- Add rules denying sensitive permissions such as service account key creation
- Re-run the scan to confirm the finding clears
Satisfies: NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium IAM Deny Policy Does Not Cover Service Account Key Creation fix difficulty: medium #
Add or adjust an IAM deny rule to unconditionally block service account key creation
- Navigate to GCP Console > IAM & Admin > Deny Policies
- Open an existing deny policy or create a new one
- Add a rule denying iam.googleapis.com/serviceAccountKeys.create for all principals, with no exceptions or conditions
- Re-run the scan to confirm the finding clears
Satisfies: NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10
severity: medium IAM Deny Policy Has Overly Broad Exception Principals fix difficulty: medium #
Narrow the exception principals on an IAM deny rule so they do not nullify the denial
- Navigate to GCP Console > IAM & Admin > Deny Policies
- Open the flagged deny policy and locate the rule with broad exception principals
- Replace the broad exception (public:all or a customer-wide identity) with specific, justified principals
- Re-run the scan to confirm the finding clears
Satisfies: NIS2 Directive NIS2-21.e.4 DORA (SaaS Security) DORA-9.10