Terraform: не может аутентифицироваться провайдеру aws, используя общий файл конфигурации или переменные stati c - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь использовать terraform для управления AWS ресурсами и пытаюсь настроить конфигурацию учетных данных. Я следую официальной документации: https://www.terraform.io/docs/providers/aws/index.html

Моей первой идеей был установить файл общих учетных данных, поэтому я настраиваю его:

  • ~ .aws / учетные данные

    [default]
    aws_access_key_id=****
    aws_secret_access_key=****
    
  • ~ .aws / config

    [default]
    region=us-east-1
    output=json
    
  • app / main.tf

    provider "aws" {
        region = "us-east-1"
        version = "~> 2.0"
        profile = "default"
    }
    
    terraform {
        backend "s3" {
            bucket = "example-bucket"
            key    = "terraform-test.tfstate"
            region = "us-east-1"
      }
    }
    

Когда я запускаю terraform init, я получаю следующее сообщение:

Error: No valid credential sources found for AWS Provider.
        Please see https://terraform.io/docs/providers/aws/index.html for more information on
        providing credentials for the AWS Provider

Я уже проверил учетные данные, используя aws cli, и он работает отлично.

После этого я попытался настроить учетные данные stati c в main.tf следующим образом:

provider "aws" {
    region = "us-east-1"
    version = "~> 2.0"
    access_key = "****"
    secret_key = "****"
}

Та же ошибка ...

Я решил проверить с переменными среды, а затем это сработало. Но теперь я хочу знать, почему я не могу настроить переменные stati c или общий конфигурационный файл. Все это случаи были описаны в официальных документах, что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

По документации terraform вы можете указать файл учетных данных по коду. пример:

provider "aws" {
  region                  = "us-west-2"
  shared_credentials_file = "/Users/tf_user/.aws/creds"
  profile                 = "customprofile"
}

* Я бы также удостоверился, что переменные env не установлены (просто для того, чтобы terraform наверняка искал файл учетных данных), так как приоритет учетных данных будет выглядеть terraform. для:

а. Встроенный ключ доступа и секретный ключ.

b. Переменные окружения

c. Файл учетных данных

0 голосов
/ 01 марта 2020

Я сталкивался с той же проблемой в прошлом. Единственный известный мне способ обойти это - установить следующую переменную среды перед выполнением любых команд terraform:

export AWS_SDK_LOAD_CONFIG=true
...