К сожалению, вам также необходимо предоставить конфигурацию учетных данных IAM для конфигурации бэкэнда, а также для конфигурации вашего провайдера AWS.
Конфигурация бэкэнда S3 принимает здесь те же параметры, что и провайдер AWS, поэтому вы можете указать бэкэндКонфигурация, подобная этой:
terraform {
backend "s3" {
bucket = "myBucket"
region = "eu-central-1"
key = "path/to/terraform.tfstate"
encrypt = true
profile = "config2"
}
}
provider "aws" {
profile = "config2"
region = "eu-central-1"
}
Есть несколько причин, по которым это нужно делать отдельно.Одной из причин этого может быть то, что вы можете независимо использовать разные учетные данные IAM, учетные записи и регионы для корзины S3 и ресурсов, которыми вы будете управлять с поставщиком AWS.Возможно, вы также захотите использовать S3 в качестве бэкэнда, даже если вы создаете ресурсы в другом облачном провайдере или вообще не используете облачного провайдера, Terraform может управлять ресурсами во многих местах, где нет способа сохранить состояние Terraform.Однако основная причина заключается в том, что бэкэндами фактически управляет основной двоичный файл Terraform, а не двоичные файлы провайдера, и инициализация бэкэнда происходит раньше, чем что-либо еще.