Бэкэнд-аутентификация Terraform S3 на Codeship/Docker
Я использую Terraform версии 0.11.10, и я настроил бэкэнд S3, и он работает локально, когда я использую AWS_ACCESS_KEY_ID
а также AWS_SECRET_ACCESS_KEY
переменные среды для аутентификации.
provider "aws" {
region = "eu-west-1"
}
terraform {
backend "s3" {
bucket = "terraform-state-xxxxx"
region = "eu-west-1"
key = "terraform/dev.tfstate"
dynamodb_table = "terraform-locks"
}
}
Однако, когда я пытаюсь запустить точно такой же код в hashicorp/terraform:0.11.10 Контейнер Docker на Codeship с теми же переменными окружения выдает следующую ошибку:
Инициализация бэкэнда...
Ошибка при настройке серверной части "s3": InvalidClientTokenId: маркер безопасности, включенный в запрос, недействителен.
Если я установлю skip_credentials_validation = "true"
тогда я получаю следующее:
InvalidAccessKeyId: предоставленный вами идентификатор ключа доступа AWS не существует в наших записях.
Почему он не использует учетные данные из переменных среды?
Нет файла ~/.aws/credentials или любого другого места, где он мог бы получить учетные данные, о которых мне известно.
0 ответов
В моем случае я попытался установить ACCESS_KEY_ID и SECRET_ACCESS_KEY в качестве переменных среды, но оказалось, что у меня также был файл ~/.aws/credentials, который использовался вместо этого, и подготовка моего окна установила там значения по умолчанию. Похоже, что используется файл ~/.aws/credentials, а переменные среды - нет.