google_fastly_waf/iam.tf (21 lines of code) (raw):

resource "google_service_account" "log_uploader" { project = var.project_id account_id = substr("${var.application}-${var.realm}-${var.environment}-fastly", 0, 28) display_name = "Fastly Service account for uploading logs" } resource "google_bigquery_dataset_iam_member" "edit_datasets" { project = var.project_id dataset_id = google_bigquery_dataset.fastly.dataset_id role = "roles/bigquery.dataEditor" member = google_service_account.log_uploader.member } resource "google_storage_bucket_iam_member" "fastly_service_account" { bucket = google_storage_bucket.fastly.name role = "roles/storage.objectCreator" member = google_service_account.log_uploader.member } # See https://docs.fastly.com/en/guides/configuring-google-iam-service-account-impersonation-for-fastly-logging # for the Fastly service account resource "google_service_account_iam_member" "allow-fastly-to-assume" { service_account_id = google_service_account.log_uploader.name role = "roles/iam.serviceAccountTokenCreator" member = "serviceAccount:fastly-logging@datalog-bulleit-9e86.iam.gserviceaccount.com" }