Я попытался создать простой пример в среде AWS. Вначале я экспортирую 2 значения:
export AWS_ACCESS_KEY_ID= something
export AWS_SECRET_ACCESS_KEY= something
После этого я написал простой код.
provider "aws" {
region = "us-east-1"
access_key = AWS_ACCESS_KEY_ID
secret_key = AWS_SECRET_ACCESS_KEY
}
resource "aws_instance" "example" {
ami = "ami-40d28157"
instance_type = "t2.micro"
tags = {
Name = "terraform-example"
}
}
Когда я определяю значения вместо параметров AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY, все работает нормально, но с предоставленным кодом я вижу следующую ошибку
on main.tf line 4, in provider "aws":
4: secret_key = AWS_SECRET_ACCESS_KEY
A reference to a resource type must be followed by at least one attribute
access, specifying the resource name.
Какие-нибудь идеи, как решить эту проблему?
Вам необходимо определить переменные для двух ключей и указать значения переменных при запуске, например. terraform apply
— person O.Man schedule 27.12.2020
Обратите внимание, что провайдер aws
на самом деле внутренне уважает эти (и другие) переменные среды, и вам ничего не нужно делать вручную в этом конкретном случае передачи учетных данных среды aws. — person O.Man schedule 27.12.2020
Вам не нужно ничего делать. Как объясняется в
terraform
документации по аутентификации для поставщика AWS,terraform
будет автоматически использовать учетные данные в таком порядке:Итак, как только вы экспортируете свои ключи (убедитесь, что экспортировали их правильно):
в вашем файле конфигурации, который вы просто использовали бы (пример см. в docs):