
aws-vault が 1Password Desktop 経由でのクレデンシャルの保存に対応したので試してみた
aws-vault には Backend と呼ばれるクレデンシャルを管理するためのストレージオプションが OS ごとにいくつか用意されており、何も指定しない場合は通常 OS のキーチェーンを利用するようになっています。(例: macOS なら Keychain, Windows なら Credential Manager)
今回この Backend に 1Password Desktop が追加されました。これにより、1Password Desktop 経由でのクレデンシャルの管理が可能になります。
1Password Desktop の設定
「Settings > Developer」 の "Integrate with the 1Password SDK" を有効にします。この設定が見つからない場合は、1Password Desktop を最新バージョンにアップデートしてみてください。
うまく有効にならない場合もあるようなので、その場合は一度 PC を再起動してみると良いかもしれません。
以下は 1Password Desktop の Developer 設定画面の例です。

aws-vault の設定
- requires
- aws-vault v7.9.3 以降
大きく分けて以下の 2 つの利用方法があります。
1.環境変数に指定する方法
.bashrc や .zshrc などのシェルの設定ファイルに以下の環境変数を追加する方法もあります。
export AWS_VAULT_BACKEND=op-desktop
export AWS_VAULT_OP_VAULT_ID=<vault-id>
export AWS_VAULT_OP_DESKTOP_ACCOUNT_ID=<account-id>
AWS_VAULT_BACKEND: 1Password Desktop を Backend として指定AWS_VAULT_OP_VAULT_ID: クレデンシャルを保存する 1Password Vault の ID を指定 (デスクトップアプリで Vault を右クリックして "Copy ID" で取得可能)AWS_VAULT_OP_DESKTOP_ACCOUNT_ID: 1Password Desktop のアカウント ID を指定 (デスクトップアプリの左上のに表示されているアカウント名です。URL のhttps://xxx.1password.com/のxxxの部分がアカウント ID になります)
2.オプションを指定する方法
aws-vault exec <profile-name> \
--backend=op-desktop \
--op-vault-id=<vault-id> \
--op-desktop-account-id=<account-id>
別の Backend からの移行方法
Backend を 1Password Desktop に変更するためには、現在の Backend に保存されているクレデンシャル情報を 1Password Desktop に移す必要があります。
aws-vault にはクレデンシャルの移行を支援するコマンドは用意されていないため、手動で移行する必要があります。
1. 既存の Backend からクレデンシャルを確認する
Windows の Credential Manager や macOS の Keychain Access など、現在使用している Backend に保存されているクレデンシャルを確認します。
大体の場合 awsvault という名前で保存されているはずなので、この中身を確認します。

データの中身は大体以下のような JSON 形式になっています。
{
"Key": "profile-name",
"Data": "eyJ...",
"Label": "aws-vault (profile-name)",
"Description": "",
"KeychainNotTrustApplication": true,
"KeychainNotSynchronizable": false
}
この Data の部分がクレデンシャル情報を Base64 エンコードしたものになっています。これをデコードして、AWS Access Key ID と Secret Access Key を取得します。
echo "eyJ..." | base64 --decode
{"AccessKeyID": "...",
出力は JSON 形式になっており、AccessKeyId や SecretAccessKey などのフィールドを探せば必要な情報が確認できます。
2. 1Password Desktop にクレデンシャルを保存する
先程取得した AWS Access Key ID と Secret Access Key を 1Password Desktop に保存します。
aws-vault add <profile-name> --backend=op-desktop --op-vault-id=<vault-id> --op-desktop-account-id=<account-id>
プロファイル名は同じものを指定しても問題ありません。.aws/config の内容は特に変更せず、あくまでクレデンシャル情報の保存先(Backend)を 1Password Desktop に変更するイメージです。
これで 1Password Desktop の指定の Vault にクレデンシャルが保存されます。







