10月にアムステルダムで開催されたVelocityカンファレンスにおいて,Fugureでセキュリティを担当するプリンシパルエンジニア のAlex Schoof氏が,クラウドのような分散型でスケーラブルな環境での機密管理方法について講演を行った。講演の中でSchoof氏は,機密管理システムを独自の機能を持った複数のコンポーネントに分解し,それぞれを分離することで,公開する部分を厳密に必要なもののみに制限する方法を提案している。
Scoof氏によると,この設計は,大規模システムにおける5つの機密管理の原則を考慮した結果だ。機密管理システムは,各クライアントが本当に必要とする情報のみにアクセスできることを保証するために,認証,許可,アクセス管理のポリシに依存する必要がある。
Scoof氏は機密管理システムについて,アクセスと不要になった機密の更新の簡単な使いやすいものであるべきだ,と強調する。これはユーザが作業する機密情報を,コード内にハードコーディングしたり,あるいはコードやプレーンなテキストファイル内に保存して,システムの目的を損なうような状況を回避するために重要なことだ。すべてのシステムは機密情報に依存するのだから,機密管理システムの障害によるシステム全体のダウンタイムを避けるためにも,Scoof氏は,可用性の高いアーキテクチャを実装することを推奨する。
機密情報は,Scoof氏が“シークレットストア”と呼ぶデータベースに暗号化される。暗号化と複合化に使用するキーは,“マスタキーストレージ”と呼ばれる別のデータベースに分離して保管される。この2つのコンポーネントは互いに独立していて,“シークレットサービス”のみがアクセス可能である。
機密情報を必要とするクライアントやユーザやコンピュータは,シークレットサービスにそれを要求する必要がある。シークレットサービスとしては,クライアントからの認証を必要とし,クライアントのアクセス許可を検証するWebサービスなどが考えられる。シークレットサービスは,シークレットストアに機密情報を,マスタキーストレージには対応するキーを,それぞれ要求する。そのキーを使用して情報を複合化し,クライアントに返送する仕組みだ。
システムを構成するための管理インターフェースも必要だ。これはWebサイト,グラフィカルなユーザインターフェースプログラム,あるいはコマンドラインツールのセットで,捜査権限の付与と取り消し,アクセス制御ポリシの設定などに使用される。認証情報を提供可能な既知のクライアントすべてがアクセス可能なシークレットサービスとは対照的に,管理サービスとマスタキーストレージ,シークレットストアには厳格なアクセスポリシが適用される。例えば,特定のネットワークからのみアクセス可能とする,特別なレベルの認証が必要である,アクセス可能なユーザ数を制限する,などの制限が必要だ。
Alex Shoof氏の “Managing systems at scale” は,O’Reillyのモバイルアプリを使用した参加者や,VelocityカンファレンスWebサイトを通じた参加者で一杯となった,Velocityカンファレンスでも最高レベルの講演のひとつだった。