HCP Vault Radar 入門
本記事の想定読者
- シークレット管理?なにそれ?な方。
- HCP Vault Radar についてよくわかっていないが、何ができるのか気になっている方。
- HashiCorp Vault でシークレット管理してますが、スキャンなんて要ります?な方。
- 自社のシークレット管理ツールがちゃんと機能しているか気になっている方。
はじめに
シークレット管理?
みなさん、「シークレット管理してますか?」と言われて、ピンときますか?
ん?シークレット?なにそれ?という方も中にはいらっしゃるかもしれませんが、シークレット管理の重要性は近年ますます高まってきています。
そもそもシークレットとは?
シークレットとは、簡単に言うと、「認証情報」です。
例えば、データベースにアクセスするための「パスワード」、サーバにログインするための「SSH鍵」などなど、「アクセスが制御されている何かに対してアクセスするために必要なもの」のことを総称して「シークレット」と呼んでいます。
(SECRETはそりゃシークレットでしょ!というツッコミは聞こえてきません。😌)
ビジネス上の競合優位性を維持する上で、クラウドサービスを活用したアプリケーション開発は欠かせません。一方で、サービスにアクセスするためのシークレットの扱いは蔑ろになっているケースも少なくなく、シークレット起因でのセキュリティインシデントも非常に増えてきています。
シークレットはちゃんと管理しなければいけません。
自分の個人の、例えばFacebookとかGmailとかのパスワードはSlackで誰かと共有したり、平文でExcel等にメモしておくことはないですよね?(そもそもそんなことをしている場合はまずは自分のシークレット管理意識を改めてください。。。)
企業・組織のシークレットは、個人のそれより重要であることが多いです。よね?
シークレット管理ツール : HashiCorp Vault
そんな大事なシークレットを管理するためのツールの一つが、HashiCorp Vaultです。
HashiCorp Vaultは、シークレットの保存、管理、アクセス制御、暗号化、監査など、シークレット管理のベストプラクティス - やらないといけないことはわかっているけど手動でやるのは現実的でない - を実現するための機能を提供しており、多くの企業で採用されています。
HashiCorp Vaultは単純にパスワードを管理するだけではなく、必要な時に動的にシークレットを生成したり、自動的にローテーションを実施したりすることもでき、シークレットを安全に、かつ手間なく管理することができるようになります。
シークレット管理ツールも導入して、一件落着。。。かと思いきや、そんなことはないですよ!というのが本記事の主題であるHCP Vault Radar登場の背景になります。
HCP Vault Radar とは?
シークレット管理ツールを導入したら終わり。。。ではない!
シークレット管理ツールを導入するとき、ほとんどの場合は特定の「存在・利用用途のわかっている」シークレットが対象になります。
この、「すでにわかっている」シークレットが対象になっているというところがポイントです。
シークレットにはさまざまな種類があり、さまざまな使われ方をしているため、全量を把握し続けることは非常に困難であり、どこかにまだ「見つかっていない」シークレットがないか?シークレット管理ツールに保存されているシークレットが外にコピーされていないか?などを追い続けていくことがシークレットを管理することと同様に重要になってきます。
この、シークレットの「発見」を行うためのサービスが HCP Vault Radar になります。その名の通り、レーダーとなって、管理できていないシークレットがないかを調べてくれます。
HCP Vault Radar 基本機能
具体的に、HCP Vault Radarを使ってどんなことができるか、いくつかの主要機能についてご紹介します。
- シークレットのスキャン
- プルリクエストチェック
- Remeditaion (Beta)
1. シークレットのスキャン
HCP Vault Radarは、シークレットを発見(スキャン)するためのサービスです。
以下のようなさまざまなターゲットに対してシークレットが含まれていないかスキャンすることができます。
(一部CLIからのみスキャン可能。)
- Gitリポジトリ
- Confluence
- Jira
- S3
- ファイル・フォルダ
- などなど。。。
HCP Vault Radarでは、上記のようにシークレットが置かれがちなサービスをまとめてスキャンできるところが強みの一つになっています。
また、HCP Vault Radarでは、スキャンの仕方として三つの方法が用意されています。
- HCP Cloud Scan
- Agent Scan
- CLI
HCP Cloud Scan は最もベーシックな方法で、HCP Vault Radarから直接スキャンを実施します。
Agent Scan は、ネットワークの制約等によって HCP Cloud Scan のが使えない場合に利用可能なオプションで、手元に立てたAgentインスタンスからスキャンを実行します。
CLI では、 vault-radar
コマンドを実行することによってスキャンを実行します。サーバーの中に入って直接フォルダをスキャンするような場合に便利です。
スキャン結果はHCP Vault Radarの画面で確認することができます。
2. プルリクエストチェック
Gitリポジトリをスキャンしシークレットを発見することもできますが、PR中にシークレットが含まれているかどうかを確認し、未然に防ぐこともできます。
3. Remediation
こちらはまだ執筆時点ではBeta扱いですが、見つかったシークレットに対してのガイドを出せるような機能です。
シークレットがRadarによって見つかったあと、そのまま放置してしまってはあまり意味がありません。見つかったシークレットをどうすれば安全に管理できるのかのガイドを合わせて提示することによって、シークレット管理の対象にしやすくなります。
さいごに
簡単にはなりますが、HCP Vault Radarについて紹介させていただきました。
シークレット管理は、シークレットの作成・発見からそのシークレットが利用されなくなるまでの「シークレットのライフサイクル全体」を考えることが重要です。
シークレット管理ツールを導入するのみならず、Radar等を活用して散らばったシークレットがないかも気にしてより安全性を高めていただければ幸いです。
Discussion