A data analytics team needs to grant a newly onboarded junior analyst access to execute queries and read data in BigQuery within a specific Google Cloud project named `analytics-prod`. The analyst must not be able to modify existing tables, delete datasets, or access non-BigQuery resources within the project. Which IAM role assignment follows Google Cloud best practices and the principle of least privilege to fulfill this requirement?
- Grant the user the BigQuery Data Viewer (roles/bigquery.dataViewer) and BigQuery Job User (roles/bigquery.jobUser) predefined roles at the project level.Answer
- BGrant the user the Viewer (roles/viewer) primitive role at the project level.
- CGrant the user the BigQuery Admin (roles/bigquery.admin) predefined role at the Organization level.
- DGrant the user the Editor (roles/editor) primitive role at the parent Folder level.
Answer
Grant the user the BigQuery Data Viewer (roles/bigquery.dataViewer) and BigQuery Job User (roles/bigquery.jobUser) predefined roles at the project level.
To run queries and view dataset contents in BigQuery, a principal requires permission to run query jobs (`roles/bigquery.jobUser`) and read table data (`roles/bigquery.dataViewer`). Granting these predefined roles at the project level enforces the principle of least privilege by restricting access specifically to BigQuery tasks in the target project.
Step-by-Step Solution
Key Concept
Principle of Least Privilege with Predefined IAM Roles