Inherited permissions broaden the access surface because they can grant storage access without touching the bucket owner’s direct configuration. In Google Cloud, a role assigned to a service account may expose storage objects when attached to an instance with the right API scope. That makes privilege analysis incomplete unless teams inspect both direct and inherited rights.
Why inherited permissions create a wider access surface
Inherited permissions are dangerous because they expand who can reach data without changing the bucket’s visible policy. A service account can carry storage access into every workload that assumes it, so the effective access path is not limited to the bucket owner’s direct grants. That means the bucket may look tightly controlled while the real exposure sits in the attached identity.
In practice, this shifts the security question from “who can edit the bucket ACL” to “which identities can act on the bucket through runtime trust.” That distinction matters because inherited access is often granted through roles, instance attachments, or federated access paths that are easier to overlook during reviews than explicit bucket permissions.
It also means the blast radius is larger. If one service account is reused across instances, environments, or applications, every place that trusts that account inherits the same storage reach. A direct bucket permission problem is visible at the resource boundary; inherited access turns the identity itself into the boundary.
Why direct bucket permissions alone miss part of the risk
Direct bucket permissions describe only one layer of control. They tell you what the bucket owner granted, but not whether another principal already has a broader route in through an attached service account, workload identity, or other inherited authorization path. When both layers exist, the effective permission set is the union of the bucket policy and the identity’s rights.
That is why access analysis has to include the execution context. In Google Cloud, a workload with the right API scope or attached service account can access storage objects even when the bucket itself has no obvious direct grant to that workload. The operational implication is simple: resource policy review without identity review produces an incomplete picture.
For teams doing access governance, the important distinction is between static configuration and runtime authority. Static bucket controls may satisfy one review, while inherited identity permissions still allow read, write, or list actions from systems that were never meant to have broad storage access.
What changes when service account rights are inherited by workloads
Inherited service account permissions change exposure in three ways. First, they decouple authorization from the resource owner, so the bucket owner may not even see the most important access path. Second, they increase reuse risk, because one service account can quietly authorize multiple workloads. Third, they complicate revocation, because removing a bucket grant does not remove the workload’s inherited route if the identity remains attached elsewhere.
This is also why privilege review must include both the account and the consuming instance or workload. A role that seems harmless on paper can become high impact once the account is attached to infrastructure that has broad API reach or privileged network placement. The result is a much larger effective access surface than a direct bucket grant suggests.
Service Account Security Guide is useful here because the control problem is the account, not just the bucket. For cloud workload identity patterns, Cloud Workload Identity Guide explains why keyless or federated patterns still need tight entitlement review.
Risk and Threat Considerations
Inherited permissions create hidden exposure because compromise of the service account or the workload attached to it can unlock storage access even when the bucket policy looks restrictive. That makes the access path attractive to attackers, especially when the same identity is reused across systems or granted more scope than the workload actually needs.
Failure mechanism: A role granted to a service account, combined with attachment to an instance or workload that has sufficient API scope, creates an indirect route to storage objects that bypasses simple bucket-level review.
Impact: Attackers or misconfigured workloads can reach, copy, modify, or delete objects through inherited authority, increasing blast radius, weakening least privilege, and making revocation harder because the risky access is embedded in identity relationships rather than the bucket policy alone.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 addresses the attack and risk surface, while NIST SP 800-53 Rev 5 and CIS Controls v8 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-05 — Overprivileged NHI | Inherited service account rights can overexpose storage objects through excess entitlement. |
| NHI-08 — Environment Isolation | Shared inherited access across instances or environments increases storage blast radius. | |
| Recommendation — Reduce service account scope and remove unused storage permissions. Separate identities by environment and workload to limit cross-context access. | ||
| NIST SP 800-53 Rev 5 | IA-9 — Identification and Authentication (Non-Organizational Users) | Cloud workload identities and attached service accounts need controlled authentication paths. |
| AC-6 — Least Privilege | Effective access must include inherited rights, not just direct bucket grants. | |
| AU-2 — Event Logging | Inherited access is harder to spot without logs that show identity-mediated storage use. | |
| Recommendation — Bind storage access to strongly authenticated workload identities only. Limit each service account to the minimum storage permissions it needs. Log object access by workload identity and review anomalous usage. | ||
| CIS Controls v8 | CIS-5 — Account Management | Service account assignment and reuse drive the hidden exposure described here. |
| CIS-6 — Access Control Management | The question is about controlling effective access through inherited permissions. | |
| Recommendation — Inventory service accounts and remove unused or overly broad assignments. Reconcile direct resource grants with identity-based access paths. | ||
Practitioner Guidance
What to verify: Check both the bucket policy and every service account, workload, or instance that can exercise storage APIs on behalf of that account. If the answer to “who can reach this object” requires following the attached identity, you have not finished the review.
Common mistake: Treating direct bucket grants as the complete authorization model. That misses inherited access, especially where service accounts, instance attachments, or API scopes create a second permission path.
What good looks like: Each storage-relevant service account has a clear owner, minimal scope, no unnecessary reuse, and a documented list of workloads that can assume it. Bucket review and identity review should reconcile to the same effective access picture.
Practitioner takeaway: The real risk is not that the bucket is open, but that the workload’s identity quietly makes it open enough. Review the identity path first when you need an accurate storage exposure assessment.
Related resources from NHI Mgmt Group
- Why does service account impersonation create more risk than direct IAM bindings alone?
- Why do inherited Azure role assignments create more access risk than direct resource permissions alone?
- When does a service account become a compliance problem?
- Who is accountable when collaboration permissions create account takeover exposure?
Deepen Your Knowledge
Reviewed and updated by the NHIMG editorial team on September 28, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org