タダです.
1Password の CLI ツールが有ることを知り,更に 1Password Shell Plugins
というのを知って使ってみたことをこの記事にまとめていきます.
1Password CLI のインストール
後続作業で使うため CLI ツールをインストールします.
要件
自分の作業環境は macOS なのですが,CLI を使うための要件に以下のものがあります.
- 1Password subscription
- 1Password 8 for Mac
- macOS Big Sur 11.0.0 or later
インストール作業
Homebrew でインストールができるので, brew
コマンドでインストールします.
$brew install --cask 1password/tap/1password-cli $op -v 2.17.0
初期セットアップ
初期セットアップとして 1Password 8 for Mac
で設定から 1Password CLI で接続する
をチェックボタンを有効化します.加えて, ロック解除に Touch ID
のチェックボタンを有効化します.
これで CLI で 1Password にサインインができるようになり,保存している秘匿情報にもアクセスできます.
$op signin $op item ls ID TITLE VAULT EDITED 12345678912345678123456789 xxxxx Personal 4 days ago 12345678912345678123456789 🎉 1Password へようこそ! Personal 1 year ago ~中略~
参考情報
1Password Shell Plugins を使って AWS CLI を実行する
1Password Shell Plugins
を使おうと思ったモチベーションにローカルに保存されているクレデンシャルをなくせるのでは無かろうか?というものがあります.以下の引用文にあるように各種 CLI やプログラムからアクセスされる認証情報に 1Password Shell Plugins
を使ってアクセスできます.
1Password Shell Pluginsを使用すると、指紋、Apple Watch、またはシステム認証でサードパーティのCLIを安全に認証するように1Passwordを設定することができます。CLIの認証情報は1Passwordアカウントに保存されるので、認証情報を手動で入力したり、平文で保存したりする必要がありません
対応しているプラグイン
プラグインの一覧は画像にあるものになります.この中から AWS CLI を使ってみます.
AWS CLI 向け1Password Shell Plugins セットアップと AWS CLI の実行確認
まず 1Password Shell Plugins
のセットアップを行います.ドキュメントに沿って設定していきます.なお,クレデンシャルの登録は手動入力しています.
2023/05/07 17:35:58 Loading config file /Users/taddy/.aws/config 2023/05/07 17:35:58 Parsing config file /Users/taddy/.aws/config 2023/05/07 17:35:58 Unrecognised ini file section: DEFAULT ? Import value from: Enter value manually... ? Enter or paste in the value of the Access Key ID: xxx ? Enter or paste in the value of the Secret Access Key: [? for help] **************************************** ? Enter a name to save it in 1Password [default: "AWS Access Key"]: AWS Access Key(private) ? Select the vault to save the Access Key in: Personal ✔ Securely saved "AWS Access Key(private)" in 1Password! ? Configure when "AWS Access Key(private)" will be used to authenticate: Use as global default on my system Successfully set up authentication for AWS CLI. Run any aws command to see it action!
これでプラグインのセットアップは完了ですが,AWS CLI のローカルクレデンシャルを以下のように消して AWS CLI を実行してみます.
$cat ~/.aws/credentials (出力なし) $cat ~/.aws/config (出力なし)
AWS CLI コマンドを実行してみます.登録したクレデンシャル情報が表示されたので,意図通りの動作をしていました.
aws sts get-caller-identity 2023/05/07 17:39:45 Loading config file /Users/taddy/.aws/config 2023/05/07 17:39:45 Parsing config file /Users/taddy/.aws/config 2023/05/07 17:39:45 Profile 'default' missing in config file { "UserId": "12345678912345678123456789", "Account": "123456789124", "Arn": "arn:aws:iam::123456789124:user/taddy" }
参考情報
まとめ
1Password CLI で AWS CLI を実行でき,ローカルからクレデンシャルをなくすことができました.これで万が一 PC が盗まれたりしてローカルにアクセスされたとしてもすぐに AWS にアクセスが容易にできなくなりセキュリティが向上できました.