Check ID:
Provider: GCP
Service:
Severity: HIGH
Categories:
Resource type:
bigquery_table_cmk_encryptionProvider: GCP
Service:
bigquerySeverity: HIGH
Categories:
encryptionResource type:
bigquery.googleapis.com/TableWhat this check verifies
BigQuery tables use customer-managed encryption keys (CMEK) for at-rest encryption. The evaluation identifies tables lacking a configured Cloud KMS key, indicating use of default Google-managed encryption instead.
Risk
WithoutCMEK, encryption keys are not under your control, reducing key custody and auditability. You can’t enforce region-bound keys, custom rotation, or revoke access by disabling a key, weakening confidentiality and compliance. A compromised account may retain data access without an external KMS gate.
Recommendation
Protect BigQuery tables with Cloud KMS CMEK to retain key ownership and control.- Set dataset/project default keys
- Match key location to dataset region
- Enforce least-privilege on KMS and monitor usage
- Rotate keys and define revocation procedures
- Apply org policies to require CMEK and restrict permissible key projects
Remediation
- CLI
- Terraform
- Dashboard steps
bq cp -f —destination_kms_key projects/<KMS_PROJECT_ID>/locations/<LOCATION>/keyRings/<KEY_RING>/cryptoKeys/<KEY> <DATASET_ID>.<TABLE_ID> <DATASET_ID>.<TABLE_ID>
References
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_table_cmk_encryption. 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