Check ID:
Provider: GCP
Service:
Severity: HIGH
Categories:
Resource type:
bigquery_dataset_public_accessProvider: GCP
Service:
bigquerySeverity: HIGH
Categories:
internet-exposed, identity-accessResource type:
bigquery.googleapis.com/DatasetWhat this check verifies
BigQuery datasets are evaluated for exposure to public identities. The finding highlights datasets that grant any role toallUsers or allAuthenticatedUsers, which makes the dataset publicly accessible beyond intended principals.
Risk
Public dataset access erodes confidentiality by enabling unrestricted reads and metadata discovery. Attackers can query and copy data for exfiltration and use schema details for lateral movement. It can also trigger unexpected costs from abusive or high-volume queries.Recommendation
Apply least privilege on datasets:- Remove
allUsersandallAuthenticatedUsers - Grant access only to required groups or service accounts
- Use authorized views or controlled listings for sharing
- Review access regularly and enforce org policies that block public identities for defense in depth
Remediation
- Terraform
- Dashboard steps
References
- https://cloud.google.com/bigquery/docs/dataset-access-controls
- https://github.com/forseti-security/forseti-security/issues/3406
- https://support.icompaas.com/support/solutions/articles/62000233051-7-1-ensure-bigquery-datasets-are-not-anonymously-or-publicly-accessible-automated-
- https://securitylabs.datadoghq.com/cloud-security-atlas/vulnerabilities/bigquery-publicly-accessible-dataset/
- https://cloud.google.com/blog/products/identity-security/automatic-dlp-for-bigquery
Where this check fires
This check runs on every scheduled scan against your GCP account. Findings appear at Cloud Security → Findings filterable byCheck ID = bigquery_dataset_public_access. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to GCP checks