Vaultの記事をVol.104に寄稿しました。嬉しいことに表紙に見出しVaultは、インフラを自動化するソフトウェアを作ってきたHashicorpならではの、セキュリティ対策や技術またはアイデアがたくさん詰まっているので、ちゃんと理解するには、必要な前提知識や連携するソフトウェアの説明が必要なんですが、今回は残念ながら記事でそれらを省いています。読者によってはわかりにくいかもしれません。それでも、初稿で予定の1.5倍の分量になってしまい、文字数を削るのに苦労しました。Vol.104の当該記事を読んでいただけるとわかりますが、Vaultには、秘密情報を管理するたくさんの機能があります。私は、今回記事を書くにあたって、オフィシャルサイトのドキュメントをくまなく読みました。そこで、Vaultの全体像が見えた時、そのたくさんの機能がVaultの本質を見えにくくしているような印象を感じました。以下の3点がVaultのポリシーとしてソフトウェアの中心にあって、その前提のもと、様々な秘密管理としての機能を持っているということに気がつきました。秘密情報のアクセス権限をバージョン管理できるできるだけ短いサイクルで秘密情報へのアクセス権限を更新する秘密情報へのアクセスをすべて記録するVaultは、オフィシャルサイトで秘密情報管理ツールと定義されていますが、私は「セキュリティ対策をシステム全体でいい感じにする君」だと捉えていいのではないかと思っています。上述の3点は、堅牢さと柔軟さと使いやすさを実現していて、よく考えられていると感心します。Vaultが備えるたくさんの機能においても、便利だけでなく学ぶことが多いです。水を溜めるバケツがあって、「バケツに穴が空いたらどうやって水の漏洩を最小限に防ぐか(これはこれで必要な議論ではありますが)」よりもまず「そもそもバケツに穴が空かない方法」を考えることがべきです。そのようなセキュリティ対応として効率の良さまたは正しさを、Vaultの機能を使うことによって、考えさせられるというのもメリットがある気がしています。記事中にも書きましたが、コストのかかる秘密情報管理やセキュリティ対応は何かと後回しにされがちです。Vaultを使って、今一度、システムのセキュリティを見直しても良いのではないでしょうか。各位、意識高めて、やっていきましょう。使ったハンズオンを記事中で紹介しました。最近では、WebアプリケーションをSPA+SSRで作るケースが多く、バックエンドもJavaScriptで実装することが増えてきました。同等の機能をもつパッケージを作ってみましたのでご紹介します。Vault関数の引数に渡すだけです。Hookが登録され、暗号化/復号が行われていることを感じさせないように使えます。なんども記事のレビューをしていただいた@monochromeganeさんをはじめ、GMOペパボのみなさん、ありがとうございました。あと、記事のフィードバックはとても嬉しいですね。@r_takaishiさんありがとうございます。