cloud-foundation-fabric/modules/iam-service-account
Ludovico Magnocavallo c33e68ecd0 use list in service account module variable types 2020-11-05 09:26:24 +01:00
..
README.md use list in service account module variable types 2020-11-05 09:26:24 +01:00
main.tf rename iam variable in service account module 2020-11-05 09:22:13 +01:00
outputs.tf Update service account module to Terraform 0.13 2020-10-20 22:36:03 +02:00
variables.tf use list in service account module variable types 2020-11-05 09:26:24 +01:00
versions.tf Update service account module to Terraform 0.13 2020-10-20 22:36:03 +02:00

README.md

Google Service Account Module

This module allows simplified creation and management of one a service account and its IAM bindings. A key can optionally be generated and will be stored in Terraform state. To use it create a sensitive output in your root modules referencing the key output, then extract the private key from the JSON formatted outputs.

Example

module "myproject-default-service-accounts" {
  source            = "./modules/iam-service-account"
  project_id        = "myproject"
  name              = "vm-default"
  generate_key      = true
  # authoritative roles granted *on* the service accounts to other identities
  iam       = {
    "roles/iam.serviceAccountUser" = ["user:foo@example.com"]
  }
  # non-authoritative roles granted *to* the service accounts on other resources
  iam_project_roles = {
    "myproject" = [
      "roles/logging.logWriter",
      "roles/monitoring.metricWriter",
    ]
  }
}

Variables

name description type required default
name Name of the service account to create. string
project_id Project id where service account will be created. string
display_name Display name of the service account to create. string Terraform-managed.
generate_key Generate a key for service account. bool false
iam IAM bindings on the service account in {ROLE => [MEMBERS]} format. map(list(string)) {}
iam_billing_roles Project roles granted to the service account, by billing account id. map(list(string)) {}
iam_folder_roles Project roles granted to the service account, by folder id. map(list(string)) {}
iam_organization_roles Project roles granted to the service account, by organization id. map(list(string)) {}
iam_project_roles Project roles granted to the service account, by project id. map(list(string)) {}
iam_storage_roles Storage roles granted to the service account, by bucket name. map(list(string)) {}
prefix Prefix applied to service account names. string null

Outputs

name description sensitive
email Service account email.
iam_email IAM-format service account email.
key Service account key.
service_account Service account resource.