VPC Service Controls (VPC-SC) is a Google Cloud security feature that creates service perimeters—logical boundaries—around projects and Google-managed services like Cloud Storage and BigQuery. This adds an extra layer of defense beyond IAM, focusing on context-based perimeter security to control where data can move rather than just who can access it. The main goal is protecting sensitive data from threats like compromised insiders, misconfigured IAM policies, and vulnerable services by preventing unauthorized data copying or transfer outside the trusted zone.
VPC-SC reduces exfiltration risk by enforcing specific controls within a perimeter. It prevents clients inside the perimeter from accessing unauthorized public resources outside it and blocks data copying operations to destinations outside the boundary. For necessary communication across boundaries, it uses ingress and egress rules to secure data exchange. It also enables context-aware access, allowing access decisions based on client attributes such as identity, device data, and network origin. This ensures access is granted only under trusted conditions, adding a significant barrier against data leakage.
Implementing VPC-SC involves creating an access policy at the organization or folder level, then securing Google-managed resources by creating service perimeters with specific projects and APIs. A best practice is starting in dry run mode, which logs potential violations without blocking access, allowing safe testing before enforcement. Administrators can add granular controls like VPC accessible services to restrict which services can be reached from within the perimeter and configure private connectivity for enhanced security.
An access policy functions as an organizational container managed through Access Context Manager to host service perimeters and access levels. A service perimeter creates a secure boundary around sensitive Google-managed services and projects to prevent unwarranted data exfiltration. While IAM controls identity-based permissions, VPC Service Controls adds an independent layer of context-based perimeter security. When designing perimeters around a Shared VPC, administrators must include both the host project and all associated service projects within the perimeter to avoid unexpected connectivity loss.
Organizations enforce granular boundary segmentation by configuring context-aware access based on specific client attributes rather than simple network location. Granular ingress and egress policies evaluate distinct contextual parameters: user identity distinguishes between authorized human users and service accounts, network origin restricts incoming API traffic to authorized public IP address ranges or designated internal VPC networks, and device security posture enforces client device health using Certificate-Based Access (CBA). These parameters guarantee that data cannot be exfiltrated to unauthorized external resources without satisfying explicit multidimensional criteria.
To minimize internal exposure, administrators configure VPC accessible services to restrict network endpoints inside the perimeter to only approved APIs. Outbound traffic is restricted by directing API calls to the restricted VIP (199.36.153.4/30) using custom Cloud DNS response policies and outbound firewall rules. Administrative connections to virtual machines via SSH and RDP must be protected through Identity-Aware Proxy (IAP) TCP forwarding, ensuring all administrative traffic is evaluated against context-aware ingress rules.
Diagnosing policy violations requires testing perimeter changes using dry run mode before enabling strict enforcement. In dry run mode, VPC Service Controls evaluates API traffic and logs simulated violations to Cloud Audit Logs without blocking valid workflows. Security engineers analyze these diagnostic logs to trace failed calls, unlisted dependencies, and misconfigured IP ranges. After verifying that all legitimate traffic passes, switching the perimeter to enforced mode establishes active boundary protection without business disruption.
VPC Service Controls helps protect data from unauthorized access and data exfiltration. A service perimeter acts like a virtual wall around your Google Cloud projects and resources, blocking requests from outside unless you explicitly allow them. When you set up a perimeter, you choose which Google Cloud services you want to protect, and only requests from within the perimeter can access those services.
A common unified perimeter covers all projects and resources, providing the strongest protection and simpler management because your team only handles north-south traffic from the internet. However, some organizations need multiple perimeters for different purposes, such as keeping healthcare data separate or meeting compliance requirements like PCI DSS. When using multiple perimeters, you must also manage east-west traffic between them, which adds complexity. Google recommends keeping perimeter designs as simple as possible and avoiding complex setups with many perimeter bridges.
To control what traffic flows in and out, you use ingress rules and egress rules. An ingress rule controls who can access resources inside your perimeter from outside, while an egress rule controls what resources inside can access outside. These rules let you specify which identities, IP addresses, or access levels are allowed to communicate across the perimeter. You can also control specific API methods or operations for fine-grained data exchange.
Access levels define conditions that must be met before someone can access resources inside a perimeter, such as requiring users to be on a corporate network or using a specific IP range. When you need to allow communication between two different perimeters, you can use a perimeter bridge, which creates a controlled connection between them. However, Google recommends avoiding multiple bridges because they become difficult to manage and may create security gaps. Consider whether a single unified perimeter or careful use of ingress/egress rules can meet your needs instead.
When designing your service perimeter, enable all protected services to reduce possible exfiltration paths. If you choose not to protect certain APIs, document why and get proper approval. All new projects should go through a review process before being added to a perimeter. Remember that service perimeters don't replace IAM controls—you should still follow the principle of least privilege. Finally, test your perimeter using dry-run mode before enforcing it to ensure it works as expected.
Professional Cloud Security Engineer
Gauge your current knowledge
Gauge your current knowledge