セキュリティ対策におけるクレデンシャル情報の課題をVaultで解決
grasysは創業4年目の、Google Cloud Platform(GCP)などクラウドを主体としたシステムの設計、構築、安定した運用を手掛けるMSP事業者である。ゲームシステムやWebシステムのインフラ、サービスのバックエンドを担当するほか、最近ではBigQueryへのデータフロー設計・管理・運用などの分析基盤システム系の業務も増えているという。
守永氏は2015年にgrasysへ入社。現在は某グローバル通信ゲームのインフラ環境をGCP上に構築・運用し、監視プログラムの設計・開発などを担当。Google Certified Professional(認定プロフェッショナル)のクラウドアーキテクトとデータエンジニアの認定資格も取得しており、「それなりにできる人」と笑いながら自己紹介をし、Vaultの紹介とその使い方について解説を始めた。
「セキュリティ対策におけるクレデンシャル管理に課題を感じている人も多いのでは」と参加者に語りかける守永氏。この課題のソリューションとして守永氏がお勧めするのが米HashiCorp社の「Vault」である。
grasysでは「設立当初の2014年からHashiCorp社のOSS製品をよく使ってきた」と守永氏は言う。オーケストレーション製品の「Serf」、サービスディスカバリーおよびサービスの監視製品「Consul」、プロビジョニング製品の「Terraform」などはその一例だという。「ずっとHashiCorp社の製品はいいなと片思いし続けていたが、晴れて7月27日にHashiCorp社とパートナー契約を結ぶことができた」と喜びを表す。
Vaultは煩雑になってきているクレデンシャル管理の問題を解決するソリューションを提供するソフトウェア。日本ではまだそれほど知名度はないかもしれないが、海外ではAdobeをはじめ有名企業で使われているという。「特に金融系やSNSなどでよく使われている」と守永氏。機密情報の管理や暗号化サービス、アイデンティティ・アクセス管理などのユースケースが多数、登場している。
「システムにおいて、クレデンシャル管理はつきものだ」と守永氏は説明を続ける。クレデンシャル管理における課題は主に5つある。第一はパーミッション。適切なサーバやスプレッドシート、Git、Dropboxなど、権限が与えられたユーザーのみが触れるようになっているのかなど、適切に管理できているのかといった課題だ。
第二は保存場所。「クレデンシャル情報をローカル、サーバ、クラウドに置くなどしていろいろなところで保存していると思うが、両方に存在していてどちらが新しいかわからなくなり、困ることも多いのでは」と守永氏は指摘する。
第三はデプロイ方法。「一貫性のあるデプロイ方法を使っているか。例えばJenkinsを使っている際、環境変数に人が介在するとミスになることもある。そこが課題になる」と守永氏。
第四は生成方法。適当な乱数、文字と特殊文字で構成された強力な長いパスワードを使っているか、適切に定期的に変更できているかなどの課題がある。
第五は暗号化/復号。「クレデンシャル自体が難しいポリシーになる」と守永氏。クレデンシャルを保存している場所は本当に暗号化されているのか、それを復号する際はシームレスにできているのかといった課題がある。
「このようなクレデンシャル情報にまつわる煩雑な課題を解消するのが、Vaultである。Vaultはクレデンシャル管理におけるパラダイムシフトを起こしてくれるソフトウェアだ」と守永氏は力強く語り、Vaultの主な機能の解説に移った。
まずは「Secure Secret Storage」。VaultはSecretをストレージに保存する前に暗号化するので、ストレージに直接アクセスしても内容は読み取れないようになっているのだ。さらにVaultはさまざまなストレージに暗号化されたSecretを書き込むことができるようになっている。
第二の機能は「Dynamic Secrets」。VaultはオンデマンドでMySQLやGCP APIのSecretを生成することができる。一時的にMySQLのアカウントが必要になると、Vaultに要求すればUser/Passを自動生成して新しいアカウントを発行してくれるのだ。「発行したアカウントはリースが切れたタイミングで削除できる」と守永氏。
第三の機能は「Data Encryption」。Vaultはデータを保存せずに暗号化・復号できるので、利用者はあまり意識することなくシームレスに暗号化されたデータを扱うことができるようになる。
第四の機能は「Lease&Renewal」。VaultのSecretにはリースIDがひも付いている。従ってTTLが切れるとSecretは利用できなくなる。そしてTTLをリセットするためのRenew機能も用意されているのだ。
第五の機能は「Revocation」。VaultにはSecretをRevoke(取り消す)するための機能が備わっている。Seal機構によりシステムロックすることもできる上、Key Rollingの機能も備わっている。