LoginSignup
2
1

More than 3 years have passed since last update.

vsh で HashiCorp Vault をインタラクティブに操作する

Last updated at Posted at 2019-10-15

vsh とは

HashiCorp Vault 内に格納されているシークレットをインタラクティブに操作できる Go製 の CLI です。
https://github.com/fishi0x01/vsh
66355982-9872a980-e969-11e9-8ca4-6a2ff215f835.gif
シークレットパスをディレクトリのように扱うことが可能で補完機能も充実しており、2019年10月10日 (木) に最初のバージョン v0.1.0 がリリースされました。Vault KV v1, v2 をサポートしており Interactive modeNon-interactive mode の2つのモードで実行が可能となっています。

インストール方法

バージョンは以下を参照ください。
https://github.com/fishi0x01/vsh/releases

macOS の場合

VERSION=v0.1.1
wget https://github.com/fishi0x01/vsh/releases/download/${VERSION}/vsh_darwin_amd64
mv vsh_darwin_amd64 /usr/local/bin/vsh
chmod a+x /usr/local/bin/vsh

Linux系OS の場合

VERSION=v0.1.1
wget https://github.com/fishi0x01/vsh/releases/download/${VERSION}/vsh_linux_amd64
chmod a+x vsh_linux_amd64
mv vsh_linux_amd64 /usr/local/bin/vsh
chmod a+x /usr/local/bin/vsh

サポートされているコマンド

v0.1.1 では以下のコマンドがサポートされています。

mv <from-path> <to-path>
cp <from-path> <to-path>
rm <dir-path or filel-path>
ls <dir-path // optional>
cd <dir-path>
cat <file-path>

手元で vsh を試したい方はこちら

Root Token を root に設定して Vault を "Dev" Server Mode で起動します。

$ docker run -d --name vault -p 8200:8200 --cap-add=IPC_LOCK -e 'VAULT_DEV_ROOT_TOKEN_ID=root' vault:1.2.3
ba773aa8c7a2fbd6014c7969c310191a16f12394e81c614df2a5d160bb94644f

シークレットがないと操作感を体感できないと思うので、以下のコマンドでテストデータを追加します。

for env in dev stage prod; do
    for i in {1..5}; do
        docker exec \
            -e 'VAULT_ADDR=http://localhost:8200' \
            -e 'VAULT_TOKEN=root' vault \
            /bin/vault kv put secret/${env}/service${i}/password password=${RANDOM}
    done
done

vsh は v0.1.1 を使用します。

$ vsh -version
v0.1.1

VAULT_ADDRVAULT_TOKEN を指定して vsh を実行すると Interactive mode で起動するので、あとは手元で操作感を体感してみてください。

$ export VAULT_ADDR=http://localhost:8200
$ export VAULT_TOKEN=root
$ vsh

vsh を終了する際には exit と入力してください。

$ vsh
http://localhost:8200 /> exit

以下で Non-interactive mode での実行も可能です。

$ vsh -c 'cat secret/prod/service1/password'
password = 2768
destroyed = false
version = 1
created_time = 2019-10-15T14:49:59.9722335Z
deletion_time =

コンテナのお片付けも忘れずに。

$ docker rm -f vault
vault

まとめ

HashiCorp Vault をインタラクティブに操作する vsh の紹介でした。
実際に触ってみて便利だったのでこれから使っていこうと思います。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1