HashiCorp、シンプルなシークレット管理クラウドサービス「HCP Vault Secrets」パブリックベータ公開。シークレットを集中管理し環境変数で提供
今回は「HashiCorp、シンプルなシークレット管理クラウドサービス「HCP Vault Secrets」パブリックベータ公開。シークレットを集中管理し環境変数で提供」についてご紹介します。
関連ワード (発表、記述、適切等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
HashiCorpは、ソフトウェア実行時に必要となるトークンやパスワードといった、いわゆるシークレットを安全に保管し提供するクラウドサービス「HCP Vault Secrets」をパブリックベータとして公開したことを発表しました。
同社はシークレットを管理するソフトウェアとして、以前からオープンソース版の「Vault」を公開しており、それを企業向けに強化した商用版のソフトウェア「Vault Enterprise」、そしてVault Enterpriseをクラウド上でマネージドサービスとして提供する「HCP Vault」を既に提供しています。
今回パブリックベータとなった「HCP Vault Secrets」は、HCP Vaultをシンプルにし使いやすくしたサービスであり、HTTP専用で、HCP Vaultのクラスタサイズやバージョンなどの構成を気にすることなく、サーバレスのようなサービスとしてすぐに利用可能にしています。
シークレットを環境変数経由で提供
例えば、業務アプリケーションがバックエンドデータベースにアクセスする際には、適切なユーザーIDとパスワードが要求されます。クラウド上のサービスにアクセスする場合には、適切なAPIキーやトークンが要求されるでしょう。
しかしアプリケーションのソースコードにこうしたIDやパスワード、トークンなどの、いわゆるシークレットを直接書き込むのは適切ではありません。
万が一ソースコードが漏洩した場合には深刻なセキュリティリスクを引き起こしますし、そうでなくともIDやパスワードが変更された場合にソースコードを書き直してビルドし直すのは手間です。
こうしたシークレットを安全に保管し、適切にアプリケーションに渡す仕組みを備えているのがHCP Vault Secretsです。
下記はデモ動画からの引用です。
Slackのボットを実現するソースコードで、シークレットの部分となるトークンとチャンネル部分を、環境変数を取得するように記述します。
HCP Vault Secretsの管理画面で、SLACK_TOKENを定義し、値を設定します。同様にSLACK_CHANNELも定義して値を設定します。
アプリケーションのコードエディタのシェルにHCP Vault Secretsのコマンド(vlt)をインストールし、vlt secretsコマンドを実行すると、環境変数に先ほど登録した値が設定されていることが分かります。
vlt runコマンドでアプリケーションを実行すると、環境変数経由でシークレットをアプリケーションに渡すことができます。
このようにしてシークレットの保管やアプリケーションへの提供を実現します。
AWS Secrets Managerを皮切りに既存のプラットフォームのツールにシークレットを同期する機能も提供するとしており、HCP Vault Secretsでシークレットを集中管理しつつマルチクラウドそれぞれのツール対応を進めることも可能となっています。