Your IAM is not mature if one compromised identity can still roam across your cloud estate.

Least privilege is not enough if a trusted identity gets compromised.
The real question is not who has access on paper, but how far that identity can move after takeover.
Principal Access Boundaries are the missing layer many Google Cloud IAM designs still ignore.
Most Google Cloud IAM programs are still built around one assumption: if you assign the right roles carefully enough, access risk becomes manageable. That assumption breaks the moment a legitimate identity is phished, a token is stolen, or a trusted service account is abused. At that point, the problem is no longer “who should have access?” but “how much of the cloud estate can this compromised principal still touch?” Google’s own security guidance now explicitly recommends Principal Access Boundary policies to limit principal access and help protect against phishing and data exfiltration.
That is why Principal Access Boundaries, or PAB, matter. A PAB does not grant access. It defines the set of resources a principal is eligible to access, and IAM then evaluates that boundary together with existing allow and deny policies. In other words, PAB is not another way to hand out permissions. It is a containment mechanism that limits the damage radius of already-trusted identities.
This is the mental model many teams are missing in 2026: IAM is not just about authorization before compromise. Mature IAM is also about containment after compromise. If an attacker hijacks a developer account or a deployment service account, your allow policies still matter, but they are no longer sufficient. You need a second line of control that says: even if this principal has useful permissions, it is still not eligible to roam across every project, folder, or organization resource. That is the strategic role of PAB.
What PAB changes that traditional least privilege does not
Traditional least privilege is role-centric. It asks whether a principal has only the permissions it needs. PAB adds a different dimension: resource eligibility. A principal may still have a powerful role, but a PAB can prevent IAM from allowing that role to be used outside a defined resource boundary for the permissions that the enforcement version covers. Google documents this explicitly: principal access boundary policies block some, but not all, IAM permissions, and the exact set depends on the enforcement version attached to the policy.
That nuance matters. PAB is not magic. It is powerful, but it is not universal. If a permission is not covered by the current enforcement version, PAB has no effect on that permission. Google also warns against blindly using latest as the enforcement version because future changes could unexpectedly remove access; instead, mature teams should treat enforcement versions as an intentional rollout decision, just like API versions or policy schema changes.
Why this is the missing control
Most organizations already understand allow policies. More advanced ones use deny policies. But both still leave a gap when a principal has legitimate permissions and then becomes untrusted. PAB fills that gap because IAM evaluates principal access boundary policies in combination with allow and deny policies, and if any one of those policies says the principal should not access a resource, access is prevented. That makes PAB especially valuable for limiting lateral movement and reducing exfiltration scope after identity compromise.
This is also why PAB feels more mature than another round of role cleanup. Role cleanup improves hygiene. PAB improves blast-radius control. Those are not the same thing. One helps you design better access. The other helps you survive when access design meets real-world compromise.
How to think about PAB architecturally
The cleanest way to think about PAB is: allow policies answer “what can this principal do?” and PAB answers “where can this principal do it?” Only allow policies can actually grant access, but PAB can make a principal ineligible to use that access outside a defined resource scope.
In practice, that means a strong design usually starts by identifying a principal set and a resource boundary that should remain tightly aligned. For example:
- production deployment service accounts should be eligible to access only production resources
- developer identities should be eligible to access only dev and staging projects
- third-party workforce identities should be eligible to access only explicitly approved folders or projects
Google supports binding PAB policies to multiple principal-set types, including organization principal sets, folder principal sets, project principal sets, Google Workspace domains, workforce pools, and workload identity pools. The policy itself is created at the organization level, but it can then be bound to the principal sets you want to constrain.
The most important design nuance almost everyone misses
Multiple PAB policies do not combine the way many engineers expect. Google’s documentation is clear: if any PAB policy makes a principal eligible to access a resource, then the principal is eligible to access that resource, regardless of the other PAB policies attached to that principal. In plain English, adding another PAB does not necessarily tighten access. It can widen the eligible resource set.
That single detail is enough to separate a mature rollout from a dangerous one. If your team treats PAB policies like stacked filters that progressively narrow scope, you will design the wrong control model. PAB requires deliberate policy composition. When you want to reduce scope, you usually need to edit or remove the policy that is widening eligibility, not just add one more restrictive-looking policy on top. Google also warns that if a principal is no longer subject to any PAB policy at all, that principal becomes eligible to access all Google Cloud resources again.
How mature teams should roll it out
The best rollout pattern is not “turn on PAB everywhere.” It is staged containment.
First, identify high-value identities: production service accounts, CI/CD identities, cross-project automation accounts, and privileged human operators. Second, map the smallest resource boundary each of those principals should ever need. Third, create PAB policies that reflect those boundaries and bind them carefully to the relevant principal sets. Google allows conditions in PAB policy bindings, but only with principal.type and principal.subject, which is enough to target service accounts specifically or exempt a tightly controlled break-glass identity.
That conditional binding capability is more useful than it first appears. It lets you keep an organization-wide boundary model while still carving out more restrictive treatment for a specific service account or excluding a tightly governed emergency admin. This is where PAB becomes operationally realistic rather than merely theoretically correct.
You should also plan for failure behavior. PAB evaluation is fail-closed: if IAM cannot evaluate a principal access boundary policy, access is denied. Google notes that this often happens when newly created principals are still propagating. That is a security-positive default, but it also means identity lifecycle timing matters during rollouts, automation, and incident response.
What to avoid
There are four common mistakes.
The first is treating PAB as a replacement for least privilege. It is not. PAB contains access; it does not design access.
The second is assuming that one additional PAB always reduces scope; as noted earlier, multiple PAB policies can expand eligibility if you are careless.
The third is forgetting enforcement-version coverage and assuming every permission will be constrained automatically.
The fourth is rolling out PAB without a principal-set strategy, which turns a containment control into a confusing access maze.
The 2026 IAM question
In 2026, the real IAM maturity question is no longer whether your organization can assign roles with reasonable discipline. It is whether a compromised identity can still traverse too much of your cloud estate before you detect and stop it.
That is why Principal Access Boundaries are the missing Google Cloud IAM control. They force IAM architecture to acknowledge breach reality. They move your model from static least privilege toward dynamic containment. And they give you something many cloud programs still lack: a principled way to say that trusted identities must still live inside hard resource boundaries. Google Cloud already gives you the mechanism. The maturity step is to start designing IAM as if one day your trusted principal will not be trustworthy at all.
🙏 If you found this article helpful, give it a 👏 and hit Follow — it helps more people discover it.
🌱 Good ideas tend to spread. I truly appreciate it when readers pass them along.
📬 I also write more focused content on JavaScript, React, Python, DevOps, and more — no noise, just useful insights. Take a look if you’re curious.
Why Principal Access Boundaries Are the Missing Google Cloud IAM Control in 2026 was originally published in Google Cloud – Community on Medium, where people are continuing the conversation by highlighting and responding to this story.
Source Credit: https://medium.com/google-cloud/why-principal-access-boundaries-are-the-missing-google-cloud-iam-control-in-2026-0c195c6a8825?source=rss—-e52cf94d98af—4
