java/java-dataflow-samples/read-pubsub-write-bigquery/infrastructure/01.setup/iam.tf (17 lines of code) (raw):
// Provision a service account that will be bound to the Dataflow pipeline
resource "google_service_account" "dataflow_worker" {
depends_on = [google_project_service.required_services]
account_id = var.dataflow_worker_service_account_id
display_name = var.dataflow_worker_service_account_id
description = "The service account bound to the compute engine instance provisioned to run Dataflow Jobs"
}
// Provision IAM roles for the Dataflow runner service account
resource "google_project_iam_member" "dataflow_worker_service_account_roles" {
depends_on = [google_project_service.required_services]
for_each = toset([
"roles/dataflow.worker",
])
role = each.key
member = "serviceAccount:${google_service_account.dataflow_worker.email}"
project = var.project
}