Use a more narrowly scoped predefined role or a custom role that grants only the specific read permissions needed, rather than the Google Cloud Basic Viewer Role. The basic role is usually broader than most tasks require and can expose more resources than necessary. Review actual read requirements, then apply the smallest role set that satisfies them.
Why the Basic Viewer Role Is Usually the Wrong Default
The Google Cloud Basic Viewer Role is a broad read-only starting point, but least privilege is about matching access to the actual task, not to a whole project or folder. A narrower predefined role usually removes unnecessary visibility while still supporting the work. If no predefined role fits cleanly, a custom role is the safer option because it can limit permissions to only the required read actions.
The practical question is not whether a user or workload should be able to read something, but exactly what they must read and where that access should stop. In Google Cloud, broad viewer access can expose resources, metadata, and relationships that are irrelevant to the job but still useful to an attacker or an overbroad internal process. That is why the better pattern is to start from the smallest permission set and expand only when a concrete requirement is proven.
For teams building a role model, this also means separating convenience from necessity. A predefined role can be acceptable when it already matches the use case closely, but a custom role is often better when the task is narrowly defined, time bound, or tied to a specific integration. The right outcome is not “viewer because it is safe,” but “minimum read scope that still lets the task succeed.”
How to Choose the Smaller Role Set in Practice
Start by listing the exact resources the subject needs to inspect, then map those reads to the least permissive predefined role available. If the role still grants unrelated access, drop it and move to a custom role. This is especially important when the task is operational, such as troubleshooting, reporting, or inventory lookups, because those use cases often need only a small subset of read permissions.
Google Cloud IAM and Service Accounts Guide is the most direct reference for understanding how predefined roles, custom roles, service accounts, and least privilege fit together in Google Cloud. Use it when you need to compare broad viewer access against a more targeted permission model. If the access is for automation or a service account, treat that as a separate design choice and scope it just as tightly.
Authorisation Models Guide helps when the real decision is whether a coarse role is good enough or whether a finer-grained access model is needed. That distinction matters when the same team or integration needs different read scopes for different environments, resources, or data classes. A custom role is often the bridge when role-based access alone is too coarse.
Cloud PAM and CIEM Guide is useful when the viewer role is being used as a shortcut for broader cloud access governance. In practice, effective permissions often differ from granted permissions, and that gap is where least privilege fails. Review what is actually exercised, not just what is assigned.
What Can Go Wrong When Viewer Access Is Too Broad
Read-only access is still access, and broad visibility can expose architecture, service names, storage locations, labels, and operational patterns that should not be universally visible. That information can help an insider overreach, a compromised account move laterally, or an automation identity learn too much about the environment. The risk is not only accidental disclosure, but also unnecessary reconnaissance value.
For that reason, the safer pattern is to treat broad viewer access as an exception that must be justified, not as a default entitlement. In mature environments, overbroad read permissions are often the first sign that role design has drifted from actual business need. The fix is usually role decomposition, not another layer of approval on top of the same broad grant.
Risk and Threat Considerations
Broad viewer roles increase exposure because they can reveal more infrastructure, resource metadata, and operational context than the requester needs. That makes compromise easier to assess and misuse, especially when the same identity also reaches logs, configs, or adjacent services through separate permissions.
Failure mechanism: The role is treated as harmless because it is read-only, but its scope still exposes too much of the environment and gives an attacker or insider unnecessary discovery value.
Impact: A compromised or overused account can support reconnaissance, target selection, and privilege-chain building even without write access, which can widen the blast radius of later compromise.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
NIST Zero Trust (SP 800-207), NIST SP 800-53 Rev 5 and CSA Cloud Controls Matrix set the technical controls, while ISO/IEC 27001:2022 defines the regulatory obligations.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST Zero Trust (SP 800-207) | PR.AA-05 — Least Privilege Access | Least privilege is the core control principle behind replacing broad viewer access. |
| Recommendation — Apply least-privilege access decisions and avoid broad default roles when narrower permissions suffice. | ||
| NIST SP 800-53 Rev 5 | AC-6 — Least Privilege | The question is directly about reducing excess read permissions to the minimum needed. |
| Recommendation — Restrict access to the minimum permissions required for the task and remove unnecessary read scope. | ||
| CSA Cloud Controls Matrix | IAM — Identity & Access Management | Cloud role design and permission scoping are central IAM concerns in Google Cloud. |
| Recommendation — Right-size cloud permissions and prefer narrowly scoped roles over broad default access. | ||
| ISO/IEC 27001:2022 | A.5.15 — Access control | Role selection here is an access-control decision about who can read what. |
| Recommendation — Define and enforce access rules that grant only the permissions needed for each use case. | ||
Practitioner Guidance
What to verify: Confirm the exact resources, folders, and projects the subject must read, then check whether a narrower predefined role already covers them before creating any custom role.
Decision rule: If the task can succeed without full-project visibility, do not grant the basic viewer role. If no predefined role fits without excess access, use a custom role with only the needed read permissions.
What good looks like: The assigned role set is small, task-specific, and explainable in plain language, with no permissions that are present only “just in case.”
Practitioner takeaway: Least privilege fails when teams optimise for convenience instead of scope, so the right control is the smallest role that still satisfies the concrete read requirement.
Related resources from NHI Mgmt Group
- What should be used instead of the Google Cloud BigQuery Data Viewer Role for least privilege?
- What should be used instead of the Google Cloud Organization Administrator Role for least privilege?
- What should be used instead of the Google Cloud Service Account Creator Role for least privilege?
- What should be used instead of the Google Cloud KMS Admin Role for least privilege?