無気力生活 (ノ ´ω`)ノ ~゜

脱力系エンジニア。てきとーに生きてます。

Terraform: s3をbackendに使う際にcredentialsをどう使うか

docker上でTerraform + aws cliの環境を作ってやってます 認証情報はshared-credentialで管理している。環境変数でもいいんですが、個人的にはcredential派。

んで、 s3をバックエンドにして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

エラーの内容的に認証情報が解決できないらしい。特に指定なしだと対した情報が拾えないので、TF_LOG=TRACE terraform initとしてログをみたりしていた。

結論はprofileの指定がないこと。 https://www.terraform.io/docs/providers/aws/index.html を見る限りAWS_PROFILEで渡しても良いらしいんですが、都度都度書きたくないんですよね(´・ω・`)

結論、backend側設定書いてやれば動いた。

terraform {
  backend "s3" {
    bucket = "bucket_name"
    key       = "tf-saved-path"
    region  = "us-east-1"
    profile  = "profile_name" # これ
  }
}

Terraform has been successfully initialized!

良し(`・ω・´)