
リモートマシンのaws-vaultのバックエンドとしてpassを使用していますが、aws-vaultがそれを使用する前に、プロファイルの「パスワード」をgpg-agentに手動で追加する必要があるようです。最初にパスワードを復号化しないと、エラーが発生します。
$ aws-vault exec --no-session --debug default -- aws s3 ls
2023/02/02 19:35:53 aws-vault v6.6.2
2023/02/02 19:35:53 Loading config file /home/<user>/.aws/config
2023/02/02 19:35:53 Parsing config file /home/<user>/.aws/config
2023/02/02 19:35:53 [keyring] Considering backends: [pass]
2023/02/02 19:35:53 profile default: using stored credentials
2023/02/02 19:35:53 profile default: skipping GetSessionToken because disabled
2023/02/02 19:35:53 Looking up keyring for 'default'
gpg: decryption failed: No secret key
aws-vault: error: exec: Failed to get credentials for default: exit status 2
しかし、実行してパスワードpass default
を入力するとpass
、(推測ですが)資格情報が gpg-agent にしばらく保存され、aws-vault がそれらを適切に認識できるため、機能します。
必要な場合に aws-vault でパスワードの入力を求めるようにするにはどうすればよいですか?pass <profile>
最初に実行する必要はありません。
答え1
AWS_VAULT_FILE_PASSPHRASE 環境変数を使用してパスフレーズを渡すこともできます。こちらのドキュメントを参照してください。https://github.com/99designs/aws-vault/blob/master/USAGE.md#環境変数