Skip to content

Commit e22e550

Browse files
Merge pull request #13 from deseretdigital/feature-fix-terraform-google-ddm-pubsub-subscription-sc-358788
fix(terraform): scope pubsub BigQuery permissions to table level
2 parents 5b48fcc + f67b956 commit e22e550

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

modules/big-query/resources.tf

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
locals {
2+
bigquery_table_parts = split(".", var.bigquery_table)
3+
bigquery_project_id = local.bigquery_table_parts[0]
4+
bigquery_dataset_id = local.bigquery_table_parts[1]
5+
bigquery_table_id = local.bigquery_table_parts[2]
6+
}
7+
18
resource "google_pubsub_subscription" "subscription" {
29
name = var.subscription_name
310
topic = var.topic_id
@@ -8,17 +15,21 @@ resource "google_pubsub_subscription" "subscription" {
815
table = var.bigquery_table
916
}
1017

11-
depends_on = [google_project_iam_member.viewer, google_project_iam_member.editor]
18+
depends_on = [google_bigquery_table_iam_member.viewer, google_bigquery_table_iam_member.editor]
1219
}
1320

14-
resource "google_project_iam_member" "viewer" {
15-
project = data.google_project.project.project_id
16-
role = "roles/bigquery.metadataViewer"
17-
member = "serviceAccount:${var.pubsub_service_account}"
21+
resource "google_bigquery_table_iam_member" "viewer" {
22+
project = local.bigquery_project_id
23+
dataset_id = local.bigquery_dataset_id
24+
table_id = local.bigquery_table_id
25+
role = "roles/bigquery.metadataViewer"
26+
member = "serviceAccount:${var.pubsub_service_account}"
1827
}
1928

20-
resource "google_project_iam_member" "editor" {
21-
project = data.google_project.project.project_id
22-
role = "roles/bigquery.dataEditor"
23-
member = "serviceAccount:${var.pubsub_service_account}"
29+
resource "google_bigquery_table_iam_member" "editor" {
30+
project = local.bigquery_project_id
31+
dataset_id = local.bigquery_dataset_id
32+
table_id = local.bigquery_table_id
33+
role = "roles/bigquery.dataEditor"
34+
member = "serviceAccount:${var.pubsub_service_account}"
2435
}

0 commit comments

Comments
 (0)