エラー
aws loginコマンドが実装されたのでCredentialを捨ててみたら、Opentofu(Terraform)の実行がエラーになっちゃったので調べた
1 | $ tofu plan |
対処
~/.aws/config の対象profileに credential_process = aws configure export-credentialsの行を追加
1 | [profile hoge] |
このコマンドはなに?(AI解説)
認証情報の「委任(Delegation)」
credential_process は、OpenTofu (AWS Provider) がAWSへの接続に必要な認証情報(アクセスキーID、シークレットアクセスキー、セッショントークン)を、外部のコマンドを実行して取得するための設定です。
OpenTofuは、認証が必要になるたびに、この設定に書かれたコマンド(ここでは aws configure export-credentials)を実行し、そのコマンドが標準出力に出力するJSON形式のデータから認証情報を読み取ります。AWS CLIキャッシュからの「取り出し」
設定されたコマンド aws configure export-credentials の役割は以下の通りです。
AWS CLIに対して、「プロファイルに関連付けられた有効な一時認証情報があるか」を尋ねます。
AWS CLIは、以前に aws login で取得し、ローカルのキャッシュファイル(通常は ~/.aws/sso/cache,~/.aws/login/cache や内部ストレージ)に保存されている一時キー(ACCESS_KEY_ID, SECRET_ACCESS_KEY, SESSION_TOKEN)をチェックします。
有効な一時キーが見つかれば、それを OpenTofu が読み取れる特定の JSON 形式で標準出力に出力します。
OpenTofuはこの JSON を受け取り、AWSとの通信に使用します。認証情報の有効期限について
plan を実行する度にこのコマンドは実行されますが、これは新しい一時認証情報を発行しているわけではありません。