README

Account Contacts

Sets the primary and alternate contacts on an AWS account. All contact types are optional and independently configured.

AWS uses these contacts to route account notifications to the right teams instead of the root account email:

  • Primary — legal, tax, and account ownership communications
  • Billing — billing alerts, invoices, and payment notifications
  • Security — security findings, abuse notifications, and vulnerability reports
  • Operations — service notifications, maintenance windows, and operational issues

Usage

module "account_contacts" {
  source  = "hcassc.jfrog.io/iac-tf-modules-virtual/governance/account-contacts/aws"
  version = "0.1.0"

  account_id = "123456789012"

  primary_contact = {
    full_name       = "Platform Team"
    company_name    = "Example Corp"
    phone           = "+12065551234"
    address_line_1  = "123 Any Street"
    city            = "Seattle"
    state_or_region = "WA"
    postal_code     = "98101"
    country_code    = "US"
  }

  alternate_contacts = {
    billing = {
      name  = "Finance Team"
      title = "Finance Manager"
      email = "[email protected]"
      phone = "+12065551234"
    }
    security = {
      name  = "Security Team"
      title = "Security Engineer"
      email = "[email protected]"
      phone = "+12065551234"
    }
    operations = {
      name  = "Platform Team"
      title = "Platform Engineer"
      email = "[email protected]"
      phone = "+12065551234"
    }
  }
}

Notes

  • account_id is optional. When omitted, contacts are set on the current account.
  • alternate_contacts keys are case-insensitive. BILLING, Billing, and billing are all valid.
  • phone must include the country code (e.g. +12065551234).
  • country_code must be a valid ISO 3166-1 alpha-2 code (e.g. US, GB).

Requirements

Name Version
terraform >= 1.15.0, < 2.0.0
aws >= 6.0, < 7.0

Providers

Name Version
aws >= 6.0, < 7.0

Resources

Name Type
aws_account_alternate_contact.this resource
aws_account_primary_contact.this resource

Inputs

Name Description Type Default Required
account_id ID of the target member account to set contacts on. Uses current account if omitted. string null no
alternate_contacts Alternate contacts for billing, security, and operations notifications. map(object({ name = string title = string email = string phone = string })) {} no
primary_contact Primary account contact used by AWS for legal, tax, and account ownership purposes. object({ full_name = string company_name = optional(string) phone = string website_url = optional(string) address_line_1 = string address_line_2 = optional(string) city = string state_or_region = optional(string) district_or_county = optional(string) postal_code = string country_code = string }) null no

Outputs

Name Description
alternate_contacts Alternate contacts as configured
primary_contact Primary contact as configured