HashiCorpが機密管理ツールVaultのバージョン1.0をリリースした。これに伴い、Vaultサーバを障害や再起動後に継続使用するために必要なAuto Unseal機能がオープンソース公開されている。今回のバージョンでは、バッチと呼ばれる新しいタイプのトークンが一時的ワークロードで使用できるようになった。もうひとつの新機能として、Projected Volume経由でサービスアカウントトークンがKubernetes Authでサポートされたことで、ポッドにトークンを挿入可能になった。HashiCorpはさらに、Vault使用時の認証情報が不必要にアクセスされることを回避するために、Vault Advisorというサポートユーティリティもローンチした。
従来はエンタープライズバージョンのみの提供であったAuto Unseal機能のオープンソース公開は、KubernetesのグルであるKelsey Hightower氏を中心に強く求められていたものだ。Auto Unsealは、クラスタに障害や再起動が発生した後に、データを復号化するためのプロセスである。Vaultは初回起動時にシールされ、ストアされるデータはすべて暗号化されている。従ってデータを復号化するには、最初にシールを解除(アンシール)することが必要になる。
Auto Unsealプロセスをクラウドプロバイダのキー管理サービスに統合することも可能だ。Unsealプロセスを任せることで、部分的な障害発生時のオペレーションが容易になる。例えばAWS KMSでは、マスタキーは、それまでストアされていたキーを使ってアンシールされるように再構成される。AWS、Azure、GCP、Alibabaといった、すべての主要なクラウドプロバイダがサポートされており、TerraformやAWS KMS用のガイドも用意されている。
vault-initやvault-unsealer、vault-unsealといったGitHubのプロジェクトには、Vaultのエンタープライズバージョンを持たない人のために、Auto Unseal機能のレプリカをすでに備えたものがある。しかし今回、これまでは企業ユーザが使ってきたこの機能が、一般のコミュニティでも公式に利用可能になったことにより、これらのプロジェクトはもはや必要ではなくなった。
Vault 1.0のもうひとつの重要な機能は、バッチトークンと呼ばれるトークンのタイプが新たに用意されたことだ。これに伴い、これまで単にトークンと呼ばれていたものは、サービストークンと呼ばれるようになる。サービストークンは更新(renewal)や無効化(revocation)といった機能をすべてサポートし、トラッキングのためにVaultクラスタにストアされる。バッチトークンはディスク上に格納領域を必要としないため、サーバレスアプリケーションのように短命で集中的なワークロードに適している。
Kubernetesとの統合性も改善された。ポッドで動作するアプリケーションはVaultを使って、シークレットや暗号化操作、動的アクセスを管理することができる。例えば、Dynamic Secretsを使って、一時的なデータベース認証情報を動的に要求するポッドの開発が可能だ。
Vault Advisorというサポートユーティリティも同時にローンチされた。Vaultが正しく構成されているか、アプリケーションで適切に使用されているかを報告することで、Vaultを適切に使用するようにユーザを指導する。Vaultのログを参照して、Vaultの運用を改善する方法を検出する機能も備えている。例えば、ユーザが自身のVaultキーを使用するために所有する権限が、必要最小限であることの検証を行なう。
HashiCorp CTOのArmon Dadgar氏によると、1.0というバージョンは、主なユースケースが理解され、安定し、AdobeやHulu、Splunk、Equinixなど多くの企業で広く展開されたという意味である、ということだ。
HashiCorp Vault 1.0は同社のWebサイトからダウンロードすることができる。