BigQuery IAM Design for Need-to-Know Access
Short answer
C Create curated tables in a separate dataset and assign the role roles/bigquery.dataViewer to enforce least-privilege access for business users.
Question
• Business user: must access curated reports.
• Data engineer: must administrate the data lifecycle in the platform.
• Security operator: must review user activity on the data platform.
What should you do?
Key Takeaways
The trap is assuming Project Viewer grants log access; it does not. Correctly implementing least privilege for data consumers requires specific dataset-level roles like dataViewer.
Learn how to design IAM policies for BigQuery using curated datasets and the roles/bigquery.dataViewer role to meet need-to-know requirements for business users.
Common mistake: Choosing Option A is common because it mentions logging, but it is incorrect because the Project Viewer role lacks permission to view Cloud Audit Logs, making it ineffective for the Security Operator.
Expert Analysis
The question requires an IAM design that enforces the “need to know” principle for three distinct roles in a BigQuery environment. The core challenge is isolating access rights so that each user type only sees what is necessary for their function.
For the Business User, who needs access to curated reports, the most secure and standard practice is to expose data through specific views or tables within a dedicated dataset. Granting the roles/bigquery.dataViewer role on this specific dataset ensures they can read the data but cannot modify it or access other datasets. This directly satisfies the requirement while maintaining strict boundaries.
For the Security Operator, who must review user activity, simply granting a Project Viewer role (as suggested in Option A) is insufficient. A Project Viewer has read-only access to resources but lacks the permissions to view Cloud Audit Logs. To review activity, the operator would need specific log viewer roles such as roles/logging.viewer or roles/logging.privateLogViewer. Therefore, Option A fails because the proposed role does not grant the necessary visibility.
Option B suggests row-based access control filtered by region for data engineers. This is illogical; data engineers typically require broader access to manage the data lifecycle, not restricted regional views for business logic. Furthermore, filtering out US records arbitrarily does not align with administrative duties.
Option D proposes exporting CSVs via email. This is a severe security anti-pattern, violating data protection standards by moving sensitive structured data out of the controlled cloud environment into unencrypted personal inboxes.
While no single option perfectly covers all three roles (the Data Engineer’s needs are not explicitly addressed in any option), Option C is the only technically sound action among the choices. It correctly implements least-privilege access for the Business User using appropriate IAM roles (dataViewer) and resource isolation (separate dataset). In exam contexts, selecting the option that demonstrates correct technical implementation of at least one critical requirement, while others contain fatal flaws (like incorrect permissions or security violations), is the standard approach.
Official Reference
- https://cloud.google.com/bigquery/docs/access-control
- https://cloud.google.com/iam/docs/understanding-roles#basic-roles
These links open the official vendor documentation in a new tab.
Exam Strategy
When evaluating IAM options, always verify if the proposed role actually possesses the required permissions. For example, do not assume 'Viewer' implies 'Log Viewer'. Prioritize answers that use granular, service-specific roles (like bigquery.dataViewer) over broad project-level roles when least privilege is emphasized.
Frequently Asked Questions
Why is Project Viewer insufficient for a Security Operator?
What is the best way to restrict business user access?
Community Votes
56% of anonymous learners picked answer C. Votes are pick records left by other test-takers — they are not the verified answer.
Discussion 10 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 10
Show 5 more comments
-
Nkay17 👍 1Answer C: Data Access audit logs—except for BigQuery Data Access audit logs—are disabled by default because audit logs can be quite large.
-
irmingard_examtopics 👍 1 Answered CAll of the answers are missing administration of the data lifecycle, C comes closest by fulfilling all other requirements.
-
Mr_MIXER007 👍 1 Answered CC. Create curated tables in a separate dataset and assign the role roles/bigquery.dataViewer.
-
dija123 👍 1 Answered ASorry I wanted to vote for A
-
Bettoxicity 👍 1 Answered AA is the correct!
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.
viewer, they would needlogging.privateLogViewer.