CIS Benchmarks for Google Cloud Platform: A Practical Security Hardening Guide
Learn how to implement CIS Benchmarks for GCP to harden your Google Cloud infrastructure. Covers IAM, Cloud Storage, VPC, Compute Engine, Cloud SQL, and logging controls with practical guidance for SOC 2 and ISO 27001 compliance.
Key Takeaways
- CIS GCP Foundation Benchmark v4.0.0 provides 100+ security controls across IAM, networking, compute, storage, databases, and logging.
- Security Command Center automates compliance scanning with certified detector mappings to CIS benchmarks.
- Common misconfigurations include overly permissive firewall rules, public storage buckets, and default service accounts on compute instances.
- Mapping to compliance frameworks like SOC 2 and ISO 27001 is straightforward since both require the same fundamental controls.
- Start with high-impact controls in IAM and networking before moving to service-specific configurations.
If you're running infrastructure on Google Cloud Platform, you've likely encountered the question: "How do we know our GCP environment is actually secure?" The CIS Benchmarks for GCP provide a concrete answer, offering consensus-driven security guidelines that translate abstract security requirements into specific, actionable configurations.
This guide covers what the CIS GCP Benchmarks are, the key controls you need to implement, common misconfigurations we encounter during audits, and how these controls map to compliance frameworks like SOC 2 and ISO 27001.
What Are CIS Benchmarks for GCP?
The Center for Internet Security (CIS) publishes security configuration guidelines for major cloud platforms, operating systems, and applications. For Google Cloud, the primary document is the CIS Google Cloud Platform Foundation Benchmark, currently at version 4.0.0 (published May 2025).
The benchmark provides prescriptive guidance covering:
- Identity and Access Management (IAM): Service account configuration, role assignments, authentication requirements
- Logging and Monitoring: Audit logging, metric filters, alerting configuration
- Networking: VPC configuration, firewall rules, flow logs
- Virtual Machines: Compute Engine security settings, disk encryption, OS hardening
- Cloud Storage: Bucket access controls, encryption, logging
- Cloud SQL: Database security, encryption, backup configuration
- Kubernetes Engine: GKE-specific security controls (covered in a separate CIS GKE Benchmark)
Each control includes a rationale explaining why it matters, audit procedures to check compliance, and remediation steps to fix issues.
Key CIS Controls by Service Area
Identity and Access Management
IAM misconfigurations represent some of the highest-risk issues in GCP environments. The CIS Benchmark emphasizes several critical controls:
Use corporate login credentials instead of personal accounts. Google Cloud should be accessed through Cloud Identity or Google Workspace accounts managed by your organization, not personal Gmail accounts. This enables centralized user lifecycle management, consistent authentication policies, and proper offboarding when employees leave.
Enforce multi-factor authentication for all non-service accounts. MFA should be mandatory for all human users, ideally using hardware security keys for privileged accounts. This control alone blocks the majority of credential-based attacks.
Avoid granting Service Account User or Service Account Token Creator roles at the project level. These roles allow users to impersonate service accounts, effectively bypassing IAM restrictions. Grant these permissions only at the service account level when absolutely necessary.
Rotate user-managed service account keys every 90 days. Better yet, avoid user-managed keys entirely by using workload identity federation, which eliminates the need for long-lived credentials. If you must use keys, implement automated rotation.
Never grant primitive roles (Owner, Editor, Viewer) in production. These legacy roles are overly broad. Use predefined roles or custom roles that follow the principle of least privilege.
Cloud Storage
Public storage buckets remain one of the most common causes of data breaches in cloud environments:
Ensure buckets are not anonymously or publicly accessible. Check that neither allUsers nor allAuthenticatedUsers have access to your buckets. The allAuthenticatedUsers permission is particularly dangerous because it sounds restrictive but actually grants access to anyone with any Google account.
Enable uniform bucket-level access. This simplifies permission management by disabling per-object ACLs, ensuring all access is controlled through IAM policies. It's easier to audit and reduces the risk of accidentally exposing individual objects.
Configure Cloud Storage access logging. Enable access logs to track who accessed what data and when. This is essential for incident investigation and compliance evidence.
VPC and Networking
Network security controls create defense-in-depth by limiting blast radius and preventing lateral movement:
Restrict SSH and RDP access from the internet. The benchmark explicitly prohibits allowing SSH (port 22) or RDP (port 3389) from 0.0.0.0/0. Use Identity-Aware Proxy (IAP) or bastion hosts instead, which provide authenticated, logged access without exposing management ports to the internet.
Enable VPC Flow Logs for every subnet. Flow logs capture network traffic metadata, enabling you to detect anomalies, investigate incidents, and demonstrate network monitoring for compliance purposes. The performance impact is minimal, and the visibility gained is substantial.
Avoid overly permissive firewall rules. Review rules that allow traffic from any source (0.0.0.0/0) or to any destination. Each firewall rule should have a documented business justification, and rules should be as specific as possible regarding source, destination, and ports.
Configure Private Google Access. This allows VMs without external IP addresses to reach Google APIs and services, enabling you to keep workloads fully private while still accessing GCP services.
Compute Engine
VM security settings protect your compute workloads from various attack vectors:
Enable OS Login at the project level. OS Login integrates with IAM for SSH access management, eliminating the need to manage SSH keys manually and providing centralized access control with audit logging.
Block project-wide SSH keys for individual instances. Even with OS Login enabled, project-wide SSH keys can provide a backdoor. Explicitly block these at the instance level for sensitive workloads.
Enable Shielded VM features. Shielded VMs provide verified boot integrity and protection against bootkits and rootkits. Enable Secure Boot, vTPM, and integrity monitoring for production workloads.
Avoid using default service accounts. The default Compute Engine service account has the Editor role on the project, and when VMs are configured with the cloud-platform access scope, workloads inherit broad read/write access to most Google Cloud services. Create dedicated service accounts with only the permissions each workload requires.
Use customer-managed encryption keys (CMEK) for sensitive workloads. While Google-managed encryption is adequate for many use cases, CMEK provides additional control and meets requirements for organizations that must manage their own keys.
Cloud SQL
Database security requires attention to network access, encryption, and operational controls:
Require SSL/TLS for all connections. Configure Cloud SQL instances to require encrypted connections, preventing data interception and man-in-the-middle attacks.
Avoid assigning public IP addresses to database instances. Keep databases in private networks and access them through Private Service Connect, Cloud SQL Auth Proxy, or VPN connections. If you absolutely need public access, restrict it to specific IP ranges.
Enable automated backups. The CIS Benchmark requires automated backups to be configured for all Cloud SQL instances. This protects against data loss from application errors, malicious activity, or infrastructure failures.
Configure point-in-time recovery. Beyond daily backups, enable binary logging (for MySQL) or continuous archiving (for PostgreSQL) to allow recovery to any point within your retention window.
Logging and Monitoring
Comprehensive logging is essential for security monitoring and incident response:
Configure Cloud Audit Logging across all services. Admin Activity logs are enabled by default, but Data Access logs must be explicitly enabled. Configure these for services processing sensitive data.
Create log sinks for all audit entries. Export logs to Cloud Storage, BigQuery, or Pub/Sub for long-term retention and analysis. This ensures logs survive even if an attacker gains access to modify or delete them within Cloud Logging.
Set up metric filters and alerts for critical events. The CIS Benchmark specifies alerts for:
- Project ownership changes
- Audit configuration changes
- Custom role modifications
- VPC network changes
- Firewall rule changes
- Network route changes
- Cloud Storage IAM permission changes
- SQL instance configuration changes
These alerts provide early warning of potentially malicious configuration changes.
Common GCP Misconfigurations We Find During Audits
Based on our compliance and security work with GCP customers, these issues appear repeatedly:
Overly Permissive Firewall Rules
We frequently find firewall rules allowing SSH from 0.0.0.0/0 that were created during initial setup and never locked down. The same applies to database ports exposed to the internet "temporarily" for development access that became permanent.
The fix: audit all firewall rules allowing traffic from any source. Replace broad rules with specific IP ranges or, better, use IAP for authenticated access.
Default Service Accounts Everywhere
Many organizations deploy Compute Engine instances using the default service account because it's the path of least resistance. This grants Editor-level permissions to workloads that might only need access to a single bucket or API.
The fix: create workload-specific service accounts with custom roles containing only necessary permissions.
VPC Flow Logs Disabled
Flow logs are disabled by default, so environments built without explicit attention to security often lack this visibility. When an incident occurs, investigators have no network traffic data to analyze.
The fix: enable flow logs for all subnets, using a sampling rate appropriate for your traffic volume and cost tolerance.
Public Cloud Storage Buckets
Sometimes intentional (for public assets), sometimes accidental (misconfigured IAM), public buckets appear regularly in our assessments. The dangerous case is when the bucket was meant to be private but someone granted allUsers access without understanding the implications.
The fix: audit all bucket IAM policies for allUsers and allAuthenticatedUsers. Use organization policies to prevent public access at the organization level if you never need public buckets.
Unencrypted Database Connections
Cloud SQL instances allowing unencrypted connections create risk for data interception, particularly if traffic traverses networks you don't fully control.
The fix: enable the "require SSL" setting on all Cloud SQL instances and update connection strings to use SSL.
Using Security Command Center for CIS Compliance
Google Cloud's Security Command Center (SCC) provides automated compliance scanning against CIS Benchmarks. SCC includes Security Health Analytics, which maps detectors to CIS controls and generates findings when configurations don't meet benchmark requirements.
Key capabilities include:
Compliance dashboard: View compliance percentage across your organization, broken down by control and resource.
Daily scans: SCC runs daily compliance checks and updates findings automatically.
Finding remediation: Each finding includes remediation guidance and links to documentation.
Multiple benchmark versions: SCC supports CIS GCP Foundation Benchmark versions v1.0.0 through v2.0.0, with CIS certification on detector mappings. Note that the latest CIS benchmark (v4.0.0) is not yet fully supported in SCC; for comprehensive v4.0.0 compliance scanning, consider supplementing with the official GCP CIS InSpec Profile or third-party tools.
One limitation to note: not all CIS controls can be automated. Some require manual review or organizational processes that can't be detected through API scanning. SCC compliance percentages represent automated checks only.
Mapping CIS Benchmarks to SOC 2 and ISO 27001
If you're pursuing SOC 2 Type 2 or ISO 27001 certification, CIS Benchmark compliance provides strong coverage of the technical controls these frameworks require.
SOC 2 Alignment
The SOC 2 Trust Services Criteria map directly to CIS controls:
| SOC 2 Criteria | CIS Benchmark Coverage |
|---|---|
| CC6.1 (Logical access) | IAM controls, MFA requirements, service account restrictions |
| CC6.6 (External threats) | Firewall rules, network security, IAP configuration |
| CC6.7 (Data in transmission) | SSL/TLS requirements, encryption in transit, VPC security |
| CC7.2 (Monitoring) | Metric filters, alerts, audit logging configuration |
| CC8.1 (Change management) | Audit logging for configuration changes |
ISO 27001 Alignment
ISO 27001 Annex A controls also align with CIS recommendations. The table below references ISO 27001:2022 control categories:
| ISO 27001:2022 Control | CIS Benchmark Coverage |
|---|---|
| A.5.15-5.18 (Access control) | IAM policies, authentication requirements |
| A.8.24 (Use of cryptography) | Encryption at rest and in transit requirements |
| A.8.15-8.16 (Logging and monitoring) | Logging, monitoring, backup configuration |
| A.8.20-8.22 (Network security) | VPC, firewall, flow log requirements |
| A.8.25-8.31 (Secure development) | Secure configuration baselines |
Implementing CIS Benchmarks doesn't automatically make you compliant with either framework, but it addresses the majority of technical controls auditors will examine.
GCP Security Hardening Checklist
Use this checklist to assess your current CIS Benchmark compliance:
IAM
- Corporate identity provider integrated with Cloud Identity
- MFA enforced for all human users
- No primitive roles (Owner/Editor/Viewer) in production
- Service accounts use workload identity or rotated keys
- No Service Account User role at project level
Networking
- No SSH/RDP allowed from 0.0.0.0/0
- VPC Flow Logs enabled on all subnets
- Firewall rules documented and reviewed
- Private Google Access configured
- IAP used for administrative access
Compute
- OS Login enabled at project level
- Shielded VM features enabled
- No default service accounts on instances
- Project-wide SSH keys blocked
- CMEK configured for sensitive workloads
Storage
- No public bucket access
- Uniform bucket-level access enabled
- Access logging configured
- Retention policies set appropriately
Databases
- SSL/TLS required for all connections
- No public IP addresses on instances
- Automated backups enabled
- Point-in-time recovery configured
Logging
- Data Access audit logs enabled
- Log sinks configured for retention
- Metric filters for critical events
- Alerts configured and tested
Frequently Asked Questions
The CIS Google Cloud Platform Foundation Benchmark is currently at version 4.0.0, published in May 2025. Google Cloud Security Command Center currently supports benchmark versions up to v2.0.0 with certified detector mappings. For v4.0.0 compliance, consider supplementing with the official GCP CIS InSpec Profile or third-party tools.
The CIS GCP Foundation Benchmark includes over 100 controls across seven sections: IAM, Logging and Monitoring, Networking, Virtual Machines, Storage, Cloud SQL Database Services, and BigQuery.
Yes. Security Command Center includes Security Health Analytics, which automatically scans for CIS Benchmark compliance. CIS certifies the mappings between SCC detectors and benchmark controls.
CIS compliance isn't explicitly required for SOC 2, but the technical controls in CIS Benchmarks address many SOC 2 Trust Services Criteria. Auditors will examine your cloud configuration, and CIS-compliant environments typically pass without issues.
Security Command Center runs daily scans automatically. For manual assessments or third-party tools, monthly scans are typical, with additional scans after significant infrastructure changes.
CIS Controls are a prioritized set of 18 security actions applicable to any organization. CIS Benchmarks are platform-specific configuration guides. The GCP Foundation Benchmark implements many CIS Controls in Google Cloud context.
Bastion helps companies achieve SOC 2, ISO 27001, and other compliance certifications while ensuring their cloud infrastructure is genuinely secure. If you're working on GCP security hardening or preparing for a compliance audit, reach out to us.
Share this article
Related Articles
How Secure Is My Password? A Complete Guide to Password Security in 2026
Learn how to check if your password is secure, understand how attackers crack passwords, and implement best practices to protect your accounts. Includes password cracking time tables and practical guidance for both individuals and organizations.
OpenClaw Inbox Wipe: 7 AI Agent Security Lessons Every Startup Needs to Learn
An AI email tool deleted Meta's AI Alignment director's entire inbox and ignored stop commands. Here's what startups can learn about AI agent security, kill switches, and compliance controls.
OpenClaw Infostealer Attack: What the First AI Agent Identity Theft Means for Your Security
Infostealer malware stole OpenClaw AI agent configs, gateway tokens, and behavioral guidelines. With 135,000+ exposed instances and 1,184 malicious skills, here's what security teams need to know.
Learn More About Compliance
Explore our guides for deeper insights into compliance frameworks.
ISO 27017 and ISO 27018: Cloud Security Standards
ISO 27017 and ISO 27018 extend ISO 27001 with specific guidance for cloud computing environments. Understanding these standards helps cloud service providers and their customers address cloud-specific security and privacy requirements.
What is an Information Security Management System (ISMS)?
An Information Security Management System (ISMS) is at the heart of ISO 27001 certification. Understanding what an ISMS is and how to build one is essential for successful certification. This guide explains everything you need to know.
Security Update Management: Staying Protected
Security update management (also known as patch management) is about keeping software current and protected against known vulnerabilities. When a vulnerability is discovered and publicised, attackers often develop exploits quickly. Timely patching is one of the most effective ways to protect your organisation.
Other platforms check the box
We secure the box
Get in touch and learn why hundreds of companies trust Bastion to manage their security and fast-track their compliance.
Get Started