Google Cloud Bigtable
Google Cloud Bigtable is a fully managed, wide-column NoSQL database for large analytical and operational workloads. Relyance AI connects to Bigtable to discover and classify the personal and sensitive data held in its tables.
What you'll need
- A Google Cloud service account Relyance can impersonate, in the project holding the Bigtable instances.
- The Project ID of that project.
- The instance IDs you want scanned.
Permissions Relyance needs
Grant the service account a role carrying these two permissions on the project:
| Permission | Used for |
|---|---|
bigtable.tables.list |
discovering which tables exist in an instance |
bigtable.tables.readRows |
reading rows to classify their contents |
Relyance also reads instance and cluster metadata (bigtable.get_instance,
bigtable.list_instances, bigtable.list_clusters) and Cloud Monitoring time
series (monitoring.query_time_series) to size the scan, so the role needs read
access to those as well — roles/bigtable.reader plus
roles/monitoring.viewer covers everything above.
In Google Cloud
- Create a service account in the project holding the Bigtable instances,
following the naming convention
rely-<tenant_name>-int-<suffix>. - Grant it the roles above on that project.
- Allow Relyance to impersonate it: on the service account's Principals with
access tab, grant
Workload Identity Usertotenant-gcp-integrations@relyance-prod.iam.gserviceaccount.com. This is the same impersonation grant as the Google Cloud Platform integration — no key file is created or downloaded.
In the Relyance AI application
- Log in to your Relyance account.
- Navigate to Settings › Integrations and find the Google Cloud Bigtable card.
- Click Add Connection, give it a name, and click Add.
- On the Overview step, select the features you want and click Continue.
- On the Connection step, set the rescan frequency and any Business Atlas associations, then click Continue.
- On the Authentication step, choose Instance Scan under Authentication
Method — it is the only method Bigtable offers — and provide:
Service Account Email — the account created above, e.g.
rely-<tenant_name>-int-<suffix>@<your-project-id>.iam.gserviceaccount.comProject ID to scan
Instance Configuration (optional) — which instances and tables are in scope.
instance_idnames the instance; the allow list wins where both are set:[ { "instance_id": "", "allow_tables": [""], "block_tables": [""] } ]
- Click Authenticate, then Finish on the Completion step.
- Confirm the connection shows Connected.
Verify the connection is really working
- A failure at Authenticate is almost always the impersonation grant from
step 3 — check
Workload Identity Useris on the service account itself, not on the project. - After the first scan, confirm the instances you expected appear as assets. Fewer than expected usually means the roles were granted in a different project, or an instance is excluded by the Instance Configuration.
- Tables present but no data types classified points at
bigtable.tables.readRows— listing works without it, reading does not.
Manage this integration with Terraform
Connections for this integration can be managed as code with the Relyance Terraform provider. Non-secret fields go in auth.params; secret fields go in auth.secrets_wo, which is write-only — never stored in Terraform state. Rotate secrets by bumping auth.secrets_wo_version.
resource "relyance_integration_connection" "gcloud_bigtable" {
vendor = "gcloud_bigtable"
name = "<your connection name>"
auth = {
method = "service-account"
# Secret fields are write-only: sent to Relyance, never stored in state.
secrets_wo = {
service_account_email = var.gcloud_bigtable_service_account_email
project_id_scan = var.gcloud_bigtable_project_id_scan
}
secrets_wo_version = 1
}
scans = { "data-inspection" = { enabled = true } }
}