Бэкэнд-аутентификация 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, а переменные среды - нет.

Другие вопросы по тегам