Как перезагрузить поставщика terraform во время выполнения, чтобы использовать другой профиль AWS - PullRequest
0 голосов
/ 09 апреля 2020

Как перезагрузить поставщика terraform во время выполнения, чтобы использовать другой профиль AWS.

Создать нового пользователя

resource "aws_iam_user" "user_lake_admin" {

  name = var.lake_admin_user_name
  path = "/"
  tags = {
    tag-key = "data-test"
  }
}
provider "aws" {
  access_key = aws_iam_access_key.user_lake_admin_AK_SK.id
  secret_key = aws_iam_access_key.user_lake_admin_AK_SK.secret
  region                  = "us-west-2"
  alias                   = "lake-admin-profile"
}

этот пользователь lake_admin создан в том же файл.

пытается использовать

provider "aws" {
  access_key = aws_iam_access_key.user_lake_admin_AK_SK.id
  secret_key = aws_iam_access_key.user_lake_admin_AK_SK.secret
  region                  = "us-west-2"
  alias                   = "lake-admin-profile"
}
resource "aws_glue_catalog_database" "myDB" {
  name  = "my-db"
  provider = aws.lake-admin-profile
}

Как я знаю, поставщики terraform выполняются первыми во всех файлах terraform.

Но есть ли способ перезагрузить конфигурации провайдеров в середине выполнения терраформ?

1 Ответ

1 голос
/ 14 апреля 2020

Вы не можете сделать это напрямую.

Вы можете применить создание пользователя в одном root модуле и состоянии и использовать его учетные данные в поставщике для второго.

В целях развертывания инфраструктуры вам, скорее всего, лучше использовать роли IAM и предполагать, что поставщики ролей справятся с такой ситуацией.

Как правило, вам не нужно создавать инфраструктуру с указанным пользователем c. Это редко дает преимущество. Я не могу вспомнить случай, когда основная создавающая инфраструктура имеет какой-либо подразумеваемый определенный c специальный доступ к созданной инфраструктуре.

Вы можете использовать Роль развертывания IAM или пользователя IAM для развертывания всего в учетной записи и затем назначьте политику на основе ресурсов и IAM для выполнения ограничений в развертывании.

...