vsh
対話型の HashiCorp Vault シェルおよび cli ツールです。複数の一般的な操作が付属しており、パスをディレクトリやファイルと同様に扱います。主な機能は次のとおりです。
cp
、 rm
、 mv
grep
による検索 (部分文字列または正規表現)replace
で置き換えますvsh -c "<cmd>"
)append
によるさまざまな戦略とキーのマージbrew install vsh
nix-env -i vsh
最新の静的バイナリをリリース ページからダウンロードします。
有効なトークンを取得するために、 vsh
Vault の TokenHelper メカニズムを使用します。つまり、 vsh
~/.vault-token
、 VAULT_TOKEN
、および外部トークンヘルパーを介したボールト トークンの設定をサポートします。
VAULT_CACERT
環境変数をpem
証明書パスに設定して、サーバーの tls 証明書を追加します。
vsh
操作されたパスに対するList
権限が必要です。これは、パスがパス ツリー内のノードまたはリーフを指しているかどうかを判断するために必要です。さらに、オートコンプリート データを収集する必要があります。
cp
やmv
などのデータを変更するコマンドには、操作されたパスに対するRead
およびWrite
権限がさらに必要です。
利用可能なすべてのバックエンドを確実に検出するには、 vsh
で使用されるボールト トークンにsys/mount
に対するList
権限があることが理想的です。ただし、これは難しい要件ではありません。トークンにsys/mount
に対するList
権限がない場合、 vsh
利用可能なバックエンドを事前に認識しません。つまり、最初は最上位 (バックエンド) レベルでパスの自動補完が行われないことになります。いずれにせよ、 vsh
ベストエフォート戦略を使用して、入力されたすべてのパスの kv バージョンを確実に決定しようとします。
export VAULT_ADDR=http://localhost:8080
export VAULT_TOKEN=root
export VAULT_PATH=secret/ # VAULT_PATH is optional
./vsh
http://localhost:8080 /secret/>
注:指定されたトークンはオートコンプリートに使用されます。つまり、何もrm
やmv
実行しなくても、 List()
クエリはそのトークンを使用して実行されます。 vsh
List()
結果をキャッシュして、クエリの量を減らします。ただし、各コマンドの実行後、正確なタブ補完を行うためにキャッシュがクリアされます。トークンの使用回数が限られている場合は、 List()
クエリを回避するために、非対話モードの使用を検討するか、オートコンプリートをオフに切り替えてください。
Vault に対するクエリの数を減らすには、次の 2 つの方法でパスの自動補完を無効にすることができます。
./vsh --disable-auto-completion
./vsh
http://localhost:8080 /secret/> toggle-auto-completion
Use path auto-completion: false
http://localhost:8080 /secret/> toggle-auto-completion
Use path auto-completion: true
export VAULT_ADDR=<addr>
export VAULT_TOKEN=<token>
./vsh -c "rm secret/dir/to/remove/"
Vault シークレットに取り組むことは非常に重要であり、 vsh
にとって品質と正しい動作が第一級市民となります。そうは言っても、 vsh
まだ小規模なオープンソース プロジェクトであるため、いかなる保証も提供できません。ただし、私たちはテスト駆動開発を重視しています。すべての PR は、広範な統合テスト スイートでテストされます。テストの大部分は KV1 と KV2 で実行され、すべてのテストは Vault 1.13.4
と1.16.2
に対して実行されます。つまり、その間の Vault バージョンにも互換性がある可能性があります。
vsh
の使用は自己責任で行ってください。当社では一切の責任を負わず、いかなる保証もいたしません。
どのような形でも貢献はいつでも大歓迎です!コミュニティからの貢献がなければ、 vsh
今日のツールにはなりませんでした。
要件:
golang
( >= v1.21
)docker
make
make compile
make get-bats
make integration-tests
-v DEBUG
デバッグ ログ レベルを設定します。これにより、Vault API からのエラー オブジェクトを記録するためのvsh_trace.log
ファイルも作成されます。