Применение Terraform для двух разных учетных записей AWS в одном плане - PullRequest
0 голосов
/ 02 июля 2019

В настоящее время мы переносим некоторые из наших шаблонов CloudFormation на Terraform. В одном из этих шаблонов мы используем пользовательский ресурс с функцией Lambda.

Цель функции - взять на себя роль в нашей основной учетной записи AWS; где R53 DNS управляется, и добавьте недавно сгенерированный CloudFront DNS там.

Мне интересно, есть ли способ сделать это в терраформе, например:

  1. создать ресурс облачного фронта, alb и т. Д. В учетных записях dev / qa / prod
  2. добавить набор записей r53 на основную учетную запись

Все в рамках одного плана терраформ. Могу ли я выбрать роль IAM при создании ресурса? Или выбрать учетную запись, где ресурс должен быть создан?

Единственная ссылка, которую я нашел, это здесь

1 Ответ

3 голосов
/ 02 июля 2019

Вы можете настроить нескольких провайдеров (по одному на учетную запись в вашем случае) и создать псевдоним для каждого.Затем вам нужно будет указать поставщика для каждого ресурса.Пример:

provider "aws" {
  region  = "eu-west-1"
  profile = "profile1"
  alias   = "account1"
}

provider "aws" {
  region  = "eu-west-1"
  profile = "profile2"
  alias   = "account2"
}

resource "aws_lambda_function" "function1" {
  provider = "aws.account1" // will be created in account 1
  ...
}
resource "aws_lambda_function" "function2" {
  provider = "aws.account2" // will be created in account 2
  ...
}
...