(57)【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサと、
命令を集合的に記憶したメモリと
を備えるコンピュータシステムであって、
前記コンピュータシステムが前記命令を実行すると、前記コンピュータシステムは、
ベンダの鍵でデジタル署名されたマシンイメージに基づいた仮想マシンを起動する要求を受信し、
前記ベンダによって提供された１つまたは複数のポリシーがコンピュータリソースサービスプロバイダの顧客のための仮想マシンにアクセスレベルを規定し、前記ポリシーが、前記ベンダによってデジタル署名されたマシンイメージに基づいた仮想マシンの起動を許可しているという判断の後、前記仮想マシンを起動する、
コンピュータシステム。
【請求項２】
前記ベンダの前記鍵でデジタル署名された前記マシンイメージは、証明機関が発行したデジタル証明書から取得した公開鍵を用いて検証可能である、請求項１に記載のコンピュータシステム。
【請求項３】
前記１つまたは複数のポリシーは、前記ベンダによってデジタル署名されたマシンイメージのみを、ユーザに関連付けられた仮想ネットワーク内で利用できることをさらに特定し、前記ユーザは、前記仮想マシンの起動要求を提出したユーザである、請求項１又は請求項２に記載のコンピュータシステム。
【請求項４】
前記ベンダの前記鍵でデジタル署名された前記マシンイメージが、検証可能で、前記ベンダの前記鍵でデジタル署名された前記マシンイメージが前記ベンダからのものであると判断するような方法で、前記ベンダの前記鍵でデジタル署名された前記マシンイメージは利用可能にされる、請求項１から請求項３のいずれか一項に記載のコンピュータシステム。
【請求項５】
前記ベンダの前記鍵でデジタル署名された前記マシンイメージは、コンピュータリソースサービスプロバイダマーケットプレイスから取得され、前記コンピュータリソースサービスプロバイダマーケットプレイスは、前記コンピュータリソースサービスプロバイダの顧客が前記ベンダの前記鍵でデジタル署名された前記マシンイメージを選択できるように構成されて、前記ベンダの前記鍵でデジタル署名された前記マシンイメージを用いて、前記顧客が使用するために前記仮想マシンをインスタンス化することができる、請求項１から請求項４のいずれか一項に記載のコンピュータシステム。
【請求項６】
前記鍵でデジタル署名された前記マシンイメージが検証可能で、前記マシンイメージが前記ベンダからのものであると判断するか否かに少なくとも部分的に基づいて、前記鍵でデジタル署名された前記マシンイメージを他のマシンイメージから区別するような方法で、前記鍵でデジタル署名された前記マシンイメージは利用可能にされる、請求項１から請求項５のいずれか一項に記載のコンピュータシステム。
【請求項７】
前記鍵でデジタル署名された前記マシンイメージは、マーケットプレイス上にリストされ、前記マーケットプレイスは、選択可能な複数の仮想マシンイメージを含む、請求項１から請求項６のいずれか一項に記載のコンピュータシステム。
【請求項８】
マシンイメージプロバイダの鍵で署名された１つまたは複数の構成要素を含むマシンイメージを記憶することと、
顧客が前記マシンイメージを選択した結果、前記マシンイメージプロバイダが署名した仮想マシンの起動に関する１つまたは複数のポリシーに基づいて、前記顧客が前記マシンイメージを利用して仮想マシンをインスタンス化できるか否かを判断することと、を含み、
前記ポリシーはコンピュータリソースサービスプロバイダの顧客のための仮想マシンにアクセスレベルを規定する方法。
【請求項９】
前記鍵で署名された前記１つまたは複数の構成要素は、証明機関が発行したデジタル証明書から取得した公開鍵を用いて検証可能である、請求項８に記載の方法。
【請求項１０】
前記１つまたは複数のポリシーは、前記マシンイメージプロバイダによってデジタル署名された１つまたは複数の構成要素を含むマシンイメージのみを前記顧客の仮想ネットワーク内で利用できることをさらに特定し、前記顧客は、前記仮想ネットワーク内で前記仮想マシンを起動する要求を提出した顧客である、請求項８又は請求項９に記載の方法。
【請求項１１】
前記マシンイメージプロバイダの前記鍵で署名された前記１つまたは複数の構成要素は、検証可能で、前記マシンイメージが前記マシンイメージプロバイダからのものであることを判断するような方法で、前記マシンイメージは記憶される、請求項８から請求項１０のいずれか一項に記載の方法。
【請求項１２】
前記マシンイメージは、コンピュータリソースサービスプロバイダマーケットプレイス内に記憶され、前記コンピュータリソースサービスプロバイダマーケットプレイスは、前記コンピュータリソースサービスプロバイダの顧客が、前記マシンイメージを選択できるように構成されて、前記マシンイメージを利用して前記顧客が使用する仮想マシンをインスタンス化することができる、請求項８から請求項１１のいずれか一項に記載の方法。
【請求項１３】
前記マシンイメージプロバイダの前記鍵で署名された前記マシンイメージの前記１つまたは複数の構成要素が、検証可能で、前記マシンイメージが前記マシンイメージプロバイダからのものであると判断するか否かに少なくとも部分的に基づいて、前記マシンイメージを他のマシンイメージから区別するような方法で、前記マシンイメージは記憶される、請求項８から請求項１２のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１４年３月４日出願の同時係属の米国特許出願第１４／１９６，８１８号「ＡＵＴＨＥＮＴＩＣＡＴＩＯＮ  ＯＦ  ＶＩＲＴＵＡＬ    ＭＡＣＨＩＮＥ  ＩＭＡＧＥＳ  ＵＳＩＮＧ  ＤＩＧＩＴＡＬ  ＣＥＲＴＩＦＩＣＡＴＥＳ」の優先権を主張し、その内容全体を参照により本明細書に組み込む。
【背景技術】
【０００２】
コンピュータ技術は進化し、コンピュータ技術を使用する組織の需要を満たすために進化し続けている。例えば、多くの組織は、とりわけ、１つまたは複数の仮想マシンインスタンスを遠隔で操作するために、仮想コンピュータシステムサービスを利用する。これらの仮想マシンインスタンスは、ソフトウェア構成を含む仮想マシンイメージを用いて作成されてよい。仮想マシンイメージは、仮想マシンインスタンスのオペレーティング環境を規定するオペレーティングシステムを備えてよい。これらの仮想マシンイメージは、様々なソースを通して入手可能にされてよい。多くの利点にもかかわらず、仮想マシンインスタンスの作成に使用される仮想マシンイメージが認証済みであるか否か、または、信頼できるソースによって提供されているか否かを判断するのが難しい場合がある。従って、これらの仮想コンピュータシステムを利用する組織は、悪意のあるソフトウェアを含み得る１つまたは複数の仮想マシンインスタンスを作成するリスクを負うことがあり、ひいては、組織自体のインフラストラクチャのセキュリティを低下させる場合がある。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明は、デジタル証明書を用いた仮想マシンイメージの認証に関する。仮想マシンイメージのベンダは、仮想コンピュータシステムサービスにアクセスして、仮想マシンインスタンス作成のためのイメージを選択するために仮想コンピュータシステムサービスの顧客が使用可能なデータストアにデジタル署名された仮想マシンイメージをアップロードする。デジタル証明書が仮想マシンイメージと共にアップロードされる場合、仮想コンピュータシステムサービスは、デジタル証明書が信用して使用できるか否かを判断してよい。デジタル証明書が信用して使用できる場合、仮想コンピュータシステムサービスは、公開暗号鍵を使用してイメージと共に含まれているハッシュ署名を解読し、第１のハッシュ値を取得してよい。サービスは、さらに、ハッシュ関数をイメージ自体に適用して第２のハッシュ値を取得してよい。２つのハッシュ値が一致する場合、仮想マシンイメージは認証済みであるとみなされてよい。
【０００４】
図面を参照して本開示による様々な実施形態を記載する。
【図面の簡単な説明】
【０００５】
【図１】様々な実施形態を実施し得る環境の例示的な実施例を示す。
【図２】様々な実施形態を実施し得る環境の例示的な実施例を示す。
【図３】少なくとも１つの実施形態に係る、仮想コンピュータシステムサービスの１つまたは複数の構成要素を含む環境の例示的な実施例を示す。
【図４】少なくとも１つの実施形態に係る、仮想マシンインスタンス作成のための１つまたは複数の信頼できる仮想マシンイメージを選択するためのインタフェースを備える環境の例示的な実施例を示す。
【図５】少なくとも１つの実施形態に係る、仮想マシンイメージをマーケットプレイスにアップロードするためのインタフェースを備える環境の例示的な実施例を示す。
【図６】少なくとも１つの実施形態に係る、ベンダアカウントを作成し、仮想マシンイメージを利用可能にするために使用するデジタル証明書をベンダに発行するプロセスの例示的な実施例を示す。
【図７】少なくとも１つの実施形態に係る、仮想コンピュータシステムサービスによって管理されるマーケットプレイスに仮想マシンイメージを追加するプロセスの例示的な実施例を示す。
【図８】少なくとも１つの実施形態に係る、１つまたは複数の適用可能なポリシーに少なくとも部分的に基づいて仮想マシンイメージを起動するプロセスの例示的な実施例を示す。
【図９】様々な実施形態を実施し得る環境を示す図である。
【発明を実施するための形態】
【０００６】
以下に様々な実施形態を記載する。説明目的で、実施形態を完全に理解するために、具体的な構成及び詳細を記載する。しかしながら、その具体的な詳細を伴わない実施形態を実践してよいことも当業者には明らかであろう。さらに、実施形態の記載が曖昧にならないように、周知の特徴は省略または簡略化する場合がある。
【０００７】
本明細書に記載、提案した技術は、仮想マシンインスタンスの作成に使用する１つまたは複数の仮想マシンイメージを認証するためのデジタル証明書の使用に関する。ある実施形態においては、実体（例えば、組織）は、仮想コンピュータシステムサービスと、例えば、当該サービスへの適切に構成されたアプリケーションプログラミングインタフェース（ＡＰＩ）コールを介して通信して、ベンダアカウント作成を要求することができる。実体は、ベンダまたは他のマシンイメージプロバイダであってよい。ベンダまたは他のマシンイメージプロバイダは、コンピュータリソースサービスプロバイダアカウントを利用して様々な仮想マシンイメージを作成し、提供してよい。コンピュータリソースサービスプロバイダの顧客は、仮想マシンイメージを使用して新しい仮想マシンインスタンスを作成してよい。要求に加えて、ベンダは、例えば、仮想コンピュータシステムサービスに、ベンダのアイデンティティの検証に用いてもよい１つまたは複数の認証情報及び／またはベンダに由来する情報（例えば、デジタル署名）を提供することによって、コンピュータリソースサービスプロバイダと認証を行ってよい。従って、仮想コンピュータシステムサービスがベンダのアイデンティティを検証できる場合、仮想コンピュータシステムサービスは、ベンダによって導入された各仮想マシンイメージにデジタル証明書を添付する許可をベンダに与えてよい。そうすると、デジタル証明書は、仮想コンピュータシステムサービスによって使用されて、ベンダによって導入された各仮想マシンイメージが実際にベンダからのものであることを検証できる。あるいは、ベンダは、自己のデジタル証明書を提供してよく、仮想コンピュータシステムサービスは、そのデジタル証明書をベンダが提供する仮想マシンイメージを検証するためにトラストストア内に永続的に記憶してよい。ベンダは、１つまたは複数の仮想マシンイメージを作成し、これら１つまたは複数の仮想マシンイメージにデジタル署名し、承認されたデジタル証明書を備えてよい。
【０００８】
ある実施形態においては、ベンダは、１つまたは複数の仮想マシンイメージを仮想コンピュータシステムサービスにアップロードしてよい。１つまたは複数の仮想マシンイメージは、デジタル証明書と共に仮想コンピュータシステムサービスにアップロードしてよく、仮想コンピュータシステムサービスは、そのデジタル証明書を利用して、１つまたは複数の仮想マシンイメージをマーケットプレイスに追加してよいか否かを判断してよい。例えば、１つまたは複数の仮想マシンイメージと共に含まれるデジタル証明書がベンダによって作成された場合、仮想コンピュータシステムサービスは、トラストストアにアクセスして、デジタル証明書が信頼し得るか否かを判断してよい。あるいは、仮想コンピュータシステムサービスが、仮想マシンイメージの署名に使用するために、事前にデジタル証明書をベンダに提供している場合、仮想コンピュータシステムサービスは、このデジタル証明書を備える仮想マシンイメージはいずれもマーケットプレイスに追加可能にしてよい。１つまたは複数の仮想マシンイメージをマーケットプレイスに追加する場合、仮想コンピュータシステムサービスは、これらの仮想マシンイメージは信頼できるベンダからであることを示す指示（例えば、アイコン、メッセージ等）をマーケットプレイスのエントリの隣に備えてよい。
【０００９】
ある実施形態において、仮想コンピュータシステムサービスは、仮想マシンイメージが認証済みであることを確実にするために、ベンダのデジタル証明書の信頼性を個別に検証するオプションを顧客に提供してよい。例えば、顧客が、コンピュータリソースサービスプロバイダのマーケットプレイス内の複数の仮想マシンイメージから仮想マシンイメージを選択する場合、顧客は、仮想コンピュータシステムサービスによって提供された実行可能なコードまたはアプリケーションの１つまたは複数のモジュールへのアクセスを許可されて、仮想マシンイメージが認証済みであることを検証してよい。ある実施形態において、顧客は、これらの１つまたは複数のアプリケーションを使用して、仮想マシンイメージ自体のハッシュ値を計算し、第１のハッシュ値（「ダイジェスト」と呼ばれることが多い)を取得してよい。顧客は、これらの１つまたは複数のアプリケーションをさらに利用してデジタル証明書からベンダの公開暗号鍵を取得して、仮想マシンイメージに含まれた署名を解読し、第２のハッシュ値を取得してよい。これら２つのハッシュ値が一致する場合、顧客は、デジタル署名が有効であり、仮想マシンインスタンス作成に使用する仮想マシンイメージは信頼できると判断してよい。
【００１０】
ある実施形態において、仮想コンピュータシステムサービスの顧客は、マーケットプレイスから仮想マシンイメージを選択して、新しい仮想マシンインスタンスを起動してよい。従って、仮想コンピュータシステムサービスは、１つまたは複数の顧客、及び／または、仮想マシンイメージからの仮想マシンインスタンスの起動を制限する仮想マシンイメージポリシーを評価してよい。例えば、顧客は、仮想マシンインスタンスを起動できる仮想ネットワーク内のサブネットまたはサブネット内の特徴を特定するポリシー（例えば、サブネットがサブネットに接続されたインターネットゲートウェイを有するか否か、サブネットが一定のラベルでタグ付けされているか否か、サブネットが一定の種類の、または、一定のベンダからのインスタンスを有するか否か等に基づいた制限）を追加することができる。同じまたは別の構成において、仮想マシンイメージ自体が、イメージを用いたインスタンスの作成への制限に替わる、ベンダが設定したポリシーセットを含んでよい。仮想コンピュータシステムサービスが、顧客の評価及び／または仮想マシンイメージポリシーに少なくとも部分的に基づいて、選択した仮想マシンイメージを用いて顧客が仮想マシンインスタンスを生成してよいと判断する場合、仮想コンピュータシステムサービスは、物理ホストに仮想マシンイメージをインスタンス化して、顧客が新しく作成された仮想マシンインスタンスを使用できるようにしてよい。
【００１１】
このように、コンピュータリソースサービスプロバイダと、仮想マシンイメージを利用して１つまたは複数の仮想マシンインスタンスを作成する顧客とに仮想マシンイメージの認証方法を提供するために、ベンダは、プライベート暗号鍵を利用して仮想マシンイメージにデジタル署名し、公開暗号鍵を含むデジタル証明書を備えてよい。さらに、本明細書に記載及び提案した技術は、追加の技術的利点を促進する。例えば、ある実施形態においては、仮想コンピュータシステムサービスは、デジタル署名に少なくとも部分的に基づいて仮想マシンイメージの信頼性を検証できるので、どのイメージが暗号学的に検証可能な形で認証済みであり得るかということに少なくとも部分的に基づいて仮想マシンイメージをフィルタできてよい。こうすると、コンピュータリソースサービスプロバイダの顧客は、選択した仮想マシンイメージの信頼性をさらに検証する必要なしにマーケットプレイスから認証済みの仮想マシンイメージを取得できてよい。
【００１２】
図１は、様々な実施形態を実践し得る環境１００の例示的な実施例を示す。環境１００において、コンピュータリソースサービスプロバイダ１０２は、様々なコンピュータリソースサービスをコンピュータリソースサービスプロバイダの顧客に提供してよい。コンピュータリソースサービスプロバイダ１０２は、１つまたは複数の顧客のために様々なコンピュータリソースをホストする組織であってよい。例えば、コンピュータリソースサービスプロバイダは、ハードウェアサーバ、データ記憶装置、ネットワーク装置等の様々なコンピュータハードウェアリソースと、サーバラック、ネットワークケーブル等の他の機器とをホストするのに使用される１つまたは複数の設備を運営してよい。コンピュータリソースサービスプロバイダ１０２は、そのコンピュータハードウェアリソースを利用して１つまたは複数のサービスを運営してよい。このようなサービスは、コンピュータリソースサービスプロバイダの顧客がコンピュータリソースを遠隔で管理することを可能にして顧客の操作を支援し、顧客の物理的機器への投資の必要を低減または排除するサービスを含んでよい。サービスの例は、様々なデータストレージサービス（オブジェクトベースのデータストレージサービス、アーカイバルデータストレージサービス、データベースサービス等）、プログラム実行サービス、及び、他のサービスを含むが、それらに限定されない。サービスを顧客が用いて、ウェブサイトの操作、組織を支援する企業システムの操作、分散計算、及び／または、他のアクティビティ等、広範なアクティビティを支援してよい。
【００１３】
従って、図１に示すように、環境１００は、顧客１０４を含む。顧客１０４は、個人または組織であってよく、コンピュータリソースサービスプロバイダ１０２によって提供された１つまたは複数のサービスを利用して、コンピュータリソースを遠隔で管理し、ウェブページ開発またはデータベース管理等、顧客の操作を支援できる。顧客１０４は、コンピュータシステムサービスプロバイダ１０２が提供した仮想コンピュータシステムサービスに顧客のコンピュータ装置を通して１つまたは複数の要求を提供して、顧客のニーズの支援に使用し得る仮想マシンインスタンスを構成してよい。例えば、ある実施形態においては、顧客１０４は、仮想コンピュータシステムサービスに提供されたマーケットプレイスにアクセスして、仮想マシンイメージデータストア１０６から適切な仮想マシンイメージを選択してよい。選択した仮想マシンイメージは、仮想マシンインスタンスの支援に使用し得るオペレーティングシステム及び追加のアプリケーションを含んでよい。この選択した仮想マシンイメージは、新しい仮想マシンインスタンスの作成に顧客１０４が利用し得る仮想マシンイメージリストに追加してよい。従って、顧客１０４がリストから適切な仮想マシンイメージを選択すると、仮想コンピュータシステムサービスは、コンピュータリソースサービスプロバイダ１０２が提供した物理ホストに、この仮想マシンイメージをインスタンス化して、顧客１０４が新しく作成された仮想マシンインスタンスを利用できるようにしてよい。
【００１４】
仮想マシンイメージデータストア１０６内に記憶された仮想マシンイメージは、複数のソースからのものであってよい。例えば、コンピュータリソースサービスプロバイダ１０２は、顧客のコンピュータニーズの全てに対して１つのソースを顧客１０４に提供するために、仮想マシンインスタンス作成のための１つまたは複数の仮想マシンイメージを作成してよい。さらに、仮想コンピュータシステムサービスは、自身の顧客及び第三者ベンダを含む他の実体が、仮想マシンイメージを作成して、仮想マシンイメージデータストア１０６にアップロードできるようにして、仮想マシンインスタンス作成のための仮想マシンイメージの選択をより多様に顧客に提供してよい。
【００１５】
従って、図１に示すように、環境１００はベンダ１０８を含む。ベンダ１０８は、個人または組織であってよく、コンピュータリソースサービスプロバイダ１０２によって提供された仮想コンピュータシステムサービスを利用して、１つまたは複数の仮想マシンイメージを作成し、及び／または購入可能にする。ベンダ１０８は、コンピュータシステムサービスプロバイダ１０２が提供した仮想コンピュータシステムサービスにベンダのコンピュータ装置を通して１つまたは複数の要求を提出して、仮想マシンイメージを仮想マシンイメージデータストア１０６にアップロードするのに使用可能なベンダアカウントの作成を要求してよい。１つまたは複数の要求内に、ベンダ１０８は、認証情報を提供してよく、仮想コンピュータシステムサービスは、その認証情報を用いてベンダ１０８のアイデンティティを検証してよい。ベンダ１０８のアイデンティティが検証されると、仮想コンピュータシステムサービスは、デジタル証明書をベンダ１０８に提供してよく、ベンダ１０８は、仮想マシンイメージデータストア１０６にアップロードしてよいデジタル署名された仮想マシンイメージにデジタル証明書を添付してよい。あるいは、ベンダ１０８は、仮想マシンイメージを仮想マシンイメージデータストア１０６にアップロードするのに使用してよい信頼できるネットワーク接続にアクセスを許可されてよい。従って、仮想コンピュータシステムサービスは、これらの各仮想マシンイメージにデジタル署名して、これらの各仮想マシンイメージが認証済みであることを確認してよい。
【００１６】
顧客１０４が仮想マシンイメージデータストア１０６から仮想マシンイメージを選択する時、仮想コンピュータシステムサービスは、顧客１０４がこの仮想マシンイメージを利用して新しい仮想マシンインスタンスを作成するのを許可されているか否かを判断してよい。例えば、顧客１０４は、一定のベンダが提供するリソースへのアクセスレベルを規定する１つまたは複数のポリシーを作成してよい。これは、一定のベンダからの仮想マシンイメージを使用して顧客１０４の仮想マシンインスタンスを生成できるようにすることを含んでよい。あるいは、ポリシーは、リソースを使用すべきでないベンダのリストを含んでよい。ある実施形態においては、ベンダ１０８は、１つまたは複数のポリシーをベンダ１０８の仮想マシンイメージに添付して、どの実体がこれらの仮想マシンイメージを利用してよいかを判断する。例えば、顧客１０４が、現在、ベンダ１０８の競合者からの１つまたは複数のリソース、または、ベンダ１０８が提供する仮想マシンイメージと競合する１つまたは複数のリソースを利用している場合、ベンダ１０８は、この顧客１０４がベンダ１０８の仮想マシンイメージを利用するのを禁止するポリシーを生成してよい。従って、顧客１０４が規定されたポリシー及び／または選択した仮想マシンイメージ自体に含まれたポリシーに少なくとも部分的に基づいて、仮想コンピュータシステムサービスは、選択した仮想マシンイメージが、顧客１０４のための新しい仮想マシンインスタンスの支援に用いられてよいか否かを判断してよい。
【００１７】
図２は、本開示の様々な実施形態を実践してよい環境２００の例示的な実施例を示す。環境２００において、コンピュータリソースサービスプロバイダ２０２は、顧客２０４に様々なサービスを提供してよい。顧客２０４は、コンピュータリソースサービスプロバイダ２０２が提供した様々なサービスを利用して、１つまたは複数のウェブサーバまたはアプリケーションを遠隔で生成、テスト、及び維持し得る組織であってよい。図２に示すように、顧客２０４は、インターネット等の１つまたは複数の通信ネットワーク２０６を通して、コンピュータリソースサービスプロバイダ２０２と通信してよい。顧客２０４からコンピュータリソースサービスプロバイダ２０２への一部の通信によって、コンピュータリソースサービスプロバイダ２０２は、本明細書に記載の様々な技術またはその変形に従って動作してよい。
【００１８】
上記のように、コンピュータリソースサービスプロバイダ２０２は、その顧客に様々なコンピュータリソースサービスを提供してよい。例えば、この特定の例示的な実施例においては、コンピュータリソースサービスプロバイダ２０２は、少なくとも２種類のサービスを提供する。コンピュータリソースサービスプロバイダが提供するサービスは、この実施例においては、仮想コンピュータシステムサービス２０８、データストレージサービス２１０、アイデンティティ管理サービス２１２、及び、１つまたは複数の他のサービス２１４を含むが、本開示の実施形態の全てが、このようなサービスを全て含むわけではなく、本明細書に記載したサービスに加えて、または、その代わりに追加のサービスが提供されてもよい。
【００１９】
仮想コンピュータシステムサービス２０８は、コンピュータリソースサービスプロバイダ２０２の顧客２０４のために、仮想コンピュータシステム上に仮想マシンインスタンスを作成するように構成されたコンピュータリソースのコレクションであってよい。コンピュータリソースサービスプロバイダ２０２の顧客２０４は、仮想コンピュータシステムサービス２０８とインタラクトして、コンピュータリソースサービスプロバイダ２０２によってホスト及び運営される物理的コンピュータ装置（例えば、物理ホスト）上でインスタンス化される仮想コンピュータシステムをプロビジョニング及び操作してよい。仮想コンピュータシステムは、ウェブサイトを支援するサーバとして動作する等、様々な目的に使用されてよい。仮想コンピュータシステムの他のアプリケーションは、データベースアプリケーション、電子商取引アプリケーション、ビジネスアプリケーション、及び／または、他のアプリケーションを支援するものであってよい。
【００２０】
顧客２０４が、仮想コンピュータシステムサービス２０８とインタラクトして仮想マシンインスタンスをプロビジョニングする時、顧客２０４は様々なリソースにアクセスしてよい。例えば、仮想マシンインスタンスは、仮想マシンイメージをプロビジョニングしてよく、仮想マシンイメージは、オペレーティングシステム及び顧客のニーズに応じた様々なアプリケーションを含んでよい。従って、仮想コンピュータシステムサービス２０８は、顧客２０４が、複数の仮想マシンイメージから仮想マシンイメージを選択できるようにしてよい。仮想コンピュータシステムサービス２０８は、顧客２０４が選択した仮想マシンイメージを利用して新しい仮想マシンインスタンスを作成するのを許可されているか否かを判断するように構成されてよい。上記のように、仮想コンピュータシステムサービス２０８は、１つまたは複数の顧客２０４及び／または仮想マシンイメージポリシーを評価して、顧客２０４が仮想マシンイメージを用いて仮想マシンインスタンスを作成することを許可されているか禁じられているかを判断してよい。例えば、以下により詳細に記載するように、仮想コンピュータシステムサービス２０８は、アイデンティティ管理サービス２１２とインタラクトして、これらの１つまたは複数の顧客２０４及び／または仮想マシンイメージポリシーを識別してよく、これらのポリシーに少なくとも部分的に基づいて、顧客２０４が、選択した仮想マシンイメージを用いて仮想マシンインスタンスを作成してよいか否かを判断してよい。
【００２１】
仮想コンピュータシステムサービス２０８は、１つまたは複数のベンダが様々な仮想マシンイメージを仮想マシンイメージデータストアにアップロードするのをさらに許可してよく、１つまたは複数の顧客は、その様々な仮想マシンイメージを用いて仮想マシンインスタンスを作成してよい。例えば、ある実施形態においては、ベンダは、仮想コンピュータシステムサービス２０８とインタラクトして、仮想マシンイメージを仮想マシンイメージデータストアにアップロードするのに使用可能なベンダアカウントを作成してよい。ベンダは、要求内にアカウント作成のための認証情報を備えてよく、仮想コンピュータシステムサービス２０８は、その認証情報を利用して、ベンダのアイデンティティを検証してよい。次に、仮想コンピュータシステムサービス２０８は、仮想マシンイメージデータストアにアップロードされるデジタル署名された仮想マシンイメージにベンダが添付するデジタル証明書をベンダに与えてよい。
【００２２】
ベンダが、仮想マシンイメージデータストアに仮想マシンイメージのアップロードを試みる時、仮想コンピュータシステムサービス２０８は、仮想マシンイメージがデジタル署名されているか否かを判断してよく、デジタル署名されている場合、その署名を解読して、仮想マシンイメージのハッシュが解読された署名と一致するか否かを判断してよい。一致する場合、仮想コンピュータシステムサービス２０８は、仮想マシンイメージを認証して、その仮想マシンイメージを顧客がマーケットプレイスを通して利用できるようにしてよい。従って、顧客２０４は、仮想コンピュータシステムサービス２０８が提供したマーケットプレイスを利用して、信頼できる仮想マシンイメージを選択してよく、必要に応じて、選択した仮想マシンイメージ内に含まれるベンダのデジタル署名の検証プロセスを行うことによって、仮想マシンイメージの信頼性を個人的に検証してよい。仮想マシンイメージのハッシュの取得を、説明目的で本開示を通して広く使用するが、仮想マシンイメージの認証を行うのに十分なイメージの一部のハッシュを取得してよい。例えば、仮想コンピュータシステムサービス２０８は、仮想マシンイメージ全体を認証するために、重要であるとみなされる仮想マシンイメージの実行可能な部分または他の部分のハッシュ値を計算するよう構成されてよい。
【００２３】
データストレージサービス２１０は、顧客２０４のためにデータを記憶するように集合的に働くコンピュータリソースのコレクションを含んでよい。データストレージサービス２１０に記憶されたデータは、データオブジェクトに編成されてよい。データオブジェクトは、おそらく、サイズに関して一定の制約以外は任意のサイズを有してよい。従って、データストレージサービス２１０は、様々なサイズの多くのデータオブジェクトを記憶してよい。データストレージサービス２１０は、データオブジェクトをデータオブジェクトの識別子に関連付けるキー値ストアとして働いてよく、顧客２０４は、その識別子を用いて、データストレージサービス２１０に記憶されたデータオブジェクトに関連する取り出しまたは他の操作を行ってよい。データストレージサービス２１０へのアクセスは、１つまたは複数のアクションをデータストレージサービス２１０によって実行させるように適切に構成された１つまたは複数のＡＰＩコールを介して行われてよい。
【００２４】
アイデンティティ管理サービス２１２は、コンピュータリソースサービスプロバイダ２０２が提供する図２に示すサービス等の他のサービスへのアクセスレベルと、顧客及び他のベンダが提供するリソースへのアクセスレベルを顧客が規定できるようにする様々なサービスを提供してよい。従って、顧客２０４は、アイデンティティ管理サービス２１２にアクセスして、コンピュータリソースサービスプロバイダ２０２が提供するサービスを利用可能な１つまたは複数のユーザ及びグループを作成、管理してよい。顧客２０４は、アイデンティティ管理サービス２１２を利用して１つまたは複数のポリシーを生成してよく、一定のベンダが提供する仮想マシンイメージへのアクセスレベルを規定するためにそのポリシーが使用されてよい。
【００２５】
顧客２０４または他のユーザが、仮想コンピュータシステムサービス２０８を利用して仮想マシンイメージを選択し、新しい仮想マシンインスタンスを生成する時、仮想コンピュータシステムサービス２０８は、アイデンティティ管理サービス２１２にアクセスして、顧客２０４または他のユーザが選択した仮想マシンイメージの利用を許可されているか否かを判断してよい。アイデンティティ管理サービス２１２は、要求者及びイメージに添付されたポリシーの全てと、既に顧客の仮想ネットワーク内にある仮想コンピュータシステムの起動に使用されたイメージに添付されたポリシーとを、データストアから取得できる。アイデンティティ管理サービス２１２は、次に、ポリシーを評価して、要求の許可または拒絶を判断できる。ある実施形態例においては、ポリシーは、イメージが、一定のベンダからのイメージに添付されたデジタル署名を有する限り、一定のベンダからの仮想マシンイメージを顧客２０４または他のユーザの仮想マシンインスタンスの生成に使用できるようにするポリシーステートメントのセットを含み得る。同様に、ポリシーステートメントは、リソースを使用すべきでないベンダのリスト、または、仮想ネットワークの特徴に基づいた他の制限を含んでよい。仮想マシンイメージのベンダは、その仮想マシンイメージに関連付けられて、どの実体がこれらの仮想マシンイメージを利用して仮想マシンインスタンスを生成してよいかを判断する１つまたは複数のポリシーを生成できる。例えば、顧客２０４が、ベンダの競合者からの１つまたは複数のリソース、または、ベンダが提供する仮想マシンイメージと競合し得る１つまたは複数のリソースを利用している場合、ベンダは、この顧客２０４がこれらの仮想マシンイメージを利用するのを禁止するポリシーを生成してよい。
【００２６】
コンピュータリソースサービスプロバイダ２０２は、さらに、顧客２０４のニーズに基づいて、１つまたは複数の他のサービス２１４を維持してよい。例えば、コンピュータリソースサービスプロバイダ２０２は、その顧客２０４のためにデータベースサービスを維持してよい。データベースサービスは、１つまたは複数の顧客２０４のために１つまたは複数のデータベースを実行するように集合的に動作するコンピュータリソースのコレクションであってよい。コンピュータリソースサービスプロバイダ２０２の顧客２０４は、サービスへの適切に構成されたＡＰＩコールを利用することによって、データベースサービスからのデータベースを操作及び管理してよい。こうすると、顧客２０４が、データベースを維持し、その操作を拡大縮小することが可能になる。他のサービスは、オブジェクトレベルのデータストレージサービス、オブジェクトレベルのアーカイバルデータストレージサービス、他のサービスを管理するサービス、及び／または、他のサービスを含むが、それらに限定されない。
【００２７】
上記のように、仮想コンピュータシステムサービスは、１つまたは複数の顧客によって使用されて様々な用途のための仮想マシンインスタンスをプロビジョニングしてよい。一定の機能（例えば、１つまたは複数のデータベースの維持、クライアント情報の記憶、ウェブアプリケーションの開発等）を顧客が行うのを可能にし得るオペレーティングシステム及び様々なアプリケーションを含む仮想マシンイメージを選択するために、仮想コンピュータシステムサービスは、顧客のマーケットプレイスへのアクセスを許可してよい。この仮想マシンイメージを使用して、仮想マシンインスタンスを作成してよい。従って、図３は、少なくとも１つの実施形態による仮想コンピュータシステムサービス３０２の様々な構成要素を備える環境３００の例示的な実施例を示す。仮想コンピュータシステムサービス３０２は、顧客が仮想コンピュータシステムサービス３０２にアクセスできるようにするインタフェース３０４を顧客に提供してよい。顧客は、インターネット等の１つまたは複数の通信ネットワークを通してインタフェース３０４を利用してよい。インタフェース３０４は、顧客が仮想コンピュータシステムサービス３０２へのアクセスの権利を有することを保証する一定のセキュリティセーフガードを含んでよい。例えば、仮想コンピュータシステムサービス３０２にアクセスするために、顧客は、インタフェース３０４を用いる際、ユーザネーム及び対応するパスワードまたは暗号鍵を提供することが必要でとすることがある。さらに、インタフェース３０４に提出された要求（例えば、ＡＰＩコール)は、認証システム（図示せず）等、仮想コンピュータシステムサービス３０２によって電子署名が検証可能なように、暗号鍵を用いて生成された電子署名を必要とすることがある。
【００２８】
顧客は、インタフェース３０４を介して仮想コンピュータシステムサービス３０２にアクセスすると、仮想コンピュータシステムサービス３０２は、インタフェース３０４を介して管理サブシステム３０６と顧客がインタラクトできるようにしてよい。例えば、管理サブシステム３０６は、顧客が仮想マシンインスタンスを遠隔でプロビジョニングできるようにしてよい。顧客は、インタフェース３０４及び管理サブシステム３０６を使用して、オペレーティングシステムと顧客のニーズに適した様々なアプリケーションとを含む仮想マシンインスタンスを生成してよい。オペレーティングシステム及び様々なアプリケーションは、仮想マシンイメージデータストア３０８内にマシンイメージの形態でデータストレージに保持されてよい。仮想コンピュータシステムサービス３０２は、管理サブシステム３０６に特定されるように、具体的な顧客の好みに基づいて仮想マシンイメージデータストア３０８内に様々なマシンイメージを保持してよい。顧客が、管理サブシステム３０６を介して、仮想マシンインスタンスをプロビジョニングする要求を提出する時、仮想コンピュータシステムサービス３０２は、顧客が要求したマシンイメージを識別して、マシンイメージの処理に必要なリソース（例えば、マシンイメージの構成要素の操作に必要なプロセッサ及びランダムアクセスメモリ（ＲＡＭ））を割り当ててよい。マシンイメージは、インスタンスの物理ホスト３１２として働いてよい１つまたは複数の物理的記憶装置（例えば、１つまたは複数のサーバまたはハードドライブ）上でインスタンス化されてよい。
【００２９】
マシンイメージデータストア３０８内に記憶されたマシンイメージは、コンピュータリソースサービスプロバイダが提供するマーケットプレイス３１６を介して、仮想マシンイメージの１つまたは複数のベンダによって提供されてよい。ある実施形態において、ベンダは、マーケットプレイス３１６にアクセスして、仮想マシンイメージの生成、アップロードに使用してよい新しいベンダアカウントを生成する。この新しいベンダアカウントを生成するために、ベンダは、マーケットプレイス３１６がベンダのアイデンティティ検証のために使用可能な認証情報のセットをマーケットプレイス３１６に提供することを要求されてよい。従って、マーケットプレイス３１６は、アイデンティティ管理サービス３１４にアクセスして、認証情報のセットを利用してベンダのアイデンティティを検証してよい。マーケットプレイス３１６が、アイデンティティ管理サービス３１４を通して、ベンダのアイデンティティを検証できる場合、マーケットプレイス３１６は、トラストストア３１０にアクセスして、ベンダに割り当てられてよいデジタル証明書を取得してよい。トラストストア３１０は、複数のデジタル証明書を記憶する１つまたは複数の物理的記憶装置を備えるデータストアであってよい。このデジタル証明書は、デジタル証明書とデジタル署名された仮想マシンイメージが仮想マシンイメージデータストア３０８にアップロードされるように、ベンダによって作成された任意のデジタル署名された仮想マシンイメージに添付されてよい。あるいは、ベンダは、検証されると、ベンダ自身のデジタル証明書または他の暗号鍵をトラストストア３１０に提供してよく、管理サブシステム３０６またはマーケットプレイス３１６は、ベンダ自身のデジタル証明書または他の暗号鍵にアクセス、利用して、アップロードされた仮想マシンイメージの信頼性を検証してよい。
【００３０】
ある実施形態において、ベンダは、アップロードされた各仮想マシンイメージに関して、１つまたは複数の顧客及び／または仮想マシンイメージポリシーをアイデンティティ管理サービス３１４にさらにアップロードして、コンピュータリソースサービスプロバイダの１つまたは複数の顧客に関して、アップロードされた各仮想マシンイメージへのアクセスレベルを規定することができる。従って、顧客が、新しい仮想マシンインスタンスの作成に使用する仮想マシンイメージをマーケットプレイス３１６から選択する時、仮想コンピュータシステムサービス２０８は、アイデンティティ管理サービス３１４と通信して、この顧客に関して、選択した仮想マシンイメージに関して、顧客がインスタンスを起動しようとしている仮想ネットワークに関して等、適用可能なポリシーがあるか否かを判断してよい。これらのポリシーに少なくとも部分的に基づいて、アイデンティティ管理サービス３１４は、選択した仮想マシンイメージを要求したように利用するという顧客の要求を許可または拒絶してよい。さらに、または、あるいは、顧客が、インタフェース３０４及び管理サブシステム３０６を用いて特定の仮想マシンイメージを利用して仮想マシンインスタンスを生成する時、管理サブシステム３０６は、アイデンティティ管理サービス３１４にアクセスして１つまたは複数の顧客及び／または仮想マシンイメージポリシーを識別及び評価して、その顧客が選択した仮想マシンイメージを利用して仮想マシンインスタンスを生成することを許可されているか否かを判断してよい。
【００３１】
上記のように、選択した仮想マシンイメージのベンダが、例えば、インターネットゲートウェイを有するサブネット内にインスタンスを起動するイメージの使用を妨げる制限等、そのイメージの使用を制限するポリシーを作成している場合、管理サブシステム３０６は、顧客が選択した仮想マシンイメージを使用するのを妨げてよい。あるいは、顧客が特定のベンダが提供する仮想マシンイメージの使用を禁止する顧客ポリシーを生成した場合、管理サブシステム３０６は、顧客アカウントのユーザがこれらの仮想マシンイメージを利用するのを妨げてよい。管理サブシステム３０６が、顧客は選択した仮想マシンイメージを利用して仮想マシンインスタンスを作成してよいと判断する場合、仮想コンピュータシステムサービス３０２は、マシンイメージの処理に必要なリソース（例えば、マシンイメージの構成要素の操作に必要なプロセッサ及びＲＡＭ）を割り当ててよい。マシンイメージは、インスタンスの物理ホスト３１２として働いてよい１つまたは複数の物理的記憶装置（例えば、１つまたは複数のサーバまたはハードドライブ）上でインスタンス化されてよい。
【００３２】
顧客は、インタフェース３０４及び管理サブシステム３０６を使用して仮想マシンインスタンスを生成する時、マーケットプレイス３１６から仮想マシンイメージを選択してよい。従って、管理サブシステム３０６は、上記のように、顧客、仮想ネットワーク、及び／または、仮想マシンイメージポリシーを評価して、顧客が選択した仮想マシンイメージの利用を許可されていることを検証してよい。顧客及び／または顧客と関連付けられた特定のユーザが、仮想マシンイメージの利用を許可されている場合、管理サブシステムは、マシンイメージデータストア３０８から選択した仮想マシンイメージを取得してよい。顧客は、管理サブシステム３０６が提供した１つまたは複数のアプリケーションを利用して、選択した仮想マシンイメージが認証済みであることを独自に検証してよい。例えば、仮想マシンイメージを対応するデジタル署名と共に顧客に提供する場合、顧客は、これらの１つまたは複数のアプリケーションを利用して、ハッシュ関数を仮想マシンイメージに適用してハッシュ値またはダイジェストを取得してよい。次に、顧客は、暗号鍵を利用してデジタル署名を解読し、署名ハッシュ値を取得したハッシュ値と比較してよい。これらのハッシュ値が一致する場合、顧客は、仮想マシンイメージは認証済みであると検証できてよい。ある実施形態において、各仮想マシンイメージは、１つまたは複数の構成要素を含むことができ、これらの構成要素の少なくとも１つはデジタル署名されている。例えば、各仮想マシンイメージは、仮想マシンイメージの一定の詳細に関連付けられたメタデータを含むマニフェストを含んでよい。特に、仮想マシンイメージが十分なサイズの場合、仮想マシンイメージ全体の代わりに、このマニフェストがデジタル署名されてよい。従って、顧客は、選択した仮想マシンイメージのデジタル署名されたマニフェストに少なくとも部分的に基づいて、仮想マシンイメージの信頼性を検証できてよい。
【００３３】
上記のように、顧客は、マーケットプレイスを利用して１つまたは複数の仮想マシンイメージを取得してよい。仮想コンピュータシステムサービスを通してマーケットプレイスを使用して、新しい仮想マシンインスタンスの作成を要求してよい。インタフェースを介して、顧客は、仮想マシンインスタンス作成のために取得、使用してよい１つまたは複数の仮想マシンイメージのリストを含むマーケットプレイスにアクセスできてよい。従って、図４は、少なくとも１つの実施形態による、仮想コンピュータシステムサービス内で、仮想マシンインスタンス作成に使用してよい１つまたは複数の信頼できる仮想マシンイメージを選択するためのインタフェース４０２を備える環境４００の例示的な実施例を示す。上記のように、ベンダが、仮想コンピュータシステムサービスの顧客が使用するマーケットプレイスまたは他のデータストアに１つまたは複数の仮想マシンイメージをアップロードするためのベンダアカウントの作成を要求する時、仮想コンピュータシステムサービスは、ベンダにデジタル証明書を発行してよく、ベンダは、これらのデジタル署名された仮想マシンイメージにデジタル証明書を添付する。従って、ベンダがベンダアカウントを利用して仮想マシンイメージをアップロードする時、仮想コンピュータシステムサービスは、仮想マシンイメージと、デジタル署名及びデジタル証明書を利用して、イメージが有効であるか否かを判断してよい。デジタル署名が仮想マシンイメージ、仮想マシンイメージの一部、または、ベンダのプライベート鍵で署名された他のデータのハッシュと一致する場合、仮想マシンイメージを信頼してよい。
【００３４】
仮想コンピュータシステムサービスは、その顧客にこれらの信頼できる仮想マシンイメージのみを表示するようインタフェース４０２を構成してよい。例えば、図４に示すように、インタフェース４０２は、信頼できるイメージのタブ４０４を備えてよく、仮想コンピュータシステムサービスの顧客がタブ４０４を選択すると、マーケットプレイスで入手可能な信頼できる仮想マシンイメージをインタフェース４０２に表示させてよい。この例示的な実施例において、少なくとも３つの信頼できる仮想マシンイメージがある。これらの仮想マシンイメージは、異なるベンダによって提供されてよく、各ベンダは、ベンダと共に暗号材料を用いて仮想コンピュータシステムサービスによって検証済みであってよい。例えば、ベンダが、ベンダアカウントの作成を要求する時、認証情報のセット（例えば、ユーザネームとパスワード、暗号鍵等）を仮想コンピュータシステムサービスに提供してよい。従って、仮想コンピュータシステムサービスは、この認証情報を利用してベンダのアイデンティティを検証し、アカウントを作成してよいか否かを判断してよい。そうすると、認証情報を用いて、デジタル証明書を作成し、イメージに署名することができる。
【００３５】
さらに、各仮想マシンイメージは、上記のように、デジタル証明書及びデジタル署名と共に仮想コンピュータシステムサービスにアップロードされてよい。デジタル署名は、仮想マシンイメージのハッシュを暗号鍵ペアのプライベート暗号鍵で暗号化することによって作成してよい。仮想マシンイメージを受信すると、仮想コンピュータシステムサービスは、デジタル証明書内に含まれる公開鍵を利用して、デジタル署名を解読して、ハッシュ値を取得してよい。次に、仮想コンピュータシステムサービスは、仮想マシンイメージのハッシュ値を計算し、この値をデジタル署名を解読して取得したハッシュ値と比較して一致するか否かを判断してよい。値が一致する場合、仮想マシンイメージは認証済みとみなされてよい。従って、仮想マシンイメージは、信頼できる仮想マシンイメージのリストに加えられ、リストは、インタフェース４０２の信頼できるイメージのタブ４０４の下に表示される。従って、インタフェース４０２を使用する顧客は、信頼できるイメージのタブ４０４の下にリストされた仮想マシンイメージは仮想コンピュータシステムサービスによって検証済みであると理解してよい。さらに、仮想コンピュータシステムサービスは、インタフェース４０２に、これらの信頼できる各仮想マシンイメージと共に指示をさらに表示させる。顧客は、その指示を使用して仮想マシンイメージが認証済みであることを検証してよい。
【００３６】
顧客は、どの仮想マシンイメージを利用して新しい仮想マシンインスタンスを作成したいかを決定すると、インタフェース４０２を通して、信頼できるイメージのタブ４０４の下にリストされた仮想マシンイメージの隣の選択ボタン４０６を利用して、仮想マシンイメージを選択してよい。仮想コンピュータシステムサービスは、顧客が特定の仮想マシンイメージの選択ボタン４０６を利用したことを検出すると、仮想マシンイメージデータストアからその仮想マシンイメージを取得し、仮想マシンイメージを入手できるようにしてよく、顧客は、仮想コンピュータシステムサービスにアクセスし、取得した仮想マシンイメージのリストから仮想マシンイメージを選択し、仮想マシンイメージを物理ホスト上にインスタンス化して、顧客が新しく作成された仮想マシンインスタンスを利用できるようする。あるいは、仮想コンピュータシステムサービスは、仮想マシンイメージの取得前に、選択した仮想マシンイメージが認証済みであることを独自に検証する方法を顧客に提供してよい。例えば、顧客が、信頼できるイメージのタブ４０４から仮想マシンイメージを選択する時、仮想コンピュータシステムサービスは、インタフェース４０２に新しい画面を表示させてよい。新しい画面は、選択した仮想マシンイメージと共に含まれるデジタル署名が有効であるか否かを判断するのに用いてもよい１つまたは複数のアプリケーションを含んでよい。従って、顧客は、これらの１つまたは複数のアプリケーションを利用して、デジタル署名、ひいては、仮想マシンイメージが認証済みであるか否かを判断してよい。
【００３７】
仮想コンピュータシステムサービスは、顧客が使用する１つまたは複数の他のボタンを備えるようにインタフェース４０２をさらに構成してよい。例えば、図４に示すように、インタフェース４０２は、キャンセルボタン４０８を備えてよく、顧客は、キャンセルボタン４０８を利用して、インタフェース４０２から出ることによって、顧客のイメージ取得要求をキャンセルしてよい。図４に示すインタフェース４０２は、説明目的で提示しており、従って、１つまたは複数の追加の要素を備えてもよく、図４に示す１つまたは複数の要素を除いてよいことに留意されたい。例えば、信頼できるイメージのタブ４０４に加えて、インタフェース４０２は、仮想コンピュータシステムサービスによって認証されていない、または、デジタル署名を含まない仮想マシンイメージのリストを含む１つまたは複数の追加のタブを備えてよい。従って、顧客は、顧客自身のリスクで、認証されていない仮想マシンイメージを選択可能であってよい。
【００３８】
上記のように、仮想コンピュータシステムサービスは、さらに、１つまたは複数のベンダにインタフェースを提供して、これらのベンダが仮想マシンイメージを仮想マシンイメージデータストアにアップロードできるようにしてよい。従って、図５は、少なくとも１つの実施形態による、仮想マシンイメージを仮想マシンイメージデータストアにアップロードするためのインタフェース５０２を備える環境５００の例示的な実施例を示す。上記のように、ベンダが、仮想マシンイメージを仮想マシンイメージデータストアにアップロードするためにベンダアカウントを作成する要求を仮想コンピュータシステムサービスに提出する時、ベンダは、仮想コンピュータシステムサービスがベンダのアイデンティティ検証に使用し得る追加の認証情報を提供してよい。ベンダのアイデンティティが仮想コンピュータシステムサービスによって検証される場合、仮想コンピュータシステムサービスは、ベンダにデジタル証明書を提供してよく、デジタル証明書は、デジタル署名された仮想マシンイメージと共に仮想マシンイメージデータストアにアップロードされてよい。あるいは、ベンダは、仮想コンピュータシステムサービスにデジタル証明書を提供してよく、仮想コンピュータシステムサービスは、デジタル証明書をトラストストア内に記憶してよい。従って、ベンダがデジタル署名された仮想マシンイメージと共にベンダのデジタル証明書を含む時、仮想コンピュータシステムサービスは、トラストストア内に記憶されたデジタル証明書を利用して、仮想マシンイメージの信頼性を検証してよい。
【００３９】
仮想コンピュータシステムサービスは、ベンダが仮想マシンイメージをアップロードするのに使用可能な１つまたは複数の要素を備えるようにインタフェース５０２を構成してよい。例えば、インタフェース５０２は、会社名入力ボックス５０４を含んでよい。ベンダは会社名入力ボックス５０４を利用して、ベンダの名前を仮想コンピュータシステムサービスに提供することを要求されてよい。例えば、図５に示すように、ベンダは、会社名入力ボックス５０４を利用して、ベンダの会社名が「Ｂｏｏｍ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｉｍａｇｅｓ，  Ｉｎｃ．」であることを記載している。インタフェース５０２は、製品名入力ボックス５０６をさらに備えてよく、ベンダは、製品名入力ボックス５０６を利用して、仮想マシンイメージデータストアにアップロードする仮想マシンイメージの名前を提供してよい。例えば、図５に示すように、ベンダは、製品名入力ボックス５０６を利用して、ベンダの仮想マシンイメージに名前、この場合は、「Ｌｅｇｉｏｎ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｉｍａｇｅ」を与えている。仮想コンピュータシステムの顧客が仮想マシンイメージを提供したベンダのアイデンティティを判断し、かつ、その仮想マシンイメージを仮想マシンイメージデータストア内に記憶された他の仮想マシンイメージと区別できるように、仮想コンピュータシステムサービスは、仮想マシンイメージの会社名と製品名の両方を要求してよい。
【００４０】
仮想マシンイメージ情報を提供するためにベンダが使用可能な１つまたは複数の要素に加えて、仮想コンピュータシステムサービスは、インタフェース５０２がデジタル証明書メニュー５０８を備えるように構成してよく、ベンダは、デジタル証明書メニュー５０８を利用して、仮想マシンイメージデータストアにアップロードするデジタル署名された仮想マシンイメージと共に含まれてよいデジタル証明書を選択してよい。上記のように、ベンダが最初にベンダアカウントを作成する時、仮想コンピュータシステムサービスは、ベンダのアイデンティティを確認し、仮想マシンイメージデータストアにアップロードする任意のデジタル署名された仮想マシンイメージに添付してよいデジタル証明書をこのベンダに与えてよい。あるいは、仮想コンピュータシステムサービスは、仮想マシンイメージデータストアにアップロードする各仮想マシンイメージに関してベンダにデジタル証明書を与えてよい。従って、ベンダは、デジタル証明書メニュー５０８を利用して、仮想マシンイメージと共に含まれてよい適切なデジタル証明書（例えば、図５に示す「Ｓｈｅｒｍａｎ＿ＶＭＩ＿Ｉｎｃ」）を選択してよい。仮想マシンイメージがデジタル署名されると、仮想コンピュータシステムサービスは、デジタル証明書を利用してデジタル署名を解読してハッシュ値を取得するために使用可能な公開鍵を取得してよい。次に、仮想コンピュータシステムサービスは、ハッシュ関数を利用して仮想マシンイメージのハッシュ値を計算して、第２のハッシュ値を取得してよい。これらのハッシュ値が一致する場合、仮想マシンイメージは、認証済みであるとみなされてよい。ある実施形態においては、仮想コンピュータシステムサービスは、デジタル証明書内の公開鍵を利用して、仮想マシンイメージを解読することができる。仮想マシンイメージの解読に成功すると、仮想マシンイメージは、認証済みであるとみなされてよい。
【００４１】
ベンダは、会社名及び仮想マシンイメージ名を提供し、適切なデジタル証明書を選択すると、次へボタン５１０を利用して、仮想マシンイメージにデジタル署名を行い、選択したデジタル証明書と共に仮想マシンイメージを仮想マシンイメージデータストアにアップロードしてよい。従って、仮想コンピュータシステムサービスは、上記のデジタル署名検証プロセスを実行して、アップロードされた仮想マシンイメージの信頼性を検証してよい。仮想コンピュータシステムサービスは、様々な目的のためにベンダが利用してよいインタフェース５０２内に１つまたは複数の追加の要素をさらに備えてよい。例えば、図５に示すように、インタフェース５０２は、キャンセルボタン５１２を備えてよく、ベンダは、キャンセルボタン５１２を利用して、インタフェース５０２を出て、仮想マシンイメージのアップロードプロセスを終了してよい。図５に示すインタフェース５０２は、説明目的で提示しており、従って、１つまたは複数の追加の要素を備えてもよく、図５に示す１つまたは複数の要素を除いてもよいことに留意されたい。例えば、デジタル証明書メニュー５０８に加えて、インタフェース５０２は、ベンダがデジタル証明書なしに仮想マシンイメージをアップロードできるようにしてよい１つまたは複数の追加のボタンを備えてよい。従って、これらの仮想マシンイメージを検証しなくてもよい。
【００４２】
上記のように、ベンダは、ベンダアカウントを作成するために仮想コンピュータシステムサービスと通信してよい。ベンダは、ベンダアカウントを使用して、１つまたは複数の仮想マシンイメージを仮想コンピュータシステムサービスによって管理される仮想マシンイメージデータストアにアップロードしてよい。従って、図６は、少なくとも１つの実施形態による、ベンダアカウントを作成し、仮想マシンイメージを入手可能にするために使用するデジタル証明書をベンダに発行するプロセス６００の例示的な実施例を示す。プロセス６００は、仮想コンピュータシステムサービスによって実行されてよい。仮想コンピュータシステムサービスは、当該サービスを通して要求を行う任意の実体のアイデンティティを検証し、アップロードする任意のデジタル署名された仮想マシンイメージにベンダが添付してよいデジタル証明書を発行するように構成される。上記のように、ベンダは、仮想コンピュータシステムサービスによって提供されたインタフェースを利用して、ベンダアカウントの作成を要求してよい。顧客がこれらの仮想マシンイメージを利用できるようにするために、このベンダアカウントを使用して、仮想マシンイメージを仮想マシンイメージデータストアにアップロードしてよい。従って、顧客は、ベンダの仮想マシンイメージの使用に対してベンダに支払いを行ってよい。このように、ベンダアカウントの作成は、ベンダの仮想マシンイメージが仮想マシンイメージデータストアにアップロードされる場合、ベンダは、その仮想マシンイメージを収益化できるようにしてよいので、ベンダにとって利益になり得る。従って、仮想コンピュータシステムサービスは、ベンダアカウント作成要求をベンダから受信してよい（６０２）。
【００４３】
ベンダによる要求は、認証情報を備えてよく、仮想コンピュータシステムサービスは認証情報を使用して、ベンダのアイデンティティを検証してよい（６０４）。例えば、ベンダが、コンピュータリソースサービスプロバイダの顧客である場合、ベンダは、コンピュータリソースサービスプロバイダによって提供された１つまたは複数のサービスのアクセスに使用されてよいユーザネーム及びパスワードを提供してよい。従って、仮想コンピュータシステムサービスは、ユーザネーム及びパスワードを利用して顧客プロファイルを検索し、ベンダに関する情報を取得してよい。例えば、これは、ベンダ名、ベンダの物理的アドレス、及び、他のベンダ情報を含んでよい。この情報を用いて、仮想コンピュータシステムサービスは、要求を提出したベンダが信頼できるベンダか否かを判断できてよい（６０６）。信頼できるベンダは、少なくとも特定の期間、アカウントを保持したコンピュータリソースサービスプロバイダの顧客であってよい。あるいは、信頼できるベンダは、ネゴシエーションまたは他の通信等を通してコンピュータリソースサービスプロバイダとの構築したコンピュータリソースサービスプロバイダの顧客であってよく、そうすることによって、コンピュータリソースサービスプロバイダはこの顧客を信頼している。仮想コンピュータシステムサービスは、本開示を通して広く使用されてベンダのアイデンティティ検証する一方、他のサービス、サービスプロバイダ、及び、実体は、仮想コンピュータシステムサービスの代わりに、ベンダのアイデンティティを検証するように構成されてよい。例えば、コンピュータリソースサービスプロバイダは、アイデンティティ管理サービスを維持、運営してよい。アイデンティティ管理サービスは、仮想マシンイメージのベンダを含む、コンピュータリソースサービスプロバイダによって提供された１つまたは複数のサービスの各ユーザの認証情報のセットを提供、保持するように構成される。従って、このアイデンティティ管理サービスは、ベンダから認証情報のセットを受信してベンダのアイデンティティを判断して、ベンダが信頼できるベンダとみなされるか否かを判断するように構成されてよい。
【００４４】
仮想コンピュータシステムサービスの判断でベンダが信頼できるベンダでない場合、仮想コンピュータシステムサービスは、ベンダのベンダアカウント作成要求を拒絶（６０８）して、ベンダが仮想マシンイメージをアップロードするのを妨げてよい。あるいは、ベンダが、ベンダアカウントなしに仮想マシンイメージをアップロードできるようにしてよい。しかしながら、これらの仮想マシンイメージは、仮想コンピュータシステムサービスによって検証されなくてもよいので、仮想コンピュータシステムサービスは、これらの仮想マシンイメージを、未検証と指定してよい。
【００４５】
仮想コンピュータシステムサービスは、ベンダが信頼できるベンダとみなされると検証できる場合、ベンダが、要求内に、デジタル証明書を備えているか否かを判断してよい（６１０）。デジタル証明書は、仮想コンピュータシステムサービスによって、仮想マシンイメージデータストアにアップロードされる任意の仮想マシンイメージに含まれるデジタル署名の解読に使用されてよい。従って、仮想コンピュータシステムサービスは、デジタル証明書内の公開鍵を利用してデジタル署名された仮想マシンイメージ内のデジタル署名を解読してよい。仮想コンピュータシステムサービスは、また、ハッシュ関数を仮想マシンイメージに適用してハッシュ値を取得してよい。ハッシュ値が解読されたデジタル署名と一致する場合、仮想マシンイメージは、信頼できるベンダからのものであると見なされてよく、従って、認証済みであってよい。要求がデジタル証明書を含む場合、仮想コンピュータシステムサービスは、ベンダからのデジタル証明書をデータストアに追加してよく（６１２）、データストアは、ベンダがデジタル署名された仮想マシンイメージをアップロードするまでデジタル証明書を保管してよい。
【００４６】
ベンダからの要求が、仮想マシンイメージと共に含まれたデジタル署名の解読に使用できるデジタル証明書を含まない場合、仮想コンピュータシステムサービスは、ベンダの仮想マシンイメージと共に使用するデジタル証明書をベンダに発行してよい（６１２）。このデジタル証明書も、ベンダによってアップロードされる時、デジタル署名された仮想マシンイメージ内のデジタル署名の解読に使用するためにデータストア内に記憶されてよい。あるいは、デジタル証明書は仮想コンピュータシステムサービスによって提供されてよいので、このデジタル証明書を備える任意の仮想マシンイメージは、認証済みとみなされてよい。プロセス６００は、図６に提示されたアクションより多いまたはそれより少ないアクションを含んでよいことに留意されたい。例えば、ある実施形態において、仮想コンピュータシステムサービスは、新しい仮想マシンイメージをマシンイメージデータストアにアップロードする時、信頼できるベンダのみが仮想コンピュータシステムが発行したデジタル証明書を利用することができるようにする。従って、仮想コンピュータシステムサービスは、ベンダが信頼できるベンダであると判断すると、ベンダがベンダ自身のデジタル証明書を提供したか否かに関わらず、ベンダの仮想マシンイメージと共に使用するデジタル証明書をベンダに発行してよい（６１４）。
【００４７】
上記のように、ベンダは、仮想コンピュータシステムサービスが提供したインタフェースを利用して、１つまたは複数の仮想マシンイメージを仮想マシンイメージデータストアにアップロードしてよい。このデータストア内の仮想マシンイメージは、マーケットプレイス内に含まれてよく、仮想コンピュータシステムサービスの顧客は、マーケットプレイス内で、仮想マシンイメージを選択して新しい仮想マシンインスタンスを作成してよい。従って、図７は、少なくとも１つの実施形態による、仮想コンピュータシステムサービスによって管理されるマーケットプレイスに仮想マシンイメージを追加するプロセス７００の例示的な実施例を示す。プロセス７００は、アップロードされた仮想マシンイメージ内に含まれた１つまたは複数のデジタル署名を検証するように構成された仮想コンピュータシステムサービスによって実行されてよい。さらに、仮想コンピュータシステムサービスは、信頼できる仮想マシンイメージ及び未検証の仮想マシンイメージの両方を含み得るマーケットプレイスを管理するように構成されてよい。
【００４８】
上記のように、ベンダは、図５に示すインタフェース等、仮想コンピュータシステムサービスによって提供されるインタフェースを利用して、仮想マシンイメージを仮想マシンイメージデータストアにアップロードしてよい。仮想マシンイメージデータストアは、仮想コンピュータシステムサービスの顧客によって使用されて新しい仮想マシンインスタンスを生成し得る複数の仮想マシンイメージを備えてよい。従って、仮想コンピュータシステムサービスは、アップロードされた仮想マシンイメージをベンダから受信してよい（７０２）。以下により詳細に記載するように、仮想コンピュータシステムサービスは、１つまたは複数のアクションを実行して、仮想マシンイメージを仮想マシンイメージデータストア及び／またはマーケットプレイスに追加してよいか否かを判断してよく、それによって、アップロードされた仮想マシンイメージへのアクセスを顧客に許可する。
【００４９】
仮想コンピュータシステムサービスは、アップロードされた仮想マシンイメージをベンダから受信すると、アップロードされた仮想マシンイメージが対応するベンダデジタル証明書と共にアップロードされているか否かを判断してよい（７０４）。上記のように、ベンダがベンダアカウント作成要求を仮想コンピュータシステムサービスに提出すると、仮想コンピュータシステムサービスは、ベンダを信頼できるベンダとみなしてよいか否かを判断してよい。ベンダが信頼できるベンダであると判断される場合、仮想コンピュータシステムサービスは、仮想マシンイメージと共に使用するデジタル証明書をベンダに発行、または、ベンダからデジタル証明書を受信してよく、デジタル証明書は次にトラストストアに追加される。従って、ベンダは、仮想マシンイメージをアップロードする前に、デジタル証明書をデジタル署名された仮想マシンイメージに添付してよい。
【００５０】
アップロードされた仮想マシンイメージが、対応するデジタル証明書と共にアップロードされていない（例えば、仮想マシンイメージはデジタル署名されていない）場合、仮想コンピュータシステムサービスは、仮想マシンイメージへのアクセスを顧客に許可するために、アップロードされた仮想マシンイメージを仮想マシンイメージデータストア及び／またはマーケットプレイスに追加してよいか否かを判断してよい（７０６）。例えば、仮想マシンイメージがデジタル証明書を含まない場合、アップロードされた仮想マシンイメージの信頼性を検証するのが難しいまたは不可能なことがある。従って、仮想コンピュータシステムサービスは、これらのイメージが悪意のソフトウェアを含むか否かを知る方法がないので、仮想マシンイメージデータストア及び／またはマーケットプレイスにデジタル署名されていない仮想マシンイメージの追加を拒絶するように構成されてよい。仮想コンピュータシステムサービスが、デジタル署名されていない仮想マシンイメージを拒絶するように構成されている場合、インタフェースを通してエラーメッセージを表示してよい（７０８）。このエラーメッセージは、アップロードされた仮想マシンイメージを拒絶する１つまたは複数の理由を述べる情報を含んでよく、ベンダは、その情報を利用して、ベンダアカウントの取得及び／または有効なデジタル証明書の仮想マシンイメージへの添付、または、仮想コンピュータシステムサービスとの通信の終了のいずれかを試みてよい。
【００５１】
アップロードされた仮想マシンイメージが対応するデジタル証明書と共にアップロードされている場合、仮想コンピュータシステムサービスは、デジタル証明書が信頼できるか否か判断してよい（７１０）。例えば、ベンダアカウント作成プロセス中、仮想コンピュータシステムサービスが仮想マシンイメージと共に使用するためにベンダにデジタル証明書を提供した場合、仮想コンピュータシステムサービスは、アップロードされた仮想マシンイメージを調べて、仮想マシンイメージがデジタル署名されており、デジタル証明書を含むか否かを判断してよい。あるいは、ベンダアカウント作成プロセス中、ベンダが仮想コンピュータシステムサービスにデジタル証明書を提供し、デジタル証明書が仮想コンピュータシステムサービスが管理するトラストストア内に記憶されている場合、仮想コンピュータシステムサービスは、アップロードされた仮想マシンイメージと共に含まれたデジタル証明書がトラストストア内に事前に記憶されていたか否かを判断してよい。アップロードされた仮想マシンイメージと共に含まれたデジタル証明書が、トラストストア内に事前に記憶されていない場合、デジタル証明書は信頼できない可能性がある。デジタル証明書が、仮想コンピュータシステムサービスが管理するトラストストア内に含まれていないので、信頼できない場合、仮想コンピュータシステムサービスは、仮想マシンイメージデータストア及び／またはマーケットプレイスへの仮想マシンイメージの追加に失敗した１つまたは複数の理由を述べる情報を含み得るエラーメッセージをインタフェースに表示させてよい（７０８）。
【００５２】
アップロードされた仮想マシンイメージと共に含まれたデジタル証明書が仮想コンピュータシステムサービスによって信頼できると見なされると、仮想コンピュータシステムサービスは、デジタル証明書と共に含まれた公開暗号鍵を利用して、仮想マシンイメージのデジタル署名を検証してよい（７１２）。例えば、デジタル署名された仮想マシンイメージが、デジタル証明書と共に仮想マシンイメージデータストアにアップロードされる時、仮想コンピュータシステムサービスは、デジタル署名を解読してハッシュ値を取得するために、デジタル証明書から公開暗号鍵を抽出してよい。従って、このハッシュ値を、仮想マシンイメージのダイジェストと比較して、デジタル署名が有効であるか否かを判断してよい（７１４）。値が一致する場合、仮想マシンイメージは、仮想マシンイメージの信頼できるベンダからのものであると検証されてよい。あるいは、デジタル署名された仮想マシンイメージ及び対応するデジタル証明書は、仮想マシンイメージデータストア内に記憶されてよく、任意の実体は、仮想マシンイメージデータストア内で、仮想マシンイメージを選択し、実行可能なコードの１つまたは複数のモジュールを利用して、仮想マシンイメージが仮想マシンイメージの信頼できるベンダからのものであることを独自に検証してよい。
【００５３】
仮想マシンイメージのデジタル署名が仮想コンピュータシステムによって検証されると、仮想コンピュータシステムサービスは、アップロードされた仮想マシンイメージを仮想マシンイメージデータストア及び／またはマーケットプレイスに追加してよい（７１６）。さらに、アップロードされた仮想マシンイメージが、デジタル署名されておらず、及び／または、デジタル証明書を含まない場合、仮想マシンイメージデータストア及び／またはマーケットプレイスに追加されてもよい。例えば、仮想コンピュータシステムサービスは、仮想マシンイメージデータストア及び／またはマーケットプレイス内にデジタル署名されていない、または、認証できない（例えば、欠陥のあるデジタル証明書を含む、または、デジタル証明書を全く含まない）仮想マシンイメージを記憶するように構成されてよい。しかしながら、これらの仮想マシンイメージは、仮想コンピュータシステムサービスが認証していないとして分類されてよい。例えば、仮想コンピュータシステムサービスは、これらの各仮想マシンイメージを仮想コンピュータシステムサービスが「未検証」としてラベル付けするよう構成されてよい。このように、仮想マシンイメージデータストア及び／またはマーケットプレイス内に記憶された仮想マシンイメージは、その仮想マシンイメージが仮想マシンイメージのベンダからのものと検証可能か否かに少なくとも部分的に基づいて分類されてよい。ある実施形態において、仮想マシンイメージのベンダが信頼できる通信ネットワークチャネルを通して仮想マシンイメージを仮想マシンイメージデータストアにアップロードする場合、仮想コンピュータシステムサービスは、仮想マシンイメージをデジタル署名してよく、それによって仮想マシンイメージ自体を認証する。
【００５４】
上記のように、仮想コンピュータシステムサービスの顧客及び仮想マシンイメージのベンダは、仮想コンピュータシステムサービスによって使用されて顧客または他のユーザが仮想マシンイメージを利用して新しい仮想マシンインスタンスを生成してよいか否かを判断し得る１つまたは複数のポリシーを規定してよい。従って、図８は、少なくとも１つの実施形態による、１つまたは複数の適用可能なポリシーに少なくとも部分的に基づいて、仮想マシンイメージを起動するプロセス８００の例示的な実施例を示す。プロセス８００は、仮想コンピュータシステムサービスによって実行されてよく、仮想コンピュータシステムサービスは、１つまたは複数の仮想マシンイメージへのアクセスレベルを規定するための１つまたは複数のポリシーを顧客及びベンダが規定できるように構成される。さらに、仮想コンピュータシステムサービスは、これらのポリシーを評価して、顧客が仮想マシンイメージを利用して新しい仮想マシンインスタンスを作成してよいか否かを判断するように構成されてよい。
【００５５】
上記のように、仮想コンピュータシステムサービスは、仮想コンピュータシステムサービスの顧客にインタフェースを提供するように構成されてよく、顧客は、インタフェースを利用して仮想マシンイメージを起動する１つまたは複数の要求を提出してよい。例えば、図４に示すように、インタフェースは、１つまたは複数の仮想マシンイメージのリストを含んでよく、顧客は、そのリストを使用して、新しい仮想マシンインスタンスの作成に適した仮想マシンイメージを選択してよい。従って、仮想コンピュータシステムサービスは、選択した仮想マシンイメージを起動する要求を受信してよい（８０２）。
【００５６】
仮想コンピュータシステムサービスは、顧客または他の委任されたユーザから要求を受信すると、顧客及び／または仮想マシンイメージポリシーを評価して（８０４）、顧客または委任されたユーザが選択した仮想マシンイメージを利用して新しい仮想マシンインスタンスを作成してよいか否かを判断してよい。上記のように、仮想コンピュータシステムサービスは、複数のベンダによって利用可能にされた１つまたは複数の仮想マシンイメージへのアクセスレベルを規定する１つまたは複数のポリシーを顧客が規定できるようにしてよい。例えば、顧客は、顧客または顧客アカウントの他の委任されたユーザが特定のベンダが作成した仮想マシンイメージを利用できないことを特定するポリシーを生成してよい。あるいは、顧客は、仮想マシンインスタンスの作成に仮想マシンイメージを使用してよい信頼すべきベンダのリストを規定するポリシーを生成してよい。
【００５７】
顧客ポリシーに加えて、仮想マシンイメージのベンダは、仮想マシンイメージデータストアにアップロードされる各仮想マシンイメージに１つまたは複数のポリシーを添付してよい。例えば、ベンダは、アップロードされた仮想マシンイメージの利用を許可してはいけない１つまたは複数の顧客を規定する１つまたは複数のポリシーを作成してよい。あるいは、または、追加で、ベンダは、仮想マシンイメージを使用してはいけない条件セットを規定する１つまたは複数のポリシーを作成してよい。例えば、顧客が、特定の仮想コンピュータシステム構成を使用する場合、仮想マシンイメージは、この仮想コンピュータシステムにインスタンス化される時、適切に動作しない場合がある。従って、ポリシーを規定して、このような出来事を防いでよい。
【００５８】
仮想コンピュータシステムサービスは、顧客及び／または仮想マシンイメージポリシーを評価すると、顧客または委任されたユーザが仮想マシンイメージを起動するのを可能にしてよい１つまたは複数のポリシーがあるか否かを判断してよい（８０６）。例えば、１つまたは複数のポリシーは、特定の顧客または委任されたユーザが仮想マシンイメージを利用して仮想マシンインスタンスを作成してよいという肯定的記載を含んでよい。顧客または委任されたユーザが仮想マシンイメージを起動して仮想マシンインスタンスを明確に作成できるようにするというポリシーが無い場合、仮想コンピュータシステムサービスは、顧客または委任されたユーザが仮想マシンイメージを起動するのを禁じてよい１つまたは複数のポリシーがあるか否かを判断してよい（８０８）。例えば、上記のように、顧客は、顧客または任意の他の委任されたユーザが顧客アカウントを使用して、１つまたは複数の特定のベンダが作成した仮想マシンイメージを利用するのを禁じる１つまたは複数のポリシーを規定してよい。別の例では、ベンダは、顧客の仮想コンピュータシステム構成が仮想マシンイメージと互換性が無い場合、顧客がこれらの仮想マシンイメージを利用するのを禁じてよい、ベンダの仮想マシンイメージと共に含まれる１つまたは複数のポリシーを生成してよい。
【００５９】
顧客及び／または仮想マシンイメージポリシーが、顧客または委任されたユーザが選択した仮想マシンイメージを利用することを明確に禁じている場合、仮想コンピュータシステムサービスは、インタフェースにエラーメッセージを表示させてよい（８１０）。エラーメッセージは、顧客または委任されたユーザが選択した仮想マシンイメージを使用してはいけいない１つまたは複数の理由を述べる情報を含んでよい。あるいは、エラーメッセージは、要求が否定されたことを述べる情報のみを含み、要求を否定する追加の理由を含まなくてもよい。
【００６０】
選択した仮想マシンイメージを顧客が明確に利用できるようにする顧客ポリシー及び／または仮想マシンイメージポリシーがある場合、または、顧客若しくは委任されたユーザが選択した仮想マシンイメージを利用するのを禁じるポリシーが規定されていない場合、仮想コンピュータシステムサービスは、選択した仮想マシンイメージを物理ホストにインスタンス化（８１２）して、顧客または委任されたユーザが新しく作成された仮想マシンインスタンスを利用できるように（８１４）にしてよい。例えば、仮想コンピュータシステムサービスは、必要なリソース（例えば、マシンイメージの構成要素の操作に必要なプロセッサ及びＲＡＭ）を仮想マシンイメージの処理に割り当ててよい。次に、仮想マシンイメージは、仮想マシンインスタンスの物理ホストとして働いてよい１つまたは複数の物理的記憶装置（例えば、１つまたは複数のサーバまたはハードドライブ）上でインスタンス化されてよい。
【００６１】
本開示の実施形態は、以下の条項を考慮して記載することができる。
条項１
仮想マシンイメージを認証するためのコンピュータ実施方法であって、
実行可能命令を用いて構成された１つまたは複数のコンピュータシステムの制御の下、
仮想マシンイメージ、前記仮想マシンイメージのデジタル署名、前記デジタル署名の検証に使用可能な公開暗号鍵を含むデジタル証明書、及び、コンピュータリソースサービスプロバイダの１つまたは複数の顧客に関する前記仮想マシンイメージへのアクセスレベルを規定する１つまたは複数のポリシーを、ベンダから受信することと、
前記デジタル証明書及び前記公開暗号鍵を用いて、前記仮想マシンイメージの前記デジタル署名を検証することと、
前記仮想マシンイメージの前記デジタル署名の検証の結果、前記仮想マシンイメージが認証済みであると検証されたという指示と共に、コンピュータリソースサービスプロバイダマーケットプレイス内で前記仮想マシンイメージを選択可能にすることと、
前記コンピュータリソースサービスプロバイダの前記顧客が前記仮想マシンイメージを選択した結果、前記１つまたは複数のポリシーを評価して、前記顧客が前記選択した仮想マシンイメージの使用を許可されているか否かを判断することと、
前記顧客が前記選択した仮想マシンイメージの使用を許可されていると判断した結果、前記選択した仮想マシンイメージを用いて、仮想マシンをインスタンス化することと、
を含む、前記コンピュータ実施方法。
条項２
前記指示は、仮想マシンイメージのリスト内に前記仮想マシンイメージを含める、条項１に記載のコンピュータ実施方法。
条項３
仮想マシンイメージの前記ベンダが認証済み仮想マシンイメージのアップロードを許可された信頼できるベンダであることを検証すると、前記公開暗号鍵を含む前記デジタル証明書を仮想マシンイメージの前記ベンダに証明機関を通して提供することをさらに含む、条項１または２に記載のコンピュータ実施方法。
条項４
前記公開暗号鍵を含む前記デジタル証明書は、事前に前記ベンダによって提供され、複数のデジタル証明書を記憶するための１つまたは複数の物理的記憶装置を含むデータストア内に記憶されており、前記記憶されたデジタル証明書は、前記デジタル署名検証にも使用できる、先行条項のいずれかに記載のコンピュータ実施方法。
条項５
前記コンピュータリソースサービスプロバイダマーケットプレイスは、選択可能な複数の仮想マシンイメージを含み、前記複数の仮想マシンイメージは、認証済みとして検証された仮想マシンイメージと、認証済みとして検証されていない仮想マシンイメージとを含む、先行条項のいずれかに記載のコンピュータ実施方法。
条項６
前記マーケットプレイスから前記仮想マシンイメージを選択すると、前記仮想マシンイメージの前記デジタル署名を独自に検証するのに使用できる実行可能コードの１つまたは複数のモジュールを前記顧客に提供することをさらに含む、先行条項のいずれかに記載のコンピュータ実施方法。
条項７
１つまたは複数のプロセッサと、
集合的に命令を含むメモリと、
を備えるコンピュータシステムであって、前記命令を前記コンピュータシステムによって実行すると、前記コンピュータシステムは、
ベンダの鍵でデジタル署名されたマシンイメージに基づいた仮想マシンを起動する要求を受信し、
１つまたは複数のポリシーが、前記ベンダによってデジタル署名されたマシンイメージに基づいた仮想マシンの起動を許可すると判断した後、前記仮想マシンを起動する、
前記コンピュータシステム。
条項８
前記ベンダの前記鍵でデジタル署名された前記マシンイメージは、証明機関が発行したデジタル証明書から取得した公開鍵を用いて検証可能である、条項７に記載のコンピュータシステム。
条項９
前記１つまたは複数のポリシーは、前記ベンダによってデジタル署名されたマシンイメージのみが、ユーザに関連付けられた仮想ネットワーク内で利用できることをさらに特定し、前記ユーザは、前記仮想マシンを起動する前記要求を提出したユーザである、条項７または８に記載のコンピュータシステム。
条項１０
前記１つまたは複数のポリシーは、１つまたは複数のユーザに関して、前記マシンイメージへのアクセスレベルをさらに規定する、条項７〜９のいずれかに記載のコンピュータシステム。
条項１１
前記ベンダの前記鍵でデジタル署名された前記マシンイメージは、検証可能で、前記ベンダの前記鍵でデジタル署名された前記マシンイメージは前記ベンダからのものであると判断するような方法で、前記ベンダの前記鍵でデジタル署名された前記マシンイメージは利用可能にされる、条項７〜１０のいずれかに記載のコンピュータシステム。
条項１２
前記ベンダの前記鍵でデジタル署名された前記マシンイメージは、コンピュータリソースサービスプロバイダマーケットプレイスから取得され、前記コンピュータリソースサービスプロバイダマーケットプレイスは、前記コンピュータリソースサービスプロバイダの顧客が、前記ベンダの前記鍵でデジタル署名された前記マシンイメージを選択できるように構成されて、前記ベンダの前記鍵でデジタル署名された前記マシンイメージを用いて、前記顧客が使用する前記仮想マシンをインスタンス化できる、条項７〜１１のいずれかに記載のコンピュータシステム。
条項１３
前記鍵でデジタル署名された前記マシンイメージは、検証可能で、前記ベンダからのものであると判断されるか否かに少なくとも部分的に基づいて、前記鍵でデジタル署名された前記マシンイメージを他のマシンイメージから区別するような方法で、前記鍵でデジタル署名された前記マシンイメージは利用可能にされる、条項７〜１２いずれかに記載のコンピュータシステム。
条項１４
実行可能命令を集合的に記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令がコンピュータシステムの１つまたは複数のプロセッサによって実行されると、前記コンピュータシステムは、少なくとも、
マシンイメージプロバイダの鍵で署名された１つまたは複数の構成要素を含むマシンイメージを記憶し、
ユーザが前記マシンイメージを選択した結果、前記マシンイメージプロバイダによって署名された仮想マシンの起動に関する１つまたは複数のポリシーに少なくとも部分的に基づいて、前記ユーザが前記マシンイメージを利用して仮想マシンをインスタンス化できるか否かを判断する、
前記非一時的コンピュータ可読記憶媒体。
条項１５
前記鍵で署名された前記１つまたは複数の構成要素は、証明機関によって発行されたデジタル証明書から取得された公開鍵を用いて検証可能である、条項１４に記載の非一時的コンピュータ可読記憶媒体。
条項１６
前記１つまたは複数のポリシーは、前記マシンイメージプロバイダによってデジタル署名された１つまたは複数の構成要素を含むマシンイメージのみを前記ユーザの仮想ネットワーク内で利用できることをさらに特定し、前記ユーザは、前記仮想ネットワーク内の前記仮想マシンを起動する要求を提出したユーザである、条項１４〜１５のいずれかに記載の非一時的コンピュータ可読記憶媒体。
条項１７
前記１つまたは複数のポリシーは、１つまたは複数のユーザに関して、前記マシンイメージプロバイダによって署名された前記マシンイメージへのアクセスレベルをさらに規定する、条項１４〜１６のいずれかに記載の非一時的コンピュータ可読記憶媒体。
条項１８
前記マシンイメージプロバイダの前記鍵で署名された前記１つまたは複数の構成要素が検証可能で、前記マシンイメージが前記マシンイメージプロバイダからのものであると判断するような方法で、前記マシンイメージは記憶される、条項１４〜１７のいずれかに記載の非一時的コンピュータ可読記憶媒体。
条項１９
前記マシンイメージは、コンピュータリソースサービスプロバイダマーケットプレイス内に記憶され、前記コンピュータリソースサービスプロバイダマーケットプレイスは、前記コンピュータリソースサービスプロバイダの顧客が前記マシンイメージを選択できるように構成されて、前記マシンイメージを用いて前記顧客が使用する仮想マシンをインスタンス化できる、条項１４〜１８のいずれかに記載の非一時的コンピュータ可読記憶媒体。
条項２０
前記マシンイメージプロバイダの前記鍵で署名された前記マシンイメージの前記１つまたは複数の構成要素が検証可能で、前記マシンイメージが前記マシンイメージプロバイダからのものであると判断されるか否かに少なくとも部分的に基づいて、前記マシンイメージを他のマシンイメージから区別するように、前記マシンイメージは記憶される、条項１４〜１９のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【００６２】
図９は、様々な実施形態による態様を実施する環境９００の例の態様を示す。理解されるように、ウェブベース環境を説明目的で用いるが、必要に応じて、異なる環境を使用して、様々な実施形態を実施してよい。環境は、クライアント電子装置９０２を備える。クライアント電子装置９０２は、適切なネットワーク９０４を介して、要求、メッセージまたは情報を送信及び／または受信するように動作可能な、また、ある実施形態においては、装置のユーザに情報を返信するように動作可能な任意の適切な装置を含んでよい。このようなクライアント装置の例は、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージング装置、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、埋め込み式コンピュータシステム、電子ブックリーダ等を含む。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、衛星ネットワーク、もしくは、このような任意の他のネットワーク、及び／または、それらの組み合わせ等、任意の適切なネットワークを含んでよい。このようなシステムに用いられる構成要素は、選択したネットワーク及び／または環境の種類によって少なくとも部分的に決まり得る。このようなネットワークを介した通信のためのプロトコル及び構成要素は、周知であり、ここに詳細に記載しない。ネットワークを介した通信は、有線もしくは無線接続、及び、それらの組み合わせによって可能にされてよい。この例においては、環境は、要求を受信して要求に応答してコンテンツを供給するウェブサーバ９０６を備えるので、ネットワークはインターネットを含むが、他のネットワークの場合、当業者には明らかなように、同様の目的を果たす代替装置を使用してよい。
【００６３】
説明的な環境は、少なくとも１つのアプリケーションサーバ９０８及びデータストア９１０を備える。幾つかのアプリケーションサーバ、層、もしくは、他の要素、プロセス、または、構成要素があってよく、それらは、チェーンまたは構成されてよく、インタラクトして適切なデータストアからデータを取得する等のタスクを実行できることは理解されたい。本明細書で使用されるとき、サーバは、ハードウェア装置または仮想コンピュータシステム等、様々な形で実施されてよい。ある文脈においては、サーバは、コンピュータシステム上で実行されているプログラミングモジュールを指してよい。本明細書で使用されるとき、他に別段の記載がなく、文脈から明らかでない限り、「データストア」という語は、データを記憶、データにアクセス、及び、データの取り出しを行うことができる任意の装置または装置の組み合わせを指し、任意の標準、分散、仮想、または、クラスタ化された環境の、任意の組み合わせ及び数のデータサーバ、データベース、データ記憶装置、及び、データ記憶媒体を含んでよい。アプリケーションサーバは、必要に応じてデータストアと統合されてクライアント装置の１つまたは複数のアプリケーションの態様を実行し、アプリケーションのデータアクセス及びビジネスロジックの一部または全てを処理する任意の適切なハードウェア、ソフトウェア及びファームウェアを含んでよい。アプリケーションサーバは、データストアと協力してアクセス制御サービスを提供してよく、テキスト、グラフィックス、オーディオ、ビデオ、及び／または、ユーザに提供するのに使用可能な他のコンテンツを含むが、それらに限定されないコンテンツを生成できる。コンテンツは、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）、拡張マークアップ言語（「ＸＭＬ」）、Ｊａｖａスクリプト（登録商標）、カスケーディングスタイルシート（「ＣＳＳ」）または他の適切なクライアントサイド構造言語の形で、ウェブサーバによってユーザに供給されてよい。クライアント装置に転送されたコンテンツは、クライアント装置によって処理されて、聴覚的、視覚的、並びに／または、触覚、味覚及び／もしくは嗅覚を含む他の感覚を通してユーザが認識できる形態を含むが、それらに限定されない、１つまたは複数の形態のコンテンツを提供してよい。全ての要求及び応答の処理と、クライアント装置９０２とアプリケーションサーバ９０８との間のコンテンツの伝達は、この例では、ＰＨＰ：ハイパーテキストプリプロセッサ（「ＰＨＰ」）、Ｐｙｔｈｏｎ、Ｒｕｂｙ、Ｐｅｒｌ、Ｊａｖａ、ＨＴＭＬ、ＸＭＬ、または、他の適切なサーバサイド構造言語を用いたウェブサーバによって処理されてよい。本明細書に記載の構造化コードは、本明細書の他の箇所に記載の任意の適切な装置またはホストマシン上で実行できるので、ウェブアプリケーション及びアプリケーションサーバは必要なく、単に構成要素の例であることは理解されたい。さらに、１つの装置によって行われるとして本明細書に記載している動作は、文脈から明らかに異なる場合を除き、複数の装置によって集合的に行われてよく、複数の装置は、分散及び／または仮想システムを形成してよい。
【００６４】
データストア９１０は、本開示の特定の態様に関連するデータを記憶する幾つかの別個のデータテーブル、データベース、データドキュメント、動的データ記憶スキーム、及び／または、他のデータ記憶機構及び媒体を含み得る。例えば、図示のデータストアは、生産データ９１２及びユーザ情報９１６を記憶する機構を備えてよく、その機構を用いて、生産サイドのコンテンツを供給することができる。データストアは、ログデータ９１４を記憶する機構を備えるように示されており、その機構は、報告、分析、または、このような他の目的に使用することができる。データストアに記憶する必要があってよい、ページイメージ情報及びアクセス権情報等、多くの他の態様があってよく、それらは、データストア９１０内の、必要に応じて上記にリストした機構のうちのいずれか、または追加の機構に記憶することができることは理解されたい。データストア９１０は、データストア９１０に関連付けられたロジックを通して、アプリケーションサーバ９０８からの命令を受信し、その命令に応答して、データを取得、更新、または、処理するように動作可能である。アプリケーションサーバ９０８は、受信した命令に応答して、静的データ、動的データ、または、静的データと動的データの組み合わせを提供してよい。ウェブログ（ブログ）、ショッピングアプリケーション、ニュースサービス、及び、他のこのようなアプリケーションで使用されるデータ等の動的データは、本明細書に記載したようにサーバサイド構造言語によって生成されてもよく、または、アプリケーションサーバ上で、もしくは、アプリケーションサーバの制御の下に動作する、コンテンツ管理システム（「ＣＭＳ」）によって提供されてもよい。一例においては、ユーザは、ユーザが操作する装置を通して、一定の種類の項目の検索要求を提出してよい。この場合、データストアは、ユーザ情報にアクセスしてユーザのアイデンティティを検証してよく、カタログ詳細情報にアクセスして、その種類の項目に関する情報を取得することができる。情報は、次に、ユーザがユーザ装置９０２上のブラウザを介して見ることができるウェブページ上の結果リスト等で、ユーザに返信することができる。関心のある特定の項目の情報を、ブラウザの専用ページまたはウインドウで見ることができる。しかしながら、本開示の実施形態は、必ずしもウェブページの文脈に限らず、一般的な処理要求により広く適用可能であってよく、要求は、必ずしも、コンテンツの要求でないことに留意されたい。
【００６５】
各サーバは、そのサーバの一般的な管理及び動作のための実行可能プログラム命令を提供するオペレーティングシステムを通常は備え、命令を記憶するコンピュータ可読記憶媒体（例えば、ハードディスク、ランダムアクセスメモリ、リードオンリメモリ等）を通常は備える。サーバのプロセッサがその命令を実行すると、サーバは、その意図する機能を行うことができる。サーバのオペレーティングシステムと一般的機能の適切な実施態様は、知られており、または、市販されており、特に、本明細書の開示に照らして、当業者によって容易に実施される。
【００６６】
一実施形態においては、環境は、１つまたは複数のコンピュータネットワークまたは直接接続を用いて、通信リンクを介して相互に接続された幾つかのコンピュータシステム及び構成要素を利用する分散及び／または仮想コンピュータ環境である。しかしながら、このようなシステムは、図９に示す構成要素より少ないまたは多い数の構成要素を有するシステムで同じように良好に動作し得ることを、当業者は理解されよう。従って、図９のシステム９００に表したものは、説明的な性質のものであり、本開示の範囲を制限するものではない。
【００６７】
様々な実施形態は、広範なオペレーティング環境でさらに実施することができる。当該環境は、ある場合には、多くのアプリケーションのうちの任意のアプリケーションの動作に使用できる１つまたは複数のユーザコンピュータ、コンピュータ装置、または、処理装置を含み得る。ユーザまたはクライアント装置は、標準オペレーティングシステムを実行するデスクトップ、ラップトップ、または、タブレットコンピュータ等の多くの汎用パーソナルコンピュータと、モバイルソフトウェアを実行し、多くのネットワーキングプロトコル及びメッセージングプロトコルをサポートすることができるセルラー装置、無線装置、及び、ハンドヘルド装置のうちの任意の物を含み得る。このようなシステムは、開発及びデータベース管理等の目的で様々な市販のオペレーティングシステム及び他の既知のアプリケーションの任意のものを実行する多くのワークステーションも備えることができる。これらの装置は、ダミー端末、シンクライアント、ゲームシステム、及び、ネットワークを介して通信できる他の装置等の、他の電子装置も含むことができる。これらの装置は、仮想マシン、ハイパーバイザ、及び、ネットワークを介して通信できる他の仮想装置等の仮想装置も含み得る。
【００６８】
本開示の様々な実施形態は、様々な市販のプロトコルの任意のプロトコルを用いた通信をサポートするために、当業者がよく知っている少なくとも１つのネットワークを利用する。当該プロトコルは、伝送制御プロトコル／インターネットプロトコル（「ＴＣＰ／ＩＰ」）、ユーザデータグラムプロトコル（「ＵＤＰ」）、オープンシステムインターコネクション（「ＯＳＩ」）モデルの様々な層で動作するプロトコル、ファイル転送プロトコル（「ＦＴＰ」）、ユニバーサルプラグアンドプレイ（「ＵｐｎＰ」）、ネットワークファイルシステム（「ＮＦＳ」）、コモンインターネットファイルシステム（「ＣＩＦＳ」）、及び、アップルトーク等である。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及び、それらの任意の組み合わせであってよい。
【００６９】
ウェブサーバを利用する実施形態において、ウェブサーバは、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）サーバ、ＦＴＰサーバ、共通ゲートウェイインタフェース（「ＣＧＩ」）サーバ、データサーバ、Ｊａｖａサーバ、Ａｐａｃｈｅサーバ、及び、ビジネスアプリケーションサーバを含む、様々なサーバまたはミッドティアアプリケーションの任意のものを実行することができる。サーバ（単数または複数）は、ユーザ装置からの要求に応答して、１つまたは複数のウェブアプリケーションの実行によって等、プログラムまたはスクリプトを実行することもできてよい。当該１つまたは複数のウェブアプリケーションは、Ｊａｖａ（登録商標）、Ｃ、Ｃ♯、もしくは、Ｃ＋＋等の任意のプログラミング言語、または、Ｒｕｂｙ、ＰＨＰ、Ｐｅｒｌ、ＰｙｔｈｏｎもしくはＴＣＬ等の任意のスクリプト言語で書かれた１つまたは複数のスクリプトまたはプログラム、並びに、それらの組み合わせとして、実施されてよい。サーバ（単数または複数）は、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、及び、ＩＢＭ（登録商標）から市販されているデータベースサーバを含むが、それらに限定されないデータベースサーバ、ＭｙＳＱＬ、Ｐｏｓｔｇｒｅｓ、ＳＱＬｉｔｅ、ＭｏｎｇｏＤＢ等のオープンソースサーバ、並びに、構造化データまたは非構造化データを記憶、取り出し、及び、アクセスできる任意の他のサーバも含んでよい。データベースサーバは、表ベースのサーバ、ドキュメントベースのサーバ、非構造化サーバ、リレーショナルサーバ、非リレーショナルサーバ、または、これらの及び／または他のデータベースサーバの組み合わせを含んでよい。
【００７０】
環境は、上記のように、様々なデータストアと、他のメモリ及び記憶媒体を含むことができる。これらは、コンピュータの１つもしくは複数に固有の（及び／または存在する）記憶媒体上、または、ネットワーク上のコンピュータの任意もしくは全てのコンピュータから離れた場所等、様々な場所に存在することができる。実施形態の特定のセットにおいて、情報は、当業者がよく知っているストレージエリアネットワーク（「ＳＡＮ」）に存在してよい。同様に、コンピュータ、サーバ、または、他のネットワーク装置に属する機能を行うために必要なファイルはいずれも、必要に応じて、ローカル及び／または遠隔に記憶されてよい。システムがコンピュータ装置を含む場合、各コンピュータ装置は、バスを介して電子的に接続されてよいハードウェア要素を含むことができる。ハードウェア要素は、例えば、少なくとも１つの中央処理装置（「ＣＰＵ」または「プロセッサ」）、少なくとも１つの入力装置（例えば、マウス、キーボード、コントローラ、タッチスクリーン、または、キーパッド）、及び、少なくとも１つの出力装置（例えば、表示装置、プリンタ、または、スピーカ）を含む。このようなシステムは、ディスクドライブ、光学記憶装置、及び、ランダムアクセスメモリ（「ＲＡＭ」）もしくはリードオンリメモリ（「ＲＯＭ」）等のソリッドステート記憶装置や、リムーバブルメディア装置、メモリカード、フラッシュカード等の１つまたは複数の記憶装置も含んでよい。
【００７１】
このような装置は、上記のように、コンピュータ可読記憶媒体リーダ、通信装置（例えば、モデム、ネットワークカード（無線もしくは有線）、赤外線通信装置等）、及び、ワーキングメモリも含んでよい。コンピュータ可読記憶媒体リーダは、コンピュータ可読記憶媒体に接続、または、コンピュータ可読記憶媒体を受け入れるように構成することができる。コンピュータ可読記憶媒体は、一時的、及び／または、より永続的に、コンピュータ可読情報を含み、記憶し、送信し、取り出すための遠隔、ローカル、固定、及び／または、リムーバブルな記憶装置と記憶媒体を表す。システム及び様々な装置は、通常は、クライアントアプリケーションまたはウェブブラウザ等のオペレーティングシステム及びアプリケーションプログラムを含む、少なくとも１つのワーキングメモリ装置内に配置された多くのソフトウェアアプリケーション、モジュール、サービス、または、他の要素も備える。代替実施形態は、上記の形態から多くの変形を有してよいことは理解されたい。例えば、カスタマイズされたハードウェアも使用してよく、及び／または、特定の要素は、ハードウェア、（アプレット等の高移植性ソフトウェアを含む）ソフトウェア、または、両方で実施してよい。さらに、ネットワーク入力／出力装置等の他のコンピュータ装置への接続を採用してよい。
【００７２】
コードまたはコードの一部を含む記憶媒体及びコンピュータ可読媒体は、当分野で既知または使用されている任意の適切な媒体を含んでよい。当該媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータ等の情報の記憶及び／または送信のための任意の方法または技術で実施される、ＲＡＭ、ＲＯＭ、電気的消去可能プログラマブルリードオンリメモリ（「ＥＥＰＲＯＭ」）、フラッシュメモリ、もしくは、他のメモリ技術、コンパクトディスクリードオンリメモリ（「ＣＤ‐ＲＯＭ」）、デジタル多用途ディスク（ＤＶＤ）、もしくは、他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは、他の磁気記憶装置、または、所望の情報の記憶に使用でき、かつ、システム装置によってアクセス可能な任意の他の媒体を含む、揮発性及び不揮発性、リムーバブル及び非リムーバブル媒体を含むが、それらに限定されない。本明細書に記載の開示及び教示に基づいて、当業者は、様々な実施形態を実施する他の手段及び／または方法を理解されよう。
【００７３】
従って、明細書及び図面は、制限ではなく説明的な意味と見なされるべきである。しかしながら、請求項に記載の発明のより広い精神及び範囲を逸脱することなく、明細書及び図面に様々な修正及び変更を行ってよいことは明らかである。
【００７４】
他の変形は本開示の精神の範囲内である。従って、開示の技術は、様々な修正及び代替の構成を受け入れてよいが、その技術の一定の例示の実施形態を、図面に示し、詳細に記載してきた。しかしながら、開示した具体的な形態（単数または複数）に発明を限定する意図はなく、逆に、請求項に規定する発明の精神及び範囲内にある全ての修正、代替構成、及び、同等物を含むことを意図していることは理解されたい。
【００７５】
開示の実施形態を記載する文脈（特に、請求項の文脈）における「ａ」、「ａｎ」、「ｔｈｅ」という語の使用、及び、同様の指示対象は、本明細書で別段の指示がなく、文脈と明らかに矛盾しない限り、単数と複数の両方を含むものと解釈すべきである。「ｃｏｍｐｒｉｓｉｎｇ」、「ｈａｖｉｎｇ」、「ｉｎｃｌｕｄｉｎｇ」「ｃｏｎｔａｉｎｉｎｇ」という語は、別段の記載のない限り、オープンエンドの用語（すなわち、「ｉｎｃｌｕｄｉｎｇ，ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ，」を意味する）と解釈すべきである。「ｃｏｎｎｅｃｔｅｄ」と言う語は、修飾されずに、物理的接続を指す場合は、たとえ何かが間に入っても、部分的もしくは全体的に中に含まれる、に接着される、または、結合されると解釈すべきである。本明細書の値の範囲の記載は、本明細書に別段の指示がない限り、範囲内に入る各個別の値を個々に参照するための簡略な方法であり、各個別の値は、本明細書に個々に記載されている場合と同様に明細書に組み込まれる。「ｓｅｔ（セット）」（例えば、「ａ  ｓｅｔ  ｏｆ  ｉｔｅｍｓ」）または「ｓｕｂｓｅｔ（サブセット）」と言う語の使用は、別段の記載がなく、文脈と矛盾しない限り、１つまたは複数の要素を含む空でない集合として解釈すべきである。さらに、別段の記載がなく、文脈と矛盾しない限り、対応するセットの「ｓｕｂｓｅｔ（サブセット）」という語は、対応するセットの適切なサブセットを必ずしも表すわけではなく、サブセットと、対応するセットが等しくてもよい。
【００７６】
「ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ  Ａ，  Ｂ，  ａｎｄ  Ｃ，」という形の句または「ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ  Ａ，  Ｂ  ａｎｄ  Ｃ，」等の接続語は、特に別段の記載がなく、文脈に明らかに矛盾しない限り、一般的に用いられる文脈において、項目、用語等が、ＡもしくはＢもしくはＣのいずれか、または、Ａ及びＢ及びＣのセットの空でない任意のサブセットであってよいことを示すと理解される。例えば、３つの要素を有するセットの例示的な例において、「ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ  Ａ，  Ｂ，  ａｎｄ  Ｃ」と言う接続句、及び、「ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ  Ａ，  Ｂ  ａｎｄ  Ｃ」は、｛Ａ｝、{Ｂ}、｛Ｃ｝、｛Ａ，Ｂ｝、｛Ａ,Ｃ｝、｛Ｂ，Ｃ｝、｛Ａ，Ｂ，Ｃ｝のセットのいずれかを指す。従って、このような接続語は、一定の実施形態が、Ａの少なくとも１つ、Ｂの少なくとも１つ、及び、Ｃの少なくとも１つがそれぞれ存在することを必要としているということを一般的には意図していない。
【００７７】
本明細書に記載のプロセスの動作は、本明細書に別段の指示がなく、文脈と明らかに矛盾しない限り、任意の適切な順で行うことができる。明細書に記載のプロセス（または、その変形及び／または組み合わせ）は、実行可能命令で構成された１つまたは複数のコンピュータシステムの制御の下で行われてよく、ハードウェアまたはその組み合わせによって１つまたは複数のプロセッサ上で集合的に実行するコード（例えば、実行可能命令、１つまたは複数のコンピュータプログラム、または、１つまたは複数のアプリケーション）として実施されてよい。コードは、例えば、１つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ可読記憶媒体に記憶されてよい。コンピュータ可読記憶媒体は、非一時的であってよい。
【００７８】
本明細書で提供した任意または全ての例、または、例示的な言語（例えば、「ｓｕｃｈ  ａｓ」）は、本明細書の実施形態をより明らかにするためにのみ使用されており、請求項で別段の記載がない限り、発明の範囲に制限を課すものではない。明細書内の言語はいずれも、特許を請求していない要素が発明の実践に不可欠であることを示しているとして解釈すべきではない。
【００７９】
発明を実施するために、発明者らが知っている最適な態様を含む本開示の好ましい実施形態を本明細書に記載した。これらの好ましい実施形態の変形は、上記の記載を読めば、当業者には明らかであろう。発明者らは、当業者が必要に応じてこのような変形を採用することを予測しており、発明者は、本明細書に具体的に記載した以外に本開示の実施形態が実践されることを意図している。従って、本開示の範囲は、適用法が許可するように、添付された請求項に記載された発明の内容の全ての修正及び同等物を含む。さらに、起こり得る変形の全てにおける上記要素の任意の組み合わせは、本明細書に別段の指示がなく、文脈と明らかに矛盾しない限り、本開示の範囲に含まれる。
【００８０】
出版物、特許出願書類、及び、特許を含む、本明細書に引用した全ての参考文献は、各参考文献を参照により組み込むと個々に詳細に示すのと同程度に、また、本明細書にその全体を記載するのと同程度に、参照によりここに組み込まれる。
【図１】
0006402198.tif 000002
【図２】
0006402198.tif 000003
【図３】
0006402198.tif 000004
【図４】
0006402198.tif 000005
【図５】
0006402198.tif 000006
【図６】
0006402198.tif 000007
【図７】
0006402198.tif 000008
【図８】
0006402198.tif 000009
【図９】
0006402198.tif 000010