【文献】
デブ・ラドクリフ,仮想化テクノロジー・アップデート Part 4,COMPUTERWORLD Get Technology Right,日本,(株)IDGジャパン,2008年 1月 1日,第5巻 第1号,p.66−70
(58)【調査した分野】(Int.Cl.,DB名)
前記オペレーティングシステムソフトウェアまたはデータの検証に対する前記要求は、前記コンフィギュレーションのプロバイダまたは前記インスタンスのユーザーから受け取られる、
請求項1に記載のシステム。
前記コンフィギュレーション整合性ベリファイヤーは、前記コードまたはデータの前記プロバイダからの前記コードまたはデータの検証に対する要求に応えて、前記コードまたはデータのプロバイダに送信される、
請求項7に記載の方法。
前記コンフィギュレーション整合性ベリファイヤーは、前記コードまたはデータの検証に対する前記コンピューティングリソースのユーザーによる要求に応えて、前記コードまたはデータのユーザーに送信される、
請求項7に記載の方法。
前記コンフィギュレーション整合性ベリファイヤーは、前記コンピューティングリソースのユーザーが前記コンピューティングリソースにアクセスする前に、前記コードまたはデータのプロバイダに送信される、
請求項7に記載の方法。
【発明を実施するための形態】
【0006】
信頼されるプラットホームの活用および検証のためのハードウェア技術およびソフトウェア技術が概して本明細書に説明される。コンピューティングリソースが既知のコンフィギュレーションまたは所望されるコンフィギュレーションであることを、コンピューティングリソースサービスプロバイダによって確証するためのシステムおよび方法の実施形態が説明される。例えば、仮想マシンが既知のコンフィギュレーションにブートされた旨の確認が提供されてよい。多様な実施形態では、データセンタ等のコンピューティングリソースサービスプロバイダは、ロードプロセスおよびコンフィギュレーションプロセスと対話して信頼されるサードパーティにコンフィギュレーションのバリデーションを与える信頼されるサードパーティとしての機能を果たしてよい。いくつかの実施形態では、サードパーティバリデーションは、データセンタで実行中のプロセスによって提供されてよい。例えば、ブートプロセスと対話して、帯域外で照会できるロード検証サービスまたはコンフィギュレーション検証サービスが実装されてよい。ロード検証サービスまたはコンフィギュレーション検証サービスは、要求されたバーチャルリソースのプロビジョニング、ブートローダをセットアップすること、およびバーチャルリソースと対話することに責任があることがある。ブートローダはロード検証サービスまたはコンフィギュレーション検証サービスと通信して、検出されたコンフィギュレーションを記録または監査してよい。ブートローダによって提供される値は、通常、ライトワンスであり、システムをリブートすることによってだけリセットされる。ロード検証サービスまたはコンフィギュレーション検証サービスはロードされたファイルの暗号チェックサムを生成、および提供してもよい。ロード検証サービスまたはコンフィギュレーション検証サービスはチェックサム値およびブートコンフィギュレーションを認可された関係者に提供し、認可された関係者が独自の検証方法に頼ることなくバーチャルリソースのブートコンフィギュレーションの整合性を決定できるようにする。
【0007】
図1は、本開示に係るロード検証サービスまたはコンフィギュレーション検証サービスを提供するための機構を含むシステム100を示す図である。本開示では、ロード検証サービスは、サードパーティ検証サービスまたはコンフィギュレーション検証サービスと呼ばれることもある。該用語は、交互に用いられてよい。
図1を参照すると、システム100は、1つまたは複数のサーバコンピュータ130および140上で実行してよい仮想マシンインスタンス110および120を含んでよい。いくつかの実施形態が、システム100の追加のサーバコンピュータ上でインスタンス化されてよい追加の仮想マシンインスタンスを含むことがあることが理解される。
【0008】
図1は、コンピュータ160および170等の1つまたは複数のコンピュータデバイスを含んでよい公衆網150も示す。一実施形態に従って、仮想マシンインスタンス110は、ゲートウェイ190並びにコンピュータ160および170を介して公衆網150のコンピュータユーザー(不図示)にコンピューティングサービスを提供するように構成されてよい。例えば、仮想マシンインスタンス110は、例えば企業カスタマの従業員であってよいユーザーのグループに対しリモートアクセス企業アプリケーションのセットを提供してよい。
【0009】
カスタマ、ユーザー、管理者、またはシステム100の任意のコンピューティングリソースは、特定のソフトウェアコンフィギュレーションでリソースインスタンスを要求してよい。一実施形態では、ブートプロセスおよびロードプロセスと対話するコンフィギュレーション検証サービス180が提供されてよい。要求されたバーチャルリソースはシステム100によってプロビジョニングすることができ、コンフィギュレーション検証サービス180はバーチャルリソースと対話するように構成されてよい。例えば、インスタンスマネージャ(例えば、ハイパーバイザまたはDom0)は、ブート中に仮想マシンにロードされたファイルを識別し、検出されたコンフィギュレーションを追跡調査し、ファイルのリストを報告する、またはファイル自体をコンフィギュレーション検証サービス180に送信できる。同様に、インスタンスを起動するために使用されるブートローダは、コンフィギュレーション検証サービス180と通信して、検出されたコンフィギュレーションを追跡調査し、報告するように構成されてよい。一実施形態では、インスタンスマネージャまたはコンフィギュレーション検証サービス180は、ロードされたファイルの監査を提供し、チェックサムを生成してよい。コンフィギュレーション検証サービス180は監査結果およびチェックサム値を認可された関係者に提供し、認可された関係者がバーチャルリソースのブートコンフィギュレーションの整合性を検証できるようにする。コンフィギュレーション検証を提供することによって、システム100はある特定のコンフィギュレーションの信頼される確認を効率的に提供できる。信頼される確認は、データセンタのカスタマによって、データセンタの管理者、特定のソフトウェア製品のプロバイダまたはベンダ、またはサーバ130等のデータセンタ内の任意のコンピューティングリソースによって直接的に要求されてよい。サーバ130は、それ自体の代わりにまたは他のサーバの代わりに要求を送信してもよい。
【0010】
本開示の多様な態様は、本開示を説明することを目的とするが、本開示を制限することを目的としない、特定の実施例および実施形態に関して説明される。
【0011】
データセンタは、多様なタイプのクラウドベースのコンピューティングまたは記憶等の、インターネットを介してアクセス可能な1つまたは複数のサービスを、分散されたクライアントのセットに提供してよい。データセンタは、物理コンピュータサーバおよび仮想コンピュータサーバ、記憶デバイス、ネットワーキング設備等の集合体等の、データセンタによって提供されるサービスを実装し、分散するために必要とされる多様なリソースプールをホストしてよい。また、データセンタは、カスタマがユーザーによって定義されるバーチャルネットワークでコンピューティングリソースを起動してよいそのデータサービスの私設のセクションおよび隔離されたセクションも提供してよい。いくつかの実施形態では、ネットワークインタフェース仮想化サービスの機能性の異なる部分が、プロバイダネットワークの多様なハードウェアプラットホームで実行中のハイパーバイザまたはオペレーティングシステムのモジュール、エッジデバイスのルータソフトウェア等のいくつかの異なる協調するソフトウェア構成要素および/またはソフトウェアデバイスの中に組み込まれてよい。
【0012】
一実施形態では、データセンタはカスタマに、それぞれがカスタマがリソースと対話できるようにするためのネットワークアドレス可能性を必要とすることがある、仮想化されたコンピュータリソースおよび/または記憶リソースの1つまたは複数のインスタンスを提供してよい。
【0013】
図2は、本明細書に説明される実施形態が実装されてよい例のコンピューティング環境を示す。
図2は、通信ネットワーク230を介して(本明細書では単数で「1つのコンピュータ202」と、または複数形で「コンピュータ202」と呼ばれることがある)ユーザーコンピュータ202aおよび202bを介して(本明細書では単数で「1人のユーザー200」と、または複数形で「ユーザー200」と呼ばれることがある)ユーザー200aおよび200bにコンピューティングリソースを提供できるデータセンタ210の例を概略で示す図である。データセンタ210は、恒久的に、または必要に応じてアプリケーションを実行するためのコンピューティングリソースを提供するように構成されてよい。データセンタ210によって提供されるコンピューティングリソースは、データ処理リソース、データ記憶リソース、データ通信リソース等の多様なタイプのリソースを含んでよい。各タイプのコンピューティングリソースは汎用であってよい、またはいくつかの特定のコンフィギュレーションで利用可能であってよい。例えば、データ処理リソースは仮想マシンインスタンスとして利用可能であってよい。インスタンスは、ウェブサーバ、アプリケーションサーバ、メディアサーバ、データベースサーバ等を含むアプリケーションを実行するように構成されてよい。データ記憶リソースは、ファイル記憶デバイス、ブロック記憶デバイス等を含んでよい。
【0014】
コンピューティングリソースの各タイプまたはコンフィギュレーションは―多くのプロセッサ、大量のメモリ、および/または大きな記憶容量から成る―大型リソース、およびより少ない数のプロセッサ、より少量のメモリ、および/またはより小さい記憶容量から成る−小型リソース等の異なるサイズで使用可能であってよい。カスタマは、ウェブサーバとしてのいくつかの小型処理リソースおよび/または例えばデータベースサーバとしての1つの大型処理リソースを割り当てることを選んでよい。
【0015】
データセンタ210は、(本明細書では単数で「1つの仮想マシンインスタンス218」または複数で「仮想マシンインスタンス218」と呼ばれることがある)仮想マシンインスタンス218aおよび218bとして使用可能なコンピューティングリソースを提供する(本明細書では単数で「1つのサーバ216」または複数で「サーバ216」として呼ばれることがある)サーバ216aおよび216bを含んでよい。仮想マシンインスタンス218は、ウェブサーバ、アプリケーションサーバ、メディアサーバ、データベースサーバ等を含むアプリケーションを実行するように構成されてよい。提供されてよい他のリソースはデータ記憶リソース(不図示)を含み、ファイル記憶デバイス、ブロック記憶デバイス等を含むことがある。
【0016】
コンピューティングハードウェアに対する仮想化技術の可用性は、カスタマに大規模なコンピューティングリソースを提供し、コンピューティングリソースを複数のカスタマ間で効率的に且つ安全に共用できるようにするための利点を提供してきた。例えばVMwareまたは他の仮想化システムによって提供される技術等の仮想化技術は、物理コンピュータデバイスによってホストされる1つまたは複数の仮想マシンインスタンスを各ユーザーに提供することによって物理コンピュータデバイスを複数のユーザー間で共用できるようにしてよい。仮想マシンインスタンスは、別個の論理コンピューティングシステムとしての機能を果たすある特定の物理コンピューティングシステムのソフトウェアエミュレーションであってよい。係る仮想マシンインスタンスは、所与の物理コンピューティングリソースを共用する複数のオペレーティングシステムの間で隔離を提供する。さらに、いくつかの仮想化技術は、単一の仮想マシンインスタンス等の1つまたは複数の物理リソースに及ぶバーチャルリソースを、複数の異なる物理コンピューティングシステムに及ぶ複数の仮想プロセッサに提供してよい。
【0017】
図2を参照すると、通信ネットワーク230は、例えば、リンクされたネットワークの公にアクセス可能なネットワークであってよく、おそらくインターネット等の多様な異なる関係者によって運営されてよい。他の実施形態では、通信ネットワーク230は、全体的にまたは部分的に非特権ユーザーがアクセスできない、例えば企業ネットワークまたは大学ネットワーク等のプライベートネットワークであってよい。さらに他の実施形態では、通信ネットワーク230は、インターネットへおよび/インターネットからのアクセスを備えた1つまたは複数のプライベートネットワークを含んでよい。
【0018】
通信ネットワーク230は、コンピュータ202へのアクセスを提供してよい。ユーザーコンピュータ202は、ユーザー200またはデータセンタ210の他のユーザーによって活用されるコンピュータであってよい。例えば、ユーザーコンピュータ202aまたは202bは、サーバ、デスクトップ型パソコンもしくはラップトップ型パソコン、タブレットコンピュータ、無線電話、パーソナルデジタルアシスタント(PDA)、電子書籍リーダ、ゲーム機、セットトップボックス、またはデータセンタ210にアクセスできる任意の他のコンピュータデバイスであってよい。ユーザーコンピュータ202aまたは202bは、(例えば、ケーブルモデルまたはデジタル加入者回線(DSL)を介して)インターネットに直接的に接続してよい。2つのユーザーコンピュータ202aおよび202bしか示されていないが、複数のユーザーコンピュータがある可能性があることが理解されるべきである。
【0019】
また、ユーザーコンピュータ202は、データセンタ210によって提供されるコンピューティングリソースの態様を構成するために活用されてもよい。この点で、データセンタ210は、その動作の態様がユーザーコンピュータ202上で実行中のウェブブラウザアプリケーションプログラムを使用することによって構成されてよい、ウェブインタフェースを提供する可能性がある。代わりに、ユーザーコンピュータ202で実行中のスタンドアロンアプリケーションプログラムは、コンフィギュレーション動作を実行するためにデータセンタ210によって曝露されるアプリケーションプログラミングインタフェース(API)にアクセスする可能性がある。アプリケーションに更新を配備することを含む、データセンタ210の動作を構成するための他の機構も活用される可能性がある。
【0020】
図2に示されるサーバ216は、上述されたコンピューティングリソースを提供するために適切に構成された標準サーバであってよく、1つまたは複数のアプリケーションを実行するためのコンピューティングリソースを提供してよい。一実施形態では、コンピューティングリソースは、仮想マシンインスタンス218であってよい。仮想マシンインスタンスの例では、サーバ216のそれぞれが、仮想マシンインスタンス218を実行できる(本明細書では単数で「1つのインスタンスマネージャ220」と、または複数形で「インスタンスマネージャ220」と呼ばれることがある)インスタンスマネージャ220aまたは220bを実行するように構成されてよい。インスタンスマネージャ220は、仮想マシンモニタ(VMM)または例え仮想マシンインスタンス218のサーバ216上での実行を可能にするように構成された別のタイプのプログラムであってよい。上述されるように、仮想マシンインスタンス218のそれぞれは、アプリケーションのすべてまたは一部を実行するように構成されてよい。
【0021】
上記に開示されている実施形態が仮想マシンインスタンスのコンテキストを説明しているが、他のタイプの実装が本明細書に開示される概念および技術で活用できることが理解されるべきである。例えば、本明細書に開示される実施形態は、仮想マシンインスタンスを活用しないコンピューティングシステムと活用される可能性もある。
【0022】
図2に示される例のデータセンタ210では、ルータ214は、サーバ216aおよび216bを相互接続するために活用されてよい。ルータ214は、通信ネットワーク230に接続されるゲートウェイ220に接続されてもよい。ルータ214は、データセンタ210のネットワーク内の通信を、例えば係る通信の特徴(例えば、ソースアドレスおよび/または宛先アドレス、プロトコル識別子等を含むヘッダ情報)、および/またはプライベートネットワークの特徴(例えば、ネットワークトポロジに基づいたルート等)に基づいて適宜にパケットまたは他のデータ通信を転送することによって管理してよい。簡略にするために、この実施例のコンピューティングシステムおよび他のデバイスの多様な態様は、特定の従来の詳細を示すことなく説明されることが理解される。追加のコンピューティングシステムおよび他のデバイスは、他の実施形態で相互接続されてよく、異なる方法で相互接続されてよい。
【0023】
図2に示されるネットワークトポロジが大いに簡略化されていること、並びにさらに多くのネットワークおよびネットワーキングデバイスが本明細書に開示される多様なコンピューティングシステムを相互接続するために活用され得ることが理解されるべきである。これらのネットワークトポロジおよびデバイスは当業者に明らかとなるべきである。
【0024】
図2に説明されるデータセンタ210が例示的にすぎないこと、および他の実装が活用される可能性があることも理解されるべきである。さらに、本明細書に開示される機能性は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの組合せで実装される可能性があることが理解されるべきである。他の実装は、当業者に明らかになるべきである。サーバ、ゲートウェイ、または他のコンピュータデバイスは、デスクトップコンピュータもしくは他のコンピュータ、データベースサーバ、ネットワーク記憶デバイスおよび他のネットワークデバイス、PDA、タブレット、携帯電話、無線電話、ページャ、電子手帳、インターネット機器、(例えば、セットトップボックスおよび/またはパーソナル/デジタルビデオレコーダを使用する)テレビベースのシステム、並びに適切な通信機能を含む多様な他の消費者向け製品を制限なく含む、対話し、説明されているタイプの機能性を実行できるハードウェアまたはソフトウェアの任意の組合せを含んでよいことも理解されるべきである。さらに、示されているモジュールによって提供される機能性は、いくつかの実施形態ではより少ないモジュールで組み合されてよい、または追加のモジュールで分散されてよい。同様に、いくつかの実施形態では、示されているモジュールのいくつかの機能性は、提供されないことがある、および/または他の追加の機能性が使用可能であってよい。
【0025】
データセンタ210によって提供される購入済みのコンピューティングリソースの容量は、需要に応えてスケーリングされてよい。この点で、スケーリングは、(本明細書では「起動する」または「作成する」と呼ばれることもある)インスタンス化する、または需要に応えてコンピューティングリソースのインスタンスを(本明細書では「デスケーリング(de-scaling)」と呼ばれることがある)終了するプロセスを指す。このようにして、データセンタ210のカスタマによって購入されるリソースの容量は、オンデマンドでスケーリングできる。
【0026】
自動スケーリングは、これらのリソースの需要の増加または一時的休止に応えてコンピューティングリソースをスケーリングするための1つの機構である。自動スケーリングは、データセンタ210のカスタマがデータセンタ210を構成して、カスタマによって定められた条件に従って購入したコンピューティングリソースをスケーリングできるようにする。例えば、規則は、需要の急増等の指定された条件の発生に応えて特定の方法で容量を拡大するために定められてよい。同様に、規則は需要の一時的休止等の他の条件の発生に応えて特定の方法で容量を縮小するために定められる可能性もある。仮想マシンインスタンスを起動するための本明細書に開示される機構は、インスタンスがカスタマによって手動で起動されるとき、またはインスタンスがデータセンタ210の自動スケーリング構成要素によって起動されるときに活用される可能性がある。
【0027】
また、データセンタ210は、コンピューティングリソースの新しいインスタンスの配備においてカスタマを支援するように配備構成要素と構成されてもよい。配備構成要素は、新しいインスタンスがどのようにして構成されるべきであるのかを説明するデータを含むコンフィギュレーションをカスタマから受け取ってよい。例えば、コンフィギュレーションは、新しいインスタンスでインストールされる必要がある1つまたは複数のアプリケーションまたはソフトウェア構成要素を指定し、新しいインスタンスで実行されるスクリプトおよび/または他のタイプのコードを提供し、アプリケーションキャッシュがどのように準備される必要があるのかを指定するキャッシュ警告論理、および他のタイプの情報を提供する可能性がある。配備構成要素は、カスタマによって提供されるコンフィギュレーションおよびキャッシュ警告論理を活用して、コンピューティングリソースの新しいインスタンスを起動、構成、および準備する。
【0028】
多くの場合に、データセンタのカスタマ、またはデータセンタへのソフトウェアもしくはデータのサプライヤが、指定されたコンピューティングコンフィギュレーションが修正されていない、または改ざんされていない旨の検証を要求することがある。例えば、カスタマは、指定された運用システムがロードされている旨の保証を受け取ることを望むことがある。いくつかの実施形態では、カスタマは特定のソフトウェアプリケーションがロードされ、改ざんされていない旨の保証を受け取ることを望むことがある。例えば、クラウドコンピューティングシステムを提供するデータセンタは、係る保証を提供するための有利な位置にいることがある。サービスプロバイダまたはデータセンタは、通常、コンピューティングインフラストラクチャを所有し、運用する。一方、コンテンツプロバイダはサービスプロバイダまたはデータセンタにソフトウェアおよび/またはデータを提供するにすぎないことがある。ソフトウェアおよびコンテンツをデータセンタおよびクラウドベースサービスに分散するコンテンツプロバイダ等の多くのソフトウェア/データサプライヤは、データセンタによって提供されるコンピューティングサービスおよびクラウドベースサービスが、データロード整合性、特定のデータを処理する能力等の特定の基準を満たす旨の保証を要求することがある。
【0029】
バーチャルサービスを提供するクラウドベースサービスでは、ソフトウェア/データロードプロセスに関するサービスプロバイダの位置が、クライアントによっておよびクライアントのために信頼されるサービスを提供する位置にプロバイダを置く。多くの組織および企業は、コンピューティングサービスおよび情報サービスを提供して自らの日常業務をサポートするために、サービスプロバイダによって提供されるコンピューティングリソースに依存する。コンピューティングサービスの継続的且つ信頼性が高い可用性は、企業の継続中の業務にとって重要であるので、サービスプロバイダによって提供されるコンピューティングサービスは企業にとってきわめて重要である。セキュリティは、サービス信頼性のためだけではなく、カスタマの貴重な情報および専有情報の保護にとっても重要事項である。したがって、カスタマが、データセンタによって提供されるコンピューティングサービスの信頼性およびセキュリティを信頼することができることが必要である。例えば、カスタマが指定されたオペレーティングシステムのインストールを要求する場合、クラウドベースサービスは、指定されたオペレーティングシステムで仮想マシンを起動すると信頼されている。カスタマがクラウドベースサービスにサインアップするときに想定される信頼は、このようにして、サービスプロバイダの評判を利用することによって、サービスプロバイダによって提供される信頼されるサービスを介してサードパーティに対してその信頼を譲渡できるようにするために利用され得る。例えば、サービスプロバイダはカスタマのソフトウェアコンフィギュレーションを監査および検証し、コンフィギュレーションの整合性を検証するサードパーティに対する信任状として使用できる一意の識別子をコンフィギュレーションに与えることができる。サービスプロバイダはこのようにして、サービスプロバイダのリソース上で自らのソフトウェアをホストするカスタマによって提供されるサービスに関して監査人の役割を担う。
【0030】
一実施形態では、カスタマはインスタンスを要求し、特定のソフトウェアコンフィギュレーションおよびデータが配備されることを要求することがある。データセンタのサーバオペレータは、インスタンスにカスタマの要求したソフトウェアおよびデータをロードする任務を負うことがある。さらに、カスタマは、データセンタが監査証明書を提供することを要求できる。監査証明書は、いくつかの実施形態ではデジタル証明書であってよいが、電子的であるのか、それともそれ以外であるのかに関わりなく任意のタイプの証明書が提供され得ることが理解できる。監査証明書は、次いで何が配備されたのかを検証するためにサードパーティに提示されてよい。サードパーティはサービスプロバイダを信頼しているので、監査証明書は配備されたソフトウェアおよび/またはデータの確認として受け入れられてよい。
【0031】
したがって、多様な実施形態では、サービスプロバイダは、何が配備されたのかを検証する信頼される関係者の機能を果たし、配備の信頼される検証を提供するための手段を提供してよい。いくつかの実施形態では、サービスプロバイダによるサービスとして運用されるリソースを使用するカスタマは、インスタンスが、サービスプロバイダによってロードされ、検証されるソフトウェアを活用していることをそのユーザーに確認するために上述された監査証明書の仕組みを使用してよい。例えば、デジタルビデオサービスまたはミュージックサービスを提供するカスタマは、ファイルの不正コピーを防止しつつ、ビデオファイルまたはミュージックファイルをレンダリングするためにそのユーザーに専門のメディアプレーヤーソフトウェアを提供してよい。ビデオプロバイダまたはミュージックプロバイダに、ユーザーが改ざんされていない合法的なレンダリングソフトウェアを使用している旨の保証を与えるために、サービスプロバイダは、サービスプロバイダのコンピューティングリソース上でホストされるレンダリングソフトウェアのインスタンスが既知のコンフィギュレーションにロードされ、検証されていることを保証するために、ビデオプロバイダまたはミュージックプロバイダに監査証明書を提供してよい。
【0032】
このようにして、ソフトウェアおよびデータを配備するコンピューティングハードウェアの所有者/運用者として、サービスプロバイダは、コンフィギュレーション整合性ベリファイヤーを計算する等の検証方法論を使用して、配備されたソフトウェアおよびデータを監査できる。一実施形態では、ロードされたソフトウェアおよびデータのチェックサムが計算されてよい。チェックサムは、伝送または記憶中のデータの変更またはエラーを検出するために使用できる、データのブロックから計算される値である。送信されたデータまたは記憶されたデータの整合性は、チェックサムを計算し直し、それを、インスタンスを起動するために使用されるファイルの既知の状態または予想状態のチェックサムを表す記憶されているチェックサムと比較することによってチェックされる。他の実施形態では、ハッシュ関数および指紋等の他の検証方法論を使用できる。
【0033】
サービスプロバイダのカスタマは喜んで、信頼されるユーザーにデータをダウンロードする、またはそれ以外の場合、信頼されるユーザーと対話するにすぎない可能性があるので、サービスプロバイダによって提供されるコンフィギュレーション整合性ベリファイヤーは、信頼できるデータ整合性機構を提供することによって係る信頼を提供できる。このようにして、本明細書に説明される信頼モデルは、3つの関係者―サービスプロバイダ(信頼プロバイダ)、サービスプロバイダのカスタマ(信頼要求者)、およびサービスプロバイダのカスタマの製品またはサービスのエンドユーザー―の間で信頼機構を提供してよい。一実施形態では、通常コンピューティングハードウェアを所有し、運用するサービスプロバイダは、カスタマが提供するソフトウェアコンフィギュレーションを受け取ってよい。サービスプロバイダは、チェックサム等のデータ整合性機構を使用してカスタマによって要求されるバーチャルリソースにロードされるものを記録または監視してよい。ソフトウェアコンフィギュレーションがロードされるとき、またはエンドユーザーがバーチャルリソースと対話する前等、それ以外の場合、カスタマによって要求されるとき、チェックサムはサービスプロバイダによってカスタマに提供されてよい。また、サービスプロバイダは、テンプレートおよびロードされたファイルの名前を含む監査ログ等の他の情報を提供してもよい。サービスプロバイダはサードパーティ要求者によって必要とされるすべての検証を提供できるので、ソフトウェアコンフィギュレーションでインスタンスを要求したカスタマは、あらゆるサードパーティ要求者にどのような追加検証も提供する必要はない。
【0034】
一実施形態では、監査情報はサービスプロバイダからサードパーティ要求者に送信でき、このようにしてサードパーティ要求者が直接的にサービスプロバイダからの監査およびチェックサムの情報に頼ることができるようにする。サードパーティ要求者は、サービスプロバイダから受け取られたチェックサムおよび他の情報が、サードパーティ要求者が予想するものに一致することを検証してよい。いくつかの実施形態では、サードパーティ要求者は、ハードディスク画像、ブートローダ、ブートローダコンフィギュレーション、ハードウェアコンフィギュレーション(例えば、プロセッサおよびメモリ)等の、仮想マシンをインスタンス化するための詳細な情報のセットを提供してよい。
【0035】
チェックサムは、本明細書に開示される実施形態で使用され得るデータ整合性機構の一実施例である。言及されたように、ハッシュ関数または指紋アルゴリズム等のデータ整合性を検証するためのどのような機構も使用できる。一実施形態では、公開鍵基盤(PKI)が使用されてよい。いくつかの実施形態では、信頼されるプラットホームモジュール関数がコンピュータデバイスと含まれてよい。信頼されるプラットホームモジュールは、信頼されるプラットホームモジュール、したがって物理ホストを一意に識別する承認秘密鍵を含んでよい。また、信頼されるプラットホームモジュールは、暗号関数も含んでよい。ハードウェア製造業者は、信頼されるプラットホームモジュールの整合性、および鍵の有効性を保証するために対応する公開鍵に署名してよい。信頼されるプラットホームは、検証を可能にするために信頼されるプラットホームモジュールの機能を利用してよい。例えば、ブート時、ホスト(例えば、インスタンスマネージャ)はブートシーケンスに含まれるソフトウェアのハッシュから成る測定リストを計算してよい(例えば、BIOS、ブートローダ、およびプラットホームを実装するソフトウェア)。測定リストは、ホストの信頼されるプラットホームモジュールの内部に安全に記憶されてよい。コンフィギュレーション検証サービス180に対して確認を提供するために、サービスはノンス(例えば、暗号通信に署名するために使用されるシーケンス)を使ってホストにチャレンジしてよい。コンフィギュレーション検証サービス180は、信頼されるローカルプラットホームモジュールに、測定リストとノンスの両方を含んだメッセージを作成するように要求してよい。メッセージは、信頼されるプラットホームモジュールの秘密鍵で暗号化されてよい。ホストは、次いで、秘密鍵の対応する公開鍵を使用してメッセージを解読してよいコンフィギュレーション検証サービス180にメッセージを送信し、それによってホストを認証してよい。コンフィギュレーション検証サービス180は、次いで検証されたリストを記憶し、検証されたリストまたは少なくとも部分的に検証されたリストに基づいた情報をサードパーティ要求者に送信してよい。ノンスが一致すること、および測定リストが、信頼されると見なされるコンフィギュレーションに相当することをチェックすることによって、サードパーティ要求者は、信頼されていないホストでプラットホームを識別できる。信頼されるプラットホームモジュールを使用することによって、コンテンツのプロバイダは、コンテンツが改ざんされていないまたは改変されていない信頼されるデバイスだけにダウンロードされることを保証されてよい。
【0036】
いくつかの実施形態では、追加の、つまり第四者が、検証の任意選択のまたは追加のレベルを提供するための検証サービスとして使用されてよい。例えば、第四者ベリファイヤーは、サービスプロバイダが確実なロードプロセスおよび検証プロセスを利用しており、信頼されるべきであることを監査し、検証してよい。
【0037】
図3は、コンフィギュレーション検証サービスが提供される一実施形態を示す。
図3は、仮想マシンインスタンス302、304、306、および308を含む。図中、仮想マシンインスタンス302は、ファイルA、B、G、およびH、並びにチェックサムを含む。仮想マシンインスタンス304は、ファイルA、B、C、D、E、およびF、並びにチェックサムを含む。仮想マシンインスタンス306は、ファイルAおよびB、並びにチェックサムを含む。仮想マシンインスタンス308は、ファイルG、H、M、およびN、並びにチェックサムを含む。仮想マシンインスタンス302、304、306、および308のそれぞれは、それぞれのソフトウェアコンフィギュレーション312、314、316、および318と関連付けられてよい。一実施例として、ソフトウェアコンフィギュレーション312は、特定のオペレーティングシステムを含んでよい。
【0038】
図4は、監査レコード400の実施例を示す。
図4に示される要素またはフィールドのサブセットは、いくつかの実施形態で実装されてよく、すべての実装されたフィールドがポピュレートされるわけではないことがある。監査レコード400が作成されると、監査レコード400を一意に識別するために使用されてよい新しい監査ID401が作成されてよい。いくつかの実施形態では、記述フィールド402がユーザーまたは管理者によって提供されてよい。監査レコードが使用されなければならないデータセンタネットワークは、いくつかの実施形態での仮想マシンインスタンス等の複数のコンピューティングリソースを含んでよい。音声レコード400は、係る場合リソースID403を含んでよい。例えば、プロバイダネットワークの運用者は、サービスプラットホームのセット、ネットワークアドレス範囲のセット、他の設備またはリソース、およびそのカスタマによる独占的な使用のためのネットワーク管理機能を別にすることによって特定のカスタマに論理パーティションを確立してよい。
【0039】
カスタマID404は、リソースを要求したカスタマを識別するために使用されてよい。サードパーティID405は、監査レコード400のいくらかまたはすべてまたはコンテンツを要求することを許可されてよい1つまたは複数のサードパーティを識別してよい。一実施形態では、サードパーティが監査レコード400を要求し、受け取ることを許可する方針がカスタマによって作成されてよい。コンフィギュレーション検証サービス180は、監査レコードに対する要求を受け取って、方針が要求側サードパーティがレコードを見るまたは受け取ることを許可するかどうかを判断するために方針をチェックしてよい。
【0040】
監査レコード400は、コンフィギュレーション検証サービス180のデジタルシグナチャ410を含んでよい。ファイルリスト440は、リソースID403によって識別されたリソースにロードされたファイル名等のデータのリストを含んでよい。例えば、ファイルリスト440は、ファイル450、451、452、および453を含んでよい。整合性ベリファイヤータイプ460は、ファイルリスト440のコンテンツを検証するために使用されるデータ整合性方法論のタイプを識別してよい。整合性ベリファイヤーデータ470は、整合性ベリファイヤーの値を記憶してよい。
【0041】
一実施形態では、
図4に示されるフィールドのいくつかは、他のオブジェクトに対するリファレンスまたはポインタによって置き換えられてよい。例えば、監査レコード400に対するデータは別個のデータオブジェクトに記憶されてよく、監査レコード400はデータオブジェクトに対するリファレンスを記憶してよい。
【0042】
図5は、本書に説明される実施形態が実装されてよい実施例のコンピューティング環境を示す。図を参照すると、サーバコンピュータ502、510、520、および530は、ソフトウェアおよびデータの情報を監査できるように、コンフィギュレーション検証サービス504と通信してよい。監査情報は、サーバコンピュータ502、510、520、および530の内の1つのデータストアに、またはコンフィギュレーション検証サービス504(不図示)の一部であるデータストアに記憶されてよい。コンフィギュレーション検証サービス504は、いくつかの実施形態では、
図1に示されるコンフィギュレーション検証サービス180に対応してよい。サーバコンピュータ502は、仮想マシンインスタンス506および508をホストしてよい。同様に、サーバコンピュータ510は、仮想マシンインスタンス512をホストしてよく、サーバコンピュータ520は仮想マシンインスタンス522、524、および526をホストしてよく、サーバコンピュータ530は仮想マシンインスタンス532をホストしてよい。
【0043】
サーバコンピュータ502は、コンフィギュレーション検証サービス504に対して、仮想マシン532が起動される旨の表示を送信してよく、それに応じてコンフィギュレーション検証サービス504はコンフィギュレーション検証プロセスを開始してよい。コンフィギュレーション検証サービス504は、サーバコンピュータ502のロードプロセスおよびコンフィギュレーションプロセスと対話して、インスタンスを起動するために使用されるファイルおよびデータのレコードを生成してよい。さらに、コンフィギュレーション検証サービス504は、インストールされたファイルおよびデータに基づいてコンフィギュレーション整合性ベリファイヤーを生成してよい。別のコンフィギュレーションでは、サーバ502は仮想マシン506または508のためにインストールされたファイルおよびデータのレコードを生成し、記憶のためにコンフィギュレーション検証サービス504にレコードを送信してよい。コンフィギュレーション検証サービス504は、レコード、つまりレコードに基づいた情報をサードパーティに販売できる。一実施形態では、インスタンスマネージャはカスタマからの要求に応えてレコードを生成するように構成できる。例えば、カスタマは、コンフィギュレーション検証サービス504が特定のインスタンスのためにレコードを生成する旨のプリファレンスを示すために(コンソールまたはAPIを介して)サービスプロバイダに要求を提出できる。同様に、インスタンスを起動するとき、カスタマは、レコード生成が有効化されることを示すAPIコールにパラメータを追加できる。インスタンスがサービスプロバイダによって起動されるとき、レコードを生成する要求はホストに伝搬することができ、ホストは、同様にコンフィギュレーション検証プロセスを有効化できる。
【0044】
いくつかの実施形態では、コンフィギュレーション検証に対する要求は、他のサーバコンピュータ510、520、および530の内の1つの代わりにサーバコンピュータ502からコンフィギュレーション検証サービス504に送信されてよい。他の実施形態では、サーバコンピュータ502、510、520、および530の内の1つで実行する、または別のコンピュータデバイスで実行するサービス等のサードパーティは、サーバコンピュータ502、510、520、および530の内の1つまたは複数の代わりに要求を送信してよい。
【0045】
コンフィギュレーション検証サービス504は、分散型システムとして実装されてよく、1つまたは複数のサーバコンピュータ、および/または1つまたは複数のデータセンタの他のコンピューティングリソース上に常駐できる。コンフィギュレーション検証サービス504は、いくつかの実施形態では、VMMまたはデータセンタで実行する他の管理ソフトウェアによって管理されてよい。コンフィギュレーション検証サービス504は、1つまたは複数の仮想マシンで実行してもよい。
【0046】
図6は、コンフィギュレーション検証サービスを提供するための実施例の操作手順を示す。一実施形態では、データセンタはカスタマに仮想化コンピュータリソースおよび/または記憶リソースの1つまたは複数のインスタンスを与えてよい。動作600中、カスタマは、バーチャルインスタンス等のコンピューティングリソースを要求し、特定のソフトウェアコンフィギュレーションおよびデータが配備されることを要求してよい。例えば、カスタマは、実行するアクション(例えば、RunInstances)および起動する画像を示す計算サービスにAPIコールを提出してよい。また、カスタマは画像のコンフィギュレーションの検証を要求してもよい。一実施形態では、カスタマはコンフィギュレーション検証情報をサードパーティに提供できるようにするための方針を作成してよい。方針は、サードパーティがコンフィギュレーション監査レコードへのアクセスを許されるのか、それとも単にコンフィギュレーション検証の結果へのアクセスを許されるのかも指定できる。検証コンフィギュレーションおよび/または方針に対する要求は、インスタンス画像に添付されるメタデータとして記憶されてよい。例えば
図1に示されるネットコンフィギュレーション検証サービス180および/または
図5に示されるコンフィギュレーション検証サービス504に対応する、上述されたコンフィギュレーション検証サービスが呼び出されてよい。動作610で、データセンタ(不図示)で実行中の配置サービスが、データセンタのコンピュータサーバ等の要求されたコンピューティングリソースを提供してよいリソースを識別してよい。
【0047】
動作620で、要求されたコンピューティングリソースはオンラインにされてよい。要求されたコンピューティングリソースが仮想マシンである場合、次いで仮想マシンは識別されたサーバコンピュータでインスタンス化されてよい。動作622で、コンフィギュレーション検証メタデータは読み取られ、コンフィギュレーション検証機能性を有効化する要求が起動要求の一部としてホストにプッシュされてよい。動作624で、要求されたソフトウェアおよびデータがロードされてよい。一実施形態では、インスタンスの成功した起動は、カスタマにInstanceIDまたはInstanceIDにマッピングするなんらかの他のトークンを送信することを含んでよい。いくつかの実施形態では、トークンはInstanceIDの暗号化されたバージョンであってよい。
【0048】
動作625で、ホストによってロードされているソフトウェアおよびデータは監査できる。例えば、インスタンスマネージャは、インスタンスによってロードされたソフトウェアファイルおよびデータを追跡調査し、情報を使用してレコードを生成できる。動作630では、チェックサム等の整合性ベリファイヤーを生成できる。例えば、インスタンスマネージャは、ロードされた各ファイルのために、および/またはブート手順の一部としてインスタンスによってロードされたファイルの集合体のためにチェックサムを生成することができる。代わりに、コンフィギュレーション整合性ベリファイヤーはコンフィギュレーション検証サービスによって生成できる。例えば、ブート動作中にブートするために使用されたファイルは、1つまたは複数のチェックサムを生成できるコンフィギュレーション検証サービスに送信することができる。本明細書に留意されるように、これらの動作のシーケンスは順次である必要はなく、平行して実行できる。例えば、コンフィギュレーション検証サービスは、ソフトウェアおよびデータがロードされている間に、ロードされたソフトウェアおよびデータを監査し、コンフィギュレーション整合性ベリファイヤーを生成してよい。
【0049】
動作635で、検証要求が受け取られたかどうかが決定される。検証要求が受け取られた場合、次いで動作640で、instanceIDまたはトークンが検証を要求するサードパーティに提供されてよい。いくつかの実施形態では、サードパーティは検証についてAPIに照会し、APIを介してinstanceIDまたはトークンを渡してよい。カスタマによって生成された方針は、サードパーティが検証情報を受け取ることを許可されているかどうかを判断するためにチェックされてよい。方針に応じて、監査の結果および/またはコンフィギュレーション整合性ベリファイヤーが提供されてよい。
【0050】
図7はコンピューティングコンフィギュレーションを検証するための実施例の操作手順を示す。
図7を参照すると、動作700が操作手順を始める。動作700には動作702が続いてよい。動作702は、バーチャルリソースに対する要求、およびバーチャルリソースに対するコンフィギュレーションを受け取ることを示す。一実施形態では、要求は、コンピューティングリソースを提供する複数のコンピュータデバイスを含むコンピューティング環境で受け取られてよい。さらにおよび任意選択で、コンフィギュレーションは、少なくとも1つのソフトウェアコンフィギュレーションのプロバイダによって整合性検証が要求される少なくとも1つのソフトウェアコンフィギュレーションを含んでよい。
【0051】
動作702には動作704が続いてよい。動作704は、バーチャルリソースに対する要求を受け取ったことに応えて、要求されたコンフィギュレーションに従って要求されたバーチャルリソースをインスタンス化することを示す。動作704には動作706が続いてよい。動作706は、インスタンス化されたバーチャルリソースを監査してロードされたソフトウェアおよびデータのレコードを生成することを示す。動作706には動作708が続いてよい。動作708は、ロードされたソフトウェアおよびデータのレコード、並びに要求されたコンフィギュレーションに基づいてコンフィギュレーション整合性ベリファイヤーを計算することを示す。
【0052】
動作708には動作710が続いてよい。動作710は、ロードされたコンフィギュレーションの検証に対する要求が受け取られたかどうかを判断することを示す。要求が受け取られていない場合、次いで動作710には動作702が続いてよい。
【0053】
ロードされたコンフィギュレーションの検証に対する要求が受け取られている場合、次いで動作710には動作712が続いてよい。動作712はコンフィギュレーション整合性ベリファイヤーを提供することを示す。一実施形態では、サービスプロバイダは、所与のインスタンスの整合性を照会するためのAPIを露呈し、インスタンスによって提供される機能性を使用する企業等のサードパーティは、インスタンスと対話する前にAPIにクエリーを提出してよい。APIと対話するとき、サードパーティはVerifyInstanceConfiguration等のアクションを指定し、インスタンスのInstanceID、インスタンスの公衆IPアドレス、および/またはパラメータとしてのトークンを渡すことができる。要求が受け取られた後、インスタンスコンフィギュレーションを検証する要求はコンフィギュレーション検証サービスに送ることができる。コンフィギュレーション検証サービスは、サードパーティからの要求を認証し、サードパーティがインスタンスのためのコンフィギュレーション情報を受け取ることを許可されているかどうかを判断できる。例えば、コンフィギュレーション検証サービスは、アイデンティティサービスと通信してサードパーティが十分な特権を有しているかどうかをチェックできる。サードパーティが十分な特権を有する場合、コンフィギュレーション検証サービスはサードパーティにレコードを送信できる。代わりに、コンフィギュレーション検証サービスは「真の」つまり「検証済みの」応答をサードパーティに戻すことができる。このコンフィギュレーションは、ソフトウェアが実際にロードされた内容の詳細がサードパーティに分散されないようにするために使用することができ、方針に指定できる。コンフィギュレーション整合性ベリファイヤーは、ロードされたソフトウェアおよびデータが要求されたコンフィギュレーションを提供する旨の信頼されるサードパーティ検証として使用され得る。例えば、少なくとも1つのソフトウェアコンフィギュレーションのプロバイダによる検証に対する要求に応えて、またはインスタンス化されたバーチャルリソースのユーザーによる少なくとも1つのソフトウェアコンフィギュレーションの検証に対する要求に応えて、コンフィギュレーション整合性ベリファイヤー、および監査済みのインスタンス化されたバーチャルリソースに関する情報、並びにロードされたソフトウェアおよびデータのレコードが、少なくとも1つのソフトウェアコンフィギュレーションのプロバイダに送信される。
【0054】
本開示の実施形態は以下の節を鑑みて説明できる。
1.コンピューティングシステムであって、
少なくとも1つのコンピュータデバイスと、
少なくとも1つのコンピュータデバイスと通信する少なくとも1つのメモリであって、コンピューティングシステムによる実行時に、コンピューティングシステムに少なくとも
インスタンスに対する要求を受け取らせる、
コンピュータ可読命令をその上に記憶している少なくとも1つのメモリと、
含み、
インスタンスに対する要求を受け取ることに応えて、要求されたインスタンスをインスタンス化することであって、要求されたインスタンスをインスタンス化することはオペレーティングシステムソフトウェアまたはデータをロードすることを含む、要求されたインスタンスをインスタンス化することと、
ロードされたオペレーティングシステムソフトウェアまたはデータのレコードを生成するためにインスタンスを監査することと、
ロードされたオペレーティングシステムソフトウェアまたはデータのレコード、およびインスタンスのためのコンフィギュレーションに基づいてコンフィギュレーション整合性ベリファイヤーを計算することと、
オペレーティングシステムソフトウェアまたはデータの検証に対する要求に応えて、コンフィギュレーション整合性ベリファイヤー、監査済みのインスタンス化されたインスタンスに関する情報、およびオペレーティングシステムソフトウェアまたはデータがインスタンスをインスタンス化するために使用された旨の信頼されるサードパーティ検証としてのロードされたオペレーティングシステムソフトウェアまたはデータのレコードを提供することと、
を含む、コンピューティングシステム。
2.コンフィギュレーション整合性ベリファイヤーがチェックサムを含む、節1に記載のシステム。
3.オペレーティングシステムソフトウェアまたはデータの検証に対する要求が、コンフィギュレーションのプロバイダまたはインスタンスのユーザーから受け取られる、節1に記載のシステム。
4.コンフィギュレーション整合性ベリファイヤーのプロバイダが検証サービスによって確証される、節1に記載のシステム。
5.コンフィギュレーション整合性ベリファイヤーが公開鍵基盤のデジタル証明書によって確証される、節1に記載のシステム。
6.オペレーティングシステムまたはデータの検証を提供する許可が、インスタンスの要求者によって許可される、節1に記載のシステム。
7.コンピューティングコンフィギュレーションを検証するための方法であって、
コンピューティングリソースに対する要求を受け取ることであって、コンピューティングリソースを提供することがコードまたはデータをロードすることを含む、受け取ることと、
コンピューティングリソースに対する要求を受け取ることに応えて、このコードまたはデータをロードすることによって要求されたコンピューティングリソースをインスタンス化することと、
ロードされたコードまたはデータのレコードを生成するためにこのロードされたコードまたはデータを監査することと、
ロードされたコードまたはデータのレコードに基づいてコンフィギュレーション整合性ベリファイヤーを計算することと、
ロードされたコードまたはデータの検証に対する要求に応えてコンフィギュレーション整合性ベリファイヤーを送信することであって、コンフィギュレーション整合性ベリファイヤーがロードされたコードまたはデータの信頼される検証として使用可能である、送信することと、
を含む方法。
8.要求が、コンピューティングリソースを提供する複数のコンピュータデバイスを含むコンピューティング環境で受け取られる、節7に記載の方法。
9.コンピューティングリソースが仮想マシンである、節7に記載の方法。
10.コンフィギュレーション整合性ベリファイヤーが、コードまたはデータの検証に対するコードまたはデータのプロバイダからの要求に応えて、コードまたはデータのプロバイダに送信される、節7に記載の方法。
11.コンフィギュレーション整合性ベリファイヤーが、コードまたはデータの検証に対するコンピューティングリソースのユーザーによる要求に応えて、コードまたはデータのユーザーに送信される、節7に記載の方法。
12.コンフィギュレーション整合性ベリファイヤーが、コンピューティングリソースのユーザーがコンピューティングリソースにアクセスする前に、コードまたはデータのプロバイダに送信される、節7に記載の方法。
13.コンフィギュレーション整合性ベリファイヤーがチェックサムを含む、節7に記載の方法。
14.コンフィギュレーション整合性ベリファイヤーが公開鍵基盤でのデジタル証明書によって確証される、節7に記載の方法。
15.コンピュータ可読命令をその上に記憶している非一過性なコンピュータ可読記憶媒体であって、コンピュータ可読命令が、コンピューティングノードでの実行時に、少なくとも
コードまたはデータのロードを必要とするコンフィギュレーションを含む、コンピューティングリソースに対する要求を受け取ることに応えて、このコードまたはデータを含む要求されたコンフィギュレーションに従って要求されたコンピューティングリソースを提供することと、
ロードされたコードまたはデータを生成するためにコンピューティングリソースを監査することと、
ロードされたコードまたはデータのレコードに基づいてコンフィギュレーション整合性ベリファイヤーを計算することと、
ロードされたコードまたはデータの信頼される検証としてコンフィギュレーション整合性ベリファイヤーを提示することと、
を引き起こす命令を含む、非一過性コンピュータ可読記憶媒体。
16.この提示することが、このコードまたはデータによって提供される機能性にアクセスする、コンピューティングリソースによる要求に応えている、節15に記載の一過性のコンピュータ可読媒体。
17.この提示することが、コードまたはデータのプロバイダにコンフィギュレーション整合性ベリファイヤーを送信することを含む、節16に記載の非一過性コンピュータ可読媒体。
18.この提示することが、コードまたはデータのプロバイダによって許可されるサービスプロバイダへコンフィギュレーション整合性ベリファイヤーを送信することを含む、節16に記載の非一過性コンピュータ可読媒体。
19.コンピューティングリソースがバーチャルインスタンスである、節16に記載の非一過性コンピュータ可読媒体。
20.コンフィギュレーション整合性ベリファイヤーがチェックサムを含む、節16に記載の非一過性コンピュータ可読媒体。
21.コンピュータシステムの1つまたは複数のプロセッサによる実行時に、コンピュータシステムに少なくとも
コンピューティングリソースに対する要求を示す識別子を符号化する第1の電子メッセージを受け取ることであって、コンピューティングリソースがコードまたはデータのロードを含む、受け取るように、
電子メッセージの1つを受け取ることに応えて、
このコードまたはデータを含む要求されたコンピューティングリソースのロードと、
ロードされたコードまたはデータのレコードを生成するためのこのロードの監査と、
ロードされたコードまたはデータのレコードに基づいてコンフィギュレーション整合性ベリファイヤーを計算することと、
を生じさせる命令を示す第2の電子メッセージを送信するように、
構成されるアプリケーションプログラミングインタフェースサブシステム
を実装させる、実行可能な命令をその上に集合的に記憶している1つまたは複数の非一過性コンピュータ可読媒体。
22.第2の電子メッセージが、ロードされたコードまたはデータの検証に対する要求を示す識別子を符号化する第3の電子メッセージに応えてコンフィギュレーション整合性ベリファイヤーを送信することを引き起こすための命令を示し、コンフィギュレーション整合性ベリファイヤーがロードされたコードまたはデータの信頼されるベリフィケーションとして使用できる、節21に記載の非一過性コンピュータ可読媒体。
【0055】
前節に説明されるプロセス、方法、およびアルゴリズムのそれぞれは、1つまたは複数のコンピュータまたはコンピュータプロセッサによって実行されるコードモジュールで具現化され、コードモジュールによって完全にまたは部分的に自動化されてよい。コードモジュールは、ハードドライブ、ソリッドステートメモリ、光ディスク等の任意のタイプの非一過性コンピュータ可読媒体またはコンピュータ記憶デバイスに記憶されてよい。プロセスおよびアルゴリズムは、アプリケーションに特殊な回路網に部分的にまたは完全に実装されてよい。開示されているプロセスおよびプロセスステップの結果は、例えば揮発性記憶装置または不揮発性記憶装置等の任意のタイプの非一過性コンピュータ記憶装置に恒久的にまたは別の方法で記憶されてよい。
【0056】
上述された多様な特徴およびプロセスは互いとは無関係に使用されてよい、または多様な方法で組み合されてよい。すべての考えられる組合せおよび副組合せは本開示の範囲内に入ることを目的としている。さらに、特定の方法またはプロセスブロックはいくつかの実装では省略されてよい。本明細書で説明される方法およびプロセスは、任意の特定のシーケンスに制限されず、それに関係するブロックまたは状態は適切である他のシーケンスで実行できる。例えば、説明されるブロックもしくは状態は、明確に開示されている順序以外の順序で実行されてよい、または複数のブロックもしくは状態は単一のブロックもしくは状態で組み合されてよい。実施例のブロックまたは状態は、連続して、並行で、またはなんらかの他の方法で実行されてよい。ブロックまたは状態は、開示されている実施例の実施形態に追加されてよい、または開示されている実施例の実施形態から削除されてよい。本明細書に説明される実施例のシステムおよび構成要素は、説明されているのとは異なって構成されてよい。例えば、要素は、開示されている実施例の実施形態に追加されてよい、開示されている実施例の実施形態から取り除かれてよい、または開示されている実施例の実施形態に比較して配置し直されてよい。
【0057】
多様な項目が使用されている間メモリ内または記憶領域に記憶されていると示されている、およびこれらの項目またはその部分が、メモリ管理およびデータ整合性のためにメモリと他の記憶装置との間で転送されてよいことも理解される。代わりに、他の実施形態では、ソフトウェアモジュールおよび/またはシステムのいくつかまたはすべては別のデバイス上のメモリ内で実行し、コンピュータ間通信を介して示されているコンピューティングシステムと通信してよい。さらに、いくつかの実施形態では、システムおよび/またはモジュールのいくつかまたはすべては、1つまたは複数の特定用途向け集積回路(ASIC)、標準集積回路、(例えば、適切な命令を実行し、マイクロコントローラおよび/または組込コントローラを含むことによる)コントローラ、フィールドプログラマブルゲートアレイ(FPGA)、結合プログラム可能論理回路(CPLD)等を含むが、これに限定されるものではないファームウェアおよび/またはハードウェアに少なくとも部分的に等、他の方法で実装されてよい、または設けられてよい。モジュール、システム、およびデータ構造のいくつかまたはすべては、ハードディスク、メモリ、ネットワーク、または適切なドライブによってもしくは適切な接続を介して読み取られる携帯型メディア製品等のコンピュータ可読媒体上に(例えば、ソフトウェア命令または構造化されたデータとして)記憶されてもよい。システム、モジュール、およびデータ構造は、無線ベースの媒体および有線/ケーブルベースの媒体を含むさまざまなコンピュータ可読送信媒体上で(例えば、搬送波または他のアナログ伝搬信号もしくはデジタル伝搬信号の一部として等)生成されたデータ信号として送信されてもよく、(例えば、単一のアナログ信号もしくは多重化アナログ信号の一部として、または複数の離散デジタルパケットもしくはフレームとして等)さまざまな形をとってよい。係るコンピュータプログラム製品は、他の実施形態では他の形をとってもよい。その結果、本発明は他のコンピュータシステム構成で実践されてよい。
【0058】
とりわけ「できる」、「ことがある」、「可能性がある」、「してよい」、「例えば」等の本明細書に使用される条件言語は、特に別段に示されない限り、または使用されている通り文脈内で理解されない限り、概して、特定の実施形態が特定の特徴、要素、および/またはステップを含み、一方他の実施形態は含まないことを伝えることを目的とする。したがって、係る条件言語は、概して、特徴、要素、および/またはステップがどのようにしても1つまたは複数の実施形態のために必要とされること、または1つまたは複数の実施形態が必ずや、オーサー入力またはプロンプトの有無に関わりなく、これらの特徴、要素、および/またはステップが任意の特定の実施形態に含まれる、または実行されるべきであるかを決定するための論理を含むことを暗示することを意図していない。用語「備える」、「含む」、「有する」等は同義語であり、制約なく包含的に使用され、追加の要素、特徴、行為、動作等を排除しない。また、用語「または」は、例えば要素のリストを接続するために使用されるときに、用語「または」はリスト中の要素の1つ、いくつか、またはすべてを意味するようにその包含的な意味で(およびその除外的な意味ではなく)使用される。
【0059】
特定の実施例の実施形態が説明されてきたが、これらの実施形態は実施例としてのみ提示されており、本明細書に開示される本発明の範囲を制限することを意図しない。したがって、上述の説明における何も、任意の特定の特長、特徴、ステップ、モジュール、またはブロックが必要または不可欠であることを暗示することを意図していない。実際には、本明細書に説明される新規の方法およびシステムはさまざまな他の形式で具現化されてよく、さらに本明細書に説明される方法およびシステムの形での多様な省略、置換、および変更は、本明細書に開示される本発明の精神から逸脱することなく行われてよい。添付特許請求の範囲およびその同等物は、本明細書に開示される本発明の特定の範囲および精神に含まれるように、係る形または修正形態を扱うことを目的とする。