aws ssoで取得した資格情報を使ってterraform planを実行したところError: error configuring S3 Backend: no valid credential sources for S3 Backend found.というエラーが出た. この問題はGitHub上でIssueとしてあがっており,すでにPull Requeslも出ていることから近いうちに解消されると思われる.ひとまず短期的にはIssueに記載されている~/.aws/configファイルを修正するワークアラウンドで対処することにした.
~/.aws/config
を修正する方法がある
~/.aws/config
を開き以下をコメントアウト
sso_session
[sso-session '<session-name>']
システムの構成をいくつか変更する必要があり,久しぶりにterraformを使おうと思ったのだが,ローカルにあったバイナリがv1.4系だったので,最新のv1.5.4に上げた.
ひとまず現状確認のために,terraform plan
を実行してみるとエラーが出た.
$ terraform plan
╷
│ Error: error configuring S3 Backend: no valid credential sources for S3 Backend found.
│
│ Please see https://www.terraform.io/docs/language/settings/backends/s3.html
│ for more information about providing credentials.
│
│ Error: SSOProviderInvalidToken: the SSO session has expired or is invalid
│
│
│
╵
さて,今回terraformを実行したリポジトリでは,State管理にS3 Backendを使用している.そのため,最初にS3から最新のStateを取得するのだが,S3にアクセスできていないようだ.
terraform planの実行前に同一のプロファイルを使用しaws s3 ls
を実行しており,こちらではterraform S3 Backendに使用しているBucketも見えている.つまり,有効な資格情報は取得できているはずだ.
検索してみると,今年の1月からIssueに上がっている問題のようだ.
Issueを読んでみると以下のようなことがわかる.
修正のPRもすでに出ているので,そう遠くないうちに解決されることだろう.
ひとまずはここで説明されているワークアラウンドで対処することにした.