Why they exist
Without boundaries, letting someone manage permissions means letting them grant themselves anything. A boundary lets you delegate that safely: a team lead can create service accounts and attach policies, and nothing they attach can reach past the ceiling you set.1
Write the ceiling
A policy describing the widest set of permissions anything in this team may
ever hold.
2
Attach it as a boundary
- Console
- API
- CLI
- Go
Open the user, service account or role and find its Permission
Boundary card. Choose Set Boundary and pick the policy. Once one
is set the button reads Change, and clearing it confirms with
Remove Permission Boundary.A group has no such card, which is the table below made visible.
3
Delegate policy management
Whoever manages this principal can now attach whatever policies they like.
Anything outside the ceiling has no effect.
What a boundary applies to
An assumed-role session is bounded by the role it assumed, not by whoever
assumed it. The role is the bounded entity; a session cannot escape its
role’s ceiling by being created from an unbounded caller.
Organization owners follow the same policy evaluation as other principals.
A durable boundary that removes the owner’s required administrator access
cannot be attached. Transfer ownership before restricting those grants.
Temporary session restrictions still apply.
How it combines with everything else
A boundary is the last of the three narrowing steps, and each one can only subtract: An explicit deny in the evaluated policy domain short-circuits it. See how a request is authorized.Failing closed
Worked example
Delegating instance management to a team, safely.1. The boundary
1. The boundary
Everything this team may ever touch — compute and storage, only on
resources tagged as theirs, and never IAM.
2. What the team lead may attach
2. What the team lead may attach
An account policy allowing service-account creation and selected account
policy attachments. Attachment checks require both identity and policy CRNs:
3. Why this is safe
3. Why this is safe
Suppose the lead attaches
{"effect": "allow", "actions": ["*"], "resources": ["*"]} to a bounded service account.That service account still cannot touch IAM, cannot touch a resource
tagged for another team, and cannot reach any service outside compute and
storage — the boundary intersects every one of those away. The broad
policy is not rejected; it simply does not reach past the ceiling.Note what this example does not do: it does not let the lead attach
or remove boundaries. If they could, they could raise their own
ceiling. Grant boundary management only to whoever is meant to set the
ceiling.
Boundary or explicit deny?
Both restrict, and they are not interchangeable.Use a boundary
To cap one principal while letting someone else manage its policies.
It is a ceiling on delegation.
Use an explicit deny
To refuse matching actions even when another policy allows them. A deny
beats every allow in the same policy domain.
Next
Writing policies
The document format a boundary uses — it is an ordinary policy.
Roles and credentials
Session policies narrow the same way, per set of credentials.

