クラウドが浸透し、SaaS、PaaS、IaaSを問わず、複数のクラウドサービスを使い分けるマルチクラウド環境が当たり前になりつつある。これに伴い、ユーザーID、パスワードなどの機密情報を確実に管理できるか否かがセキュリティ担保の大きな課題になっているが、機密情報は多岐にわたる上、保管場所がサービスごとに異なるなど、その管理は煩雑を極める。ではサービスの利便性を享受しながら、セキュリティを効率的かつ確実に担保するにはどうすればよいのだろうか。多数の企業のシステム設計/構築/運用を手掛けるgrasysに話を聞いた。
クラウドが企業に広く浸透し、その利用形態も多様化する中、さまざまなサービスを利用する際のクレデンシャルをどう管理するかが大きな課題になりつつある。ここで言うクレデンシャルとは「サービスを利用するために必要となる認証情報」を指す。
例えばMicrosoft Office 365やSalesforce、SlackなどのSaaSなら「ID」「パスワード」が、MySQLやPostgreSQLなどがサービスとして提供されるDBaaSなら「root/userアカウント」や「パスワード」が、Amazon S3、Amazon EC2のようなIaaSなら「アクセスキーID」や「シークレットアクセスキー」がクレデンシャルだ。APIを利用するための「APIキー」もある。
もちろん、クレデンシャルは以上のようなパブリッククラウドに限られるわけではない。オンプレミス環境に構築しているLinux/Unixサーバへのログイン情報である「SSH公開鍵」や「秘密鍵」、Windows ServerのActive Directoryにログインするための「ユーザー情報」、基幹系システムを管理するための「特権ID」なども当てはまる。
こうしたさまざまな認証情報の管理は、ITシステムが社内システムを中心に構築されていたころはさほど大きな手間ではなかった。システム規模が小さければ、Excelなどを使ってサービスごとにIDとパスワードの対応表を管理するケースも多かった。
だが現在のように、ハイブリッドクラウド、マルチクラウドが当たり前になると、ログインIDやAPIキーなどを手作業で管理することは現実的ではなくなってくる。特に開発者や運用担当者にとっては、一定のスピードや部門連携の下、各種サービスを使いこなすことが求められるDevOpsのようなプロジェクトほど、クレデンシャルを適切に扱うことが難しくなるという課題もある。
多数の企業のシステム設計・構築・運用を手がけるgrasysで、SRE(Site Reliability Engineer)を務める守永宏明氏は、クレデンシャル管理の課題について、こう説明する。
「クレデンシャルは至るところに存在しますが、多くの場合、一貫した方法で管理されているとは言い難い現実があります。サービスごとに分散して管理されていたり、異なるポリシーの下でアクセス権限などが管理されていたりするケースも目立ちます。言うまでもなく、管理が行き届かなくなれば、情報漏えいなどのセキュリティリスクが増大してしまうのです」
実際、クレデンシャルの不適切な管理によって、情報漏えいが起こるケースは頻発している。例えば、クレデンシャルが記されたファイルのパーミッション設定を間違えれば、第三者がアクセスできるようになり、機密情報を盗み放題になってしまう。ローカルに保存したクレデンシャルが盗まれて情報漏えいにつながるケースも多い。
守永氏によると、こうしたクレデンシャル管理のポイントは「パーミッション」「保存場所」「生成」「デプロイ」「暗号化/復号」の大きく5つに整理できるという。
「パーミッション」とは、「アクセス権限をどう適切に設定するか」だ。SSHの秘密鍵やWindowsの資格情報ファイルなどのパーミッションだけでなく、サーバやExcel、Git、Dropboxなどのクレデンシャルを保存するツールのパーミッションもある。さまざまな機密情報を一貫したポリシーで管理することが求められる。
「保存場所」とは、ローカル環境、社内システム、各種クラウド環境といったさまざまな環境を考慮し、分散したクレデンシャルを統合的に管理することを指す。
「生成」とは、「クレデンシャルをどう作成するか」だ。IDとパスワードを使い回しできないようにすることは当然として、セキュリティ要件を満たすIDやパスワードを自動的に作成したり、期限が来たら自動的に失効させたりすることが求められる。これにより、管理効率とセキュリティ強度を高めることができる。
「デプロイ」とは、「作成したクレデンシャルの展開方法」だ。手動で行うのではなく、複数のクラウドサービス上に自動でクレデンシャルを展開したり、必要に応じてIDやキーを無効化/再発行できたりすることが望ましい。
「暗号化/復号」は特に外せない要件だ。暗号化しておけば万一クレデンシャルが漏えいしても悪用を防ぐことができる。ただし、利用するたびに暗号化/復号処理が必要になるのでは効率が落ちる。ユーザーが意識することなく自動的に暗号化/復号できることが望ましい。
こうしたクレデンシャル管理のポイントを実現し、機密情報を確実に管理できるツールが「HashiCorp Vault」だ。周知の通り、HashiCorpはインフラ構築自動化ツールの「Terraform」、仮想マシンイメージ作成ツール「Packer」、サービスディスカバリ/障害検知の機能を持つ「Consul」などを提供している。これらのツールを組み合わせて、Infrastructure as CodeやDevOpsを実践している企業は多い。
Vaultもこうした開発支援ツールの1つという位置付けだが、近年はそうした枠を超えて、マルチクラウド/ハイブリッドクラウド環境下でのセキュリティ全般を強化するツールとして評価されることがほとんどだという。
「企業のセキュリティレベルを高める上で大きな鍵になるのがクレデンシャルです。基本的には、クレデンシャル管理がしっかりとなされていれば、システムに不正にログインされることはないと言えます。無論、セキュリティ対策の全てをカバーすることはできませんが、その一部をVaultで対応することが可能なのです」
Vaultはクライアント/サーバ型で稼働するソフトウェアだ。前述のような各種機密情報をサーバとなるストレージ上にkey/value形式で一元的に蓄積し、クライアントからの要求(CLI/REST API)に応じて認証や認可を行う。
特長は、前述したクレデンシャル管理のポイント全てを押さえていることだ。具体的には、暗号化によって機密情報を保護する「Secure Secret Storage」、機密情報を自動生成する「Dynamic Secrets」、シームレスな暗号化/復号を行う「Data Encryption」、有効期限を設定して失効させる「Lease&Renewal」、機密情報を無効化する「Revocation」という5つの機能を持つ。
Secure Secret Storageは、Vaultのストレージに保存する前に暗号化して情報を保護する機能だ。このため、ストレージに直接アクセスしても内容を読み取ることはできない。MySQLやAmazon S3など、さまざまなストレージを選択できる。
Dynamic Secretsは、オンデマンドで機密情報を生成する機能だ。例えば、一時的にMySQLのアカウントが必要になったら、Vaultに要求すればUser/Passを自動的に生成してアカウントを発行。発行したアカウントはLeaseが切れたタイミングで削除される。これにより、ID削除忘れなどによる情報漏えいのリスクを削減できる。
Data Encryptionは、データを保存せずに暗号化/復号を行う機能だ。ユーザーは暗号化や復号のための作業をすることなく、シームレスに機密情報を扱うことができる。
Lease&Renewalでは、IDなどの機密情報に設定した有効期限が切れると、自動的に廃止したり、更新 APIを使って期限を更新したりできる。
Revocationは、機密情報をRevoke(無効化)する機能だ。1つの機密情報だけではなく、全ての機密情報をRevokeすることができる。Key Rolling(鍵の自動更新)機能も備わっており、不正侵入時の迅速な復旧対応にも役立つ。
Vaultはグローバルで非常に多数の企業に導入され、実際に効果を上げている。例えば米Adobeでは 、ハイブリッドクラウド上に構築したマイクロサービスを一貫したポリシーの下で管理するために、Vaultを採用。この他にもNew Relic、Pinterestといったスタートアップから、米CiscoやSAP Aribaのような大規模企業まで、多数のユーザー企業が存在するという。
grasysはHashiCorpとパートナー契約を結び、Vaultの国内展開を手がけている。ライセンスの販売だけでなく、システム開発/クラウドインテグレータとして、システムのコンサルティングから実装、運用支援までをソリューションとして提供している。特に、Google Cloud Platformを利用することでコストを抑えた開発ができること、高い性能要求と安定性が求められるシステム開発を得意とする点などが強みだという。
「ハイブリッドクラウド、マルチクラウドなど、クラウドの利用が活発化し、業務で使うサービス/アプリケーションの種類が増えています。一方で、情報漏えいなどのセキュリティ事件/事故が相次いでおり、クレデンシャルをどう管理していけばよいか、セキュリティをどう強化すればよいかといった相談が年々増えている状況です。現状を野放しにしておくと、サイバー攻撃や内部犯行などの脅威が大きくなり、大きなダメージを被る可能性があります。その1つの解決策として、Vaultは非常に有効なソリューションになり得ると考えます」
なお、VaultはOSS(オープンソースソフトウェア)版と、2種類のEnterpriseライセンス版が提供されている。まずはOSS版を使って小さなプロジェクトから開始し、効果を確認しながら少しずつ実装していくこともできれば、その後、マルチクラウドの大規模環境にまで展開していくことも可能だ。
どのような計画でVaultを社内に展開していくかは、grasysのコンサルティングサービスやシステム開発サービスでサポートしていくという。ポリシーの構築や設定、運用のアドバイスなども可能だ。
「Vaultの知名度は、日本ではまだそれほど高くありませんが、“実績のある企業が開発した、実績のあるツール”です。ぜひVaultを使って、業務効率や開発の生産性を高めつつ、セキュリティ強化に取り組んでいただきたいと思います」
Copyright © ITmedia, Inc. All Rights Reserved.
提供:株式会社grasys
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2018年9月30日