以下のようにaws configure
を利用してawsの認証情報を端末に保存して、Terraformを利用しようとしました。
provider "aws" { region = "ap-northeast-1" profile = "terraform-hacknote" }
すると下記のように403エラーが出てしまいました。
Error: error configuring Terraform AWS Provider: error validating provider credentials: error calling sts:GetCallerIdentity: InvalidClientTokenId: The security token included in the request is invalid. status code: 403, request id: XXXXXXXXXXXXXXXXXXXXXX on main.tf line 1, in provider "aws": 1: provider "aws" {
ドキュメントにaws cliの場所を書いてね。のように書いてあったので、それを試したのですが、相変わらずエラーが出てしまいました。
なので外部ファイルの環境変数を用いて認証情報を読み込ませます。
まずはterraform.tfvars
というファイルを作成して中身に認証情報を書きます。
aws_access_key = "****************" aws_secret_key = "******************************"
その次にmain.tf
ファイルを下記のように編集します
variable "aws_access_key" {} variable "aws_secret_key" {} provider "aws" { region = "ap-northeast-1" access_key = var.aws_access_key secret_key = var.aws_secret_key }
こうすることで認証情報を外部ファイルに書いて管理することができます。
あとは.gitignore
にterraform.tfvars
を追記することを忘れないように気をつけます