【Terraform】awsのprofileの認証情報で403エラーが出る

以下のように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
}

こうすることで認証情報を外部ファイルに書いて管理することができます。

あとは.gitignoreterraform.tfvarsを追記することを忘れないように気をつけます