provider "google" {
project = "your-gcp-project-id"
region = "us-central1"
}
resource "google_service_account" "artie_transfer" {
account_id = "artie-transfer"
display_name = "Artie Transfer Service Account"
description = "Service account for Artie to write to GCS"
}
resource "google_storage_bucket_iam_member" "bucket_object_admin" {
bucket = "your-bucket-name"
role = "roles/storage.objectAdmin"
member = "serviceAccount:${google_service_account.artie_transfer.email}"
}
resource "google_storage_bucket_iam_member" "bucket_viewer" {
bucket = "your-bucket-name"
role = "roles/storage.bucketViewer"
member = "serviceAccount:${google_service_account.artie_transfer.email}"
}
resource "google_service_account_key" "artie_transfer_key" {
service_account_id = google_service_account.artie_transfer.name
}
output "service_account_email" {
value = google_service_account.artie_transfer.email
}
output "service_account_key" {
value = base64decode(google_service_account_key.artie_transfer_key.private_key)
sensitive = true
}