(57)【特許請求の範囲】
【請求項１】
１つ以上のコンピュート・インスタンスを備える少なくとも第一インスタンス・ホストを含む、プロバイダ・ネットワークの仮想コンピューティング・サービスの複数のインスタンス・ホスト、
を備え、
前記１つ以上のコンピュート・インスタンスの第一コンピュート・インスタンスは、
第一アプリケーションと関連する第一オーセンティケータからの第一アイデンティティ・クエリに応答して、第一インスタンス・アイデンティティ名前空間（ＩＩＮ）内に前記第一コンピュート・インスタンスに割り当てられた第一暗号で検証可能な第一アイデンティティ（ＣＶＩ）のインディケーションを提供し、前記第一ＣＶＩは、前記第一コンピュート・インスタンスのために指定された暗号鍵ペアと関連し、前記暗号鍵ペアの秘密鍵は、セキュア鍵ストアの外部の位置へ前記秘密鍵のコピーを防止するように設定された前記セキュア鍵ストアにより管理され、前記仮想コンピューティング・サービスは、前記第一コンピュート・インスタンスが前記秘密鍵を使用して前記第一ＣＶＩの前記インディケーションを提供することを可能にし、
前記第一ＣＶＩが前記第一オーセンティケータにより受諾された判定に応答して、前記第一アプリケーションの１つ以上の操作を実行し、
第二アプリケーションと関連した第二オーセンティケータからの第二アイデンティティ・クエリに応答して、別のＩＩＮ内に前記第一コンピュート・インスタンスに割り当てられた第二ＣＶＩのインディケーションを提供し、前記第二ＣＶＩは、前記第一ＣＶＩと異なり、
前記第二ＣＶＩが前記第二オーセンティケータにより受諾された判定に応答して、前記第二アプリケーションの１つ以上の操作を実行する、
ように設定される、  
システム。
【請求項２】
前記第一コンピュート・インスタンスは、
前記第一インスタンス・ホストの仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを呼び出し、前記第一ＣＶＩの前記インディケーション内に含まれた少なくとも１つのアーティファクトを取得する、
ようにさらに設定される、請求項１に記載のシステム。
【請求項３】
前記セキュア鍵ストアは、（ａ）プロバイダ・ネットワークのセキュリティ・サービスのハードウェア・セキュリティ・モジュール、または（ｂ）前記第一インスタンス・ホストの通信バスに接続された周辺機器、のうちの１つを備える、請求項１に記載のシステム。
【請求項４】
前記第一ＣＶＩは、（ａ）前記第一コンピュート・インスタンスに割り当てられた仮想ＩＰ（インターネット・プロトコル）アドレスに少なくとも部分的に基づき前記第一コンピュート・インスタンスのＤＮＳ（ドメイン名システム）名、（ｂ）前記第一コンピュート・インスタンスに割り当てられたパブリックＩＰアドレス、（ｃ）前記第一コンピュート・インスタンスに割り当てられたプライベートＩＰアドレス、（ｄ）仮想コンピューティング・サービス（ＶＣＳ）定義の名前空間から前記プロバイダ・ネットワークの前記ＶＣＳにより前記第一コンピュート・インスタンスに割り当てられた一意の名前、（ｅ）前記プロバイダ・ネットワークの顧客により顧客定義の名前空間から選択された一意の名前、（ｆ）前記プロバイダ・ネットワークの顧客によりＶＣＳ定義の名前空間から選択された名前、（ｇ）前記プロバイダ・ネットワークの顧客により選択されたＤＮＳ名、または（ｈ）第三者により定義された名前空間内に前記第一コンピュート・インスタンスに割り当てられた名前、のうちの１つ以上を備える、請求項１に記載のシステム。
【請求項５】
プロバイダ・ネットワークに仮想コンピューティング・サービスのインスタンス・ホストで、１つ以上のコンピュート・インスタンスを起動し、
前記１つ以上のコンピュート・インスタンスの第一コンピュート・インスタンスで、第一アイデンティティ・クエリを受信し、
前記第一アイデンティティ・クエリに応答して、前記第一コンピュート・インスタンスから、第一インスタンス・アイデンティティ名前空間（ＩＩＮ）内の前記第一コンピュート・インスタンスに割り当てられた第一暗号で検証可能な第一アイデンティティ（ＣＶＩ）のインディケーションを提供し、前記第一ＣＶＩは、暗号鍵ペアと関連し、前記暗号鍵ペアの秘密鍵は、前記秘密鍵のコピーを防止するように設定されたセキュア鍵ストアにより管理され、前記仮想コンピューティング・サービスは、前記第一コンピュート・インスタンスが前記秘密鍵を使用して前記第一ＣＶＩの前記インディケーションを提供することを可能にし、
前記第一コンピュート・インスタンスで、第二アイデンティティ・クエリを受信し、
前記第二アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、別のＩＩＮ内の前記第一コンピュート・インスタンスに割り当てられた、前記第１のＣＶＩとは別の第二ＣＶＩのインディケーションを提供する、
ことを備える、方法。
【請求項６】
前記第一ＣＶＩの前記インディケーションは、公開鍵基盤（ＰＫＩ）標準に従いフォーマットされた第一証明書を含む、請求項５に記載の方法。
【請求項７】
前記第一コンピュート・インスタンスにより、前記インスタンス・ホストの仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを起動し、前記第一ＣＶＩの前記インディケーション内に含まれたアーティファクトの少なくとも部分を取得する、
ことをさらに備える、請求項５に記載の方法。
【請求項８】
前記第二ＣＶＩは、別の暗号鍵ペアと関連する、請求項５に記載の方法。
【請求項９】
前記セキュア鍵ストアは、（ａ）プロバイダ・ネットワークのセキュリティ・サービスのハードウェア・セキュリティ・モジュール、または（ｂ）前記インスタンス・ホストの通信バスに接続された周辺機器、のうちの１つを備える、請求項５に記載の方法。
【請求項１０】
前記第一ＣＶＩは、（ａ）前記第一コンピュート・インスタンスに割り当てられた仮想ＩＰ（インターネット・プロトコル）アドレスに少なくとも部分的に基づく前記第一コンピュート・インスタンスのＤＮＳ（ドメイン名システム）名、（ｂ）前記第一コンピュート・インスタンスに割り当てられたパブリックＩＰアドレス、（ｃ）前記第一コンピュート・インスタンスに割り当てられたプライベートＩＰアドレス、（ｄ）仮想コンピューティング・サービス（ＶＣＳ）定義の名前空間から前記プロバイダ・ネットワークのＶＣＳにより前記第一コンピュート・インスタンスに割り当てられた一意の名前、（ｅ）前記プロバイダ・ネットワークの顧客により顧客定義の名前空間から選択された一意の名前、（ｆ）前記プロバイダ・ネットワークの顧客によりＶＣＳ定義の名前空間から選択された名前、（ｇ）前記プロバイダ・ネットワークの顧客により選択されたＤＮＳ名、または（ｈ）第三者により定義された名前空間内の前記第一コンピュート・インスタンスに割り当てられた名前、のうちの１つ以上を備える、請求項５に記載の方法。
【請求項１１】
前記第一ＣＶＩの前記インディケーションは、（ａ）公的認証局（ＣＡ）、（ｂ）前記プロバイダ・ネットワーク内に実装された検証局、（ｃ）前記第一コンピュート・インスタンスを割り当てる前記プロバイダ・ネットワークの顧客により所有された顧客ネットワーク内に実装された検証局、または（ｄ）第三者検証局、のうちの１つ以上を備えるアイデンティティ・バリデータを含む、請求項５に記載の方法。
【請求項１２】
前記第一アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、前記第一ＣＶＩの第一有効期間のインディケーションを提供し、
前記第二アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、前記第二ＣＶＩの第二有効期間のインディケーションを提供し、前記第二有効期間は、前記第一有効期間と異なる、
ことをさらに備える、請求項５に記載の方法。
【請求項１３】
前記プロバイダ・ネットワークのコントロール・プレーン・コンポーネントで、前記第一コンピュート・インスタンスが前記第一ＩＩＮ内にアイデンティティを割り当てられることを示すインスタンス設定要求を受信し、
前記インスタンス設定要求に応答して前記コントロール・プレーン・コンポーネントにより、前記第一ＩＩＮ内に前記第一コンピュート・インスタンスへのアイデンティティの割り当てを開始する、
ことをさらに備える、請求項５に記載の方法。
【請求項１４】
前記第一アイデンティティ・クエリは、第一アプリケーションと関連したライセンス・マネージャから前記第一コンピュート・インスタンスで受信され、前記第一ＣＶＩは、前記ライセンス・マネージャにより使用され、前記第一コンピュート・インスタンスが前記第一アプリケーションを利用するライセンスを供与されることを検証する、請求項５に記載の方法。
【請求項１５】
前記プロバイダ・ネットワークで実装された特定のサービスのサービス・マネージャにより、第二コンピュート・インスタンス、及び第三コンピュート・インスタンスを含むインスタンス・フェイルオーバー・グループを確立し、前記第二コンピュート・インスタンスで障害の場合には、前記第二コンピュート・インスタンスで実行していたアプリケーションは、前記第三コンピュート・インスタンスにフェイルオーバーされ、
前記サービス・マネージャにより、（ａ）前記第二コンピュート・インスタンスへ共有されたＣＶＩの割り当て、及び（ｂ）前記第三コンピュート・インスタンスへ前記共有されたＣＶＩの割り当て、を開始し、前記共有されたＣＶＩを使用して、前記第二コンピュート・インスタンスで、及び前記第三コンピュート・インスタンスで前記アプリケーションを実行可能であることを検証する、
ことをさらに備える、請求項５に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
多くの企業、及び他の組織は、たとえば、コンピューティング・システムが同じ場所に設置されながら（たとえば、ローカル・ネットワークの部分として）、またはその代替に複数の別個の地理的位置内に設置されながら（たとえば、１つ以上の私設または公共中間ネットワークを介して接続されながら）、複数のコンピューティング・システムを相互接続し、それらの操作を支援するコンピュータ・ネットワークを運営する。たとえば、著しい数の相互接続されたコンピューティング・システムを収容するデータ・センタは、単一の組織により、及びこれの代わりに運営される個人データ・センタ、ならびに顧客へコンピューティング・リソースを提供するビジネスとしてエンティティにより運営される公共データ・センタのように一般的になってきている。いくつかの公共データ・センタのオペレータは、さまざまな顧客が所有するハードウェアのための、ネットワーク・アクセス、電源、及び安全な設置設備を提供し、他の公共データ・センタのオペレータは、それらの顧客による使用のために利用可能にされたハードウェア・リソースも含む「フル・サービス」設備を提供する。
【０００２】
コモディティ・ハードウェアのための仮想化技術の出現は、さまざまなコンピューティング・リソースを複数の顧客が効率的かつ安全に共有することを可能にする、多様なニーズをもつ多くの顧客のために大規模なコンピューティング・リソースを管理することに関する利益を提供している。たとえば、仮想化技術は、単一の物理コンピューティング・マシンによりホストされた１つ以上の仮想マシンを各ユーザに提供することにより、複数のユーザ間で単一の物理コンピューティング・マシンを共有することを可能にできる。このような各仮想マシンは、ユーザが所与のハードウェア・コンピューティング・リソースの唯一のオペレータ及び管理者である錯覚をユーザに与える別個の論理コンピューティング・システムとして機能するソフトウェア・シミュレーションと考えられることが可能であり、さまざまな仮想マシン間でアプリケーション隔離も提供する。
【０００３】
公共データ・センタで実施される仮想化されたコンピューティング・サービスは、いくつかのこのようなコンピュート・インスタンスが１つ以上のサービス・クライアントの代わりに所与のハードウェア・サーバ上に頻繁にホストされながら、「コンピュート・インスタンス」の形式でクライアント使用のためにコンピューティング能力をパッケージ化することができる。つぎにクライアントは、コンピュート・インスタンスでアプリケーションの所望のセットを実行し、仮想コンピューティング・サービスのウェブ・ベースのコンソールを介して管理操作を頻繁に実行することができる。多くの事例において、クライアントは、コンピュート・インスタンスを使用して、アイデンティティ検証を要求するアプリケーションを実行したい可能性がある、すなわち、コンピュート・インスタンスのためのパーミッションを取得し、アプリケーションのさまざまなタスクを実行するために、または他のサービスから作業操作を要求するために、このインスタンスのアイデンティティは、検証されなければならない可能性がある。侵入者がさまざまなネットワーク及びサービスに攻撃する頻度及び高度さが増すにつれて、仮想化されたコンピューティング・サービスのクライアントは、リソース・アイデンティティ検証用の高度にセキュアなメカニズムについてサポートを提供しないコンピュート・インスタンス、または他のリソースを利用したがらなくなる可能性がある。
【図面の簡単な説明】
【０００４】
【図１】少なくともいくつかの実施形態により、仮想コンピューティング・サービスで実装されたコンピュート・インスタンスがそれぞれの名前空間内のいくつかの異なる暗号で検証可能なアイデンティティ（ＣＶＩ）を割り当てられることができる例示的なシステム環境を図示する。
【図２】少なくともいくつかの実施形態により、コンピュート・インスタンスに割り当てられることができるアイデンティティのタイプの実施例を図示する。
【図３】少なくともいくつかの実施形態により、複数のアプリケーション、及びコンピュート・インスタンスの認証コンポーネント間でのインタラクションの実施例を図示する。
【図４】少なくともいくつかの実施形態により、コンピュート・インスタンスがセキュア鍵ストアにより管理された転送不可能な秘密鍵を利用することを可能にするプログラマティック・インタフェースを実装することができるインスタンス・ホストの実施例を図示する。
【図５】少なくともいくつかの実施形態により、クライアント、及びインスタンス設定マネージャ間でアイデンティティ関連のコントロール・プレーン・インタラクションの実施例を図示する。
【図６】少なくともいくつかの実施形態により、インスタンス設定マネージャに提示されたアイデンティティ割り当て要求に含まれることができるアイデンティティ記述子の例示的なコンテンツを図示する。
【図７】少なくともいくつかの実施形態により、インスタンス・アイデンティティ割り当てに関する管理要求に応答するように実行されることができる操作の態様を図示する流れ図である。
【図８】少なくともいくつかの実施形態により、それぞれの名前空間内の１つ以上のアイデンティティが割り当てられているコンピュート・インスタンスで実行されることができる操作の態様を図示する流れ図である。
【図９】少なくともいくつかの実施形態で使用されることができる例示的なコンピューティング・デバイスを図示するブロック図である。
【０００５】
実施形態は、いくつかの実施形態、及び例示的な図面について実施例の方式で本明細書に記述されるが、当業者は、実施形態が記述された実施形態または図面に限定されないことを認識するであろう。図面及びその詳細な記述が開示された特定の形式へ実施形態を限定することを意図されないが、対照的に、この意図が添付の特許請求の範囲により定義されるように趣旨及び範囲内に入るすべての修正形態、均等物及び代替物を網羅することを理解するであろう。本明細書で使用された表題は、編成目的のみのためであり、この説明の範囲、または特許請求の範囲を限定するために使用されることを意図されない。本出願を通して使用されるように、単語「ｍａｙ（ことができる）」は、強制的な意味（すなわち、しなければならないことを意味する）よりもむしろ、許容的な意味（すなわち、潜在的な可能性を有することを意味する）で使用される。同様に、単語「ｉｎｃｌｕｄｅ（を含む）」、「ｉｎｃｌｕｄｉｎｇ（を含む）」、及び「ｉｎｃｌｕｄｅｓ（を含む）」は、含むが限定されないことを意味する。
【発明を実施するための形態】
【０００６】
プロバイダ・ネットワークでコンピュート・インスタンスへのそれぞれの名前空間内に複数の暗号で検証可能なアイデンティティ（ＣＶＩ）を割り当てる、管理する、及び使用するための方法及び装置のさまざまな実施形態を記述する。所与のコンピュート・インスタンスへの複数のアイデンティティの割り当ては、それぞれのアプリケーション、またはアプリケーション・セットのために独立して検証され、使用されることが各可能であり、マルチファセット・アイデンティティ割り当てと本明細書で言われることができる。クライアントまたは顧客の分散されたセットへインターネット及び／または他のネットワークを介してアクセス可能な１つ以上のサービス（マルチテナント及び／またはシングルテナントのクラウド・ベースのコンピューティングまたはストレージ・サービスのさまざまなタイプのような）を提供するために企業または公共部門組織のようなエンティティによりセットアップされたネットワークは、このドキュメントでプロバイダ・ネットワークと言われることができる。プロバイダ・ネットワークは、「公共クラウド」環境と言われることができる。用語「マルチテナント・サービス」は、異なるクライアント・エンティティがサービスのそれぞれのカスタマイズ可能な、隔離されたビューを提供される、このような方式でアプリケーション及び／またはデータ仮想化を実施するように設計されるサービスを指すために本明細書で使用されることができるため、サービス機能の部分が所与の１セットの基礎となるリソースを使用して提供されている１人のクライアントは、このセットのリソースがまた他のクライアントのために使用されていることに気付かないことができる。たとえば、マルチテナント仮想化コンピューティング・サービス（ＶＣＳ）は、ハードウェア・サーバが他のクライアントと共有されているクライアントのいずれかに必ずしも通知する必要がない、所与のハードウェア・サーバでそれぞれのクライアントの代わりに、いくつかの異なるコンピュート・インスタンス（ゲスト仮想マシン）を生成することができる。コンピュート・インスタンスは、本明細書で「インスタンス」と単純に言われることができ、１つ以上のコンピュート・インスタンスを実行するハードウェア・サーバは、「インスタンス・ホスト」、または「仮想化ホスト」と言われることができる。プロバイダ・ネットワークは、いくつかの実施形態において、シングルテナント・サービスを支援することができ、マルチテナント・サービスに加えて、またはこれらの代わりに、のいずれか一方で、インスタンス・ホストのようなリソースは、所与の期間にシングルテナント・モード、またはマルチテナント・モード内で使用されることができる。プロバイダ・ネットワークは、プロバイダにより提供されたインフラストラクチャ及びサービスを実装し、設定し、配信するために必要な、物理的な、及び／または仮想化されたコンピュータ・サーバ、ストレージ・デバイス、ネットワーキング機器、セキュリティ関連機器、及び同様のもののコレクションのような、さまざまなリソース・プールをホストするいくつかの大規模なデータ・センタを一般的に含むことができる。
【０００７】
受諾された仮想化アプローチに従い、コンピュート・インスタンス及びインスタンス・ホスト間のマッピング（たとえば、所与のホスト、またはインスタンスがホストを共有するクライアントのアイデンティティで実行されるコンピュート・インスタンス数）と同様に、インスタンス・ホスト（使用されているプロセッサまたはコアの絶対性能能力、またはホストを物理的に設置する特定のデータ・センタのような）についての詳細は、少なくともいくつかの事例において、クライアントの代理人がコンピュート・インスタンスを実行するクライアントへ利用不可能であり得る。各インスタンス・ホストで、ＶＣＳは、明らかなセキュリティ上の理由のためにクライアントへアクセス不可能でもよい、ハイパーバイザ、管理オペレーティング・システム・ドメイン、及び同様のもののような、１つ以上の仮想化管理コンポーネントを含む仮想化管理ソフトウェアを一般的に展開することができる。いくつかの実施形態において、コンピュート・インスタンスの異なるタイプまたはカテゴリ（たとえば、１つ以上のオペレーティング・システムに対応する「小規模」、「中規模」、または「大規模」インスタンス）は、各インスタンス・タイプの相対的な能力、及び対応する価格設定ポリシーのいくつかのインディケーションを潜在的なクライアントに利用可能にさせながら、コンピューティング・サービスにより定義されることができる。インスタンス・タイプの定義を与えられると、１つの実施形態において、クライアントは、緩やかに地理的に定義された「領域」のようなプロバイダ・ネットワークのいくつかの階層的なサブユニット内で取得したい各タイプのインスタンス数を選択することが可能であり得る。
【０００８】
プロバイダ・ネットワークのいく人かのクライアントは、他のものよりクライアントのアプリケーションのうちの少なくともいくつかのためにより高水準のセキュリティ及び／またはアイデンティティ検証を要求する可能性がある（本明細書で使用されるような、用語、アプリケーションが、ユーザ・モード、カーネル／システム・モード、またはユーザ及びカーネル／システム・モードの組み合わせで実行することができる、任意のタイプの実行可能なプログラム・コンポーネント、またはコンポーネントの組み合わせを指すことができることに留意する）。特に、多くの異なるＶＣＳクライアントのために所与のハードウェア・サーバを使用することを可能にできる事実からみて、クライアントは、外部エンティティ（別のサービスを実装するサーバのような）が真にインタラクトする所与のコンピュート・インスタンスがそうであることを所与のコンピュート・インスタンスが主張するコンピュート・インスタンスである、あるレベルの保証を得たい可能性がある。いくつかの実施形態において、このような保証を手作業で（たとえば、ＶＣＳにより実装された管理コンソールとのインタラクションを介して）提供することは、ＶＣＳユーザのために可能であり得るが、このような手作業でのアプローチは、周知のようにエラーを起こしやすく、侵入者を許す可能性がある。
【０００９】
少なくともいくつかの実施形態において、コンピュート・インスタンスで、またはこれらにより実行されたさまざまなタイプのセキュリティ関連の操作のために使用可能である、転送不可能な暗号強度鍵を提供するメカニズムは、仮想コンピューティング・サービスで実装されることができる。このようなメカニズムにより、所与のコンピュート・インスタンスと関連したアイデンティティ検証操作のために使用される暗号強度鍵ペアの秘密鍵は、セキュア鍵ストアで格納される、及び／または管理されることができるため、秘密鍵自体は、この鍵ペアが使用されるコンピュート・インスタンスにより（または任意の他のコンピュート・インスタンスにより）コピーされる、または検査されることが不可能である。このインタフェースの呼び出し元またはユーザに秘密鍵を公開しないで、コンピュート・インスタンスにより秘密鍵の使用を有効にする（たとえば、デジタル署名のようなアイデンティティ関連の暗号化アーティファクトを生成するために、または取得するために）プログラマティック・インタフェースは、少なくともいくつかの実施形態で１つ以上のＶＣＳコンポーネントにより実装されることができる。インスタンス・ホストでハイパーバイザまたは管理ドメイン・オペレーティング・システムのような仮想化管理コンポーネントは、１つの実施形態において転送不可能な鍵でこのような操作のために１つ以上のＡＰＩ（アプリケーション・プログラミング・インタフェース）を実装することができ、そのホストで実行するコンピュート・インスタンスは、インスタンスに割り当てられた１つ以上の暗号で検証可能なアイデンティティをアサートするために使用されるアーティファクトまたはメタデータを取得するこのようなＡＰＩを呼び出すことができる。いくつかの実装において、セキュア鍵ストアは、インスタンス・ホストに設置されることができる、たとえば、インスタンス・ホストのロー・ピン・カウント・バス、またはＰＣＩｅ（ペリフェラル・コンポーネント・インターコネクト・エクスプレス）バスのような通信バスを介して接続されたトラステッド・プラットフォーム・モジュール（ＴＰＭ）、または同様の周辺機器は、秘密鍵を格納することができる。他の実施形態において、仮想化管理コンポーネントから、及び／またはコンピュート・インスタンスからネットワークを介してアクセス可能であるハードウェア・セキュリティ・モジュール（ＨＳＭ）のような、外部セキュア鍵ストアを使用することができる。少なくとも１つの実施形態において、複数の暗号鍵ペアは、各このような鍵ペアの秘密鍵が上述のようにセキュア鍵ストアにより管理されながら、所与のコンピュート・インスタンスのために指定されることができ、他の実施形態において、単一の鍵ペアのみは、所与のコンピュート・インスタンスのために使用されることができる。複数の鍵ペアを所与のコンピュート・インスタンスに割り当てる、いくつかの実装において、いくつかの鍵ペアの秘密鍵は、所与のセキュア鍵ストア（たとえば、コンピュート・インスタンスが起動するインスタンス・ホストでのローカルＴＰＭ、またはネットワーク経由で到達したリモートＨＳＭ）により管理されることができ、他の実装において、各秘密鍵は、それぞれのセキュア鍵ストアにより管理されることができる。
【００１０】
所与のコンピュート・インスタンスを使用するアプリケーションのセットにより、少なくともいくつかの実施形態でインスタンスへそれぞれの名前空間内のいくつかの異なるアイデンティティまたは名前を割り当てることができる。各アイデンティティは、たとえば、信頼チェーン内に組織される、それぞれのアイデンティティ検証局によりデジタル署名されたＸ．５０９、若しくは他の同様のデジタル証明書を活用して、または任意の適切な暗号アルゴリズムを使用して、暗号で検証可能であり得る。コンピュート・インスタンスのために指定された鍵ペアの公開鍵は、秘密鍵が上述されるようにセキュア鍵ストアで管理されながら、及び／または格納されながら、いくつかの実施形態でこのような証明書内に示されることができる。各このようなアイデンティティは、本明細書において暗号で検証可能なアイデンティティ（ＣＶＩ）と言われることができる。少なくともいくつかの実施形態で、仮想化されたコンピューティング・サービスは、所与のコンピュート・インスタンスが１つ以上の暗号鍵を使用することを可能にし（たとえば、このインスタンスが秘密鍵を使用するために要求されたＡＰＩを使用することを可能にする適切なパーミッションを与えることで、鍵及びインスタンス間の一意のバインディングを生成することで、セキュア鍵ソースを設定することで、及びその他のことで）、その単一のＣＶＩ、または複数のＣＶＩをアサートするために必要なアーティファクトを生成することができる。複数の異なるタイプのＣＶＩは、少なくともいくつかの実施形態において所与のコンピュート・インスタンスへ指定される、またはこれに割り当てられることができる。たとえば、ＶＣＳは、１つのＣＶＩとして１つの実施形態でコンピュート・インスタンスへ仮想ＩＰ（インターネット・プロトコル）アドレスに少なくとも部分的に基づきＤＮＳ（ドメイン名システム）名を割り当てることができる（このようなＩＰアドレスは、たとえば、物理ネットワーク・インタフェース・カードの再構成を要求しないで、ＶＣＳにより一方のコンピュート・インスタンスから他方へプログラムで転送されることができるため、本明細書で「仮想」と言われることができる）。たとえば、ＶＣＳは、仮想ＩＰアドレス５４．８７．１３４．６６をインスタンスに割り当てることができ、ＤＮＳ名前空間内で一意である＜ＶＣＳ−ｓｅｒｖｉｃｅ−ｎａｍｅ＞−５４−８７−１３４−６６−＜ｇｅｏｇｒａｐｈｉｃａｌ−ｃｏｎｔａｉｎｅｒ＞−＜ｖｃｓ−ｄｏｍａｉｎ−ｎａｍｅ＞のような名前は、ＣＶＩとして割り当てられることができる。同一のコンピュート・インスタンスも、たとえば、顧客定義の名前空間内に、第二ＣＶＩを割り当てられることができる。顧客は、たとえば、Ａｐｐ１−Ｎｏｄｅ０、Ａｐｐ１−Ｎｏｄｅ１、Ａｐｐ１−Ｎｏｄｅ２などのような、名前を使用して特定のアプリケーション・クラスタのそれぞれのノードとして構成されたすべてのコンピュート・インスタンスを識別したい可能性がある。顧客のアプリケーション環境の他のコンポーネント（これらのうちのいくつかは、コンピュート・インスタンスのために使用されるプロバイダ・ネットワーク内で実行していることができ、他のものは、外部ネットワークに配置されることができる）と通信するときに、第二ＣＶＩは、第一の代わりに使用されることができる。同様に、特定の第三者ソフトウェア・サービスのために（またはローカルにインストールされたソフトウェアのために）ライセンス・ホルダとしてコンピュート・インスタンスを識別する第三ＣＶＩは、コンピュート・インスタンスに割り当てられ、このインスタンスからの第三者ソフトウェア・サービスの使用を可能にできる。いくつかの実施形態において、第三者名前空間、たとえば、プロバイダ・ネットワーク・オペレータの（またはクライアントの）ビジネス・パートナーにより管理された名前空間内へのＣＶＩの割り当ても支援することができる。したがって、一般的に、それぞれの名前空間内のさまざまな異なるＣＶＩは、さまざまな実施形態で所与のコンピュート・インスタンスへ割り当てられることができる。名前空間は、本明細書でインスタンス・アイデンティティ名前空間（ＩＩＮ）と言われることができ、各このような名前空間は、異なるインスタンスに割り当てられる特定の名前を選択する、それぞれの名前空間のために任意の一意性要件を強制する、それぞれの名前空間内でのアイデンティティの検証を担当する関連機関を識別する、及びその他のことをするために、応答可能な関連した名前空間の所有者／管理者を含むことができる。さまざまなコンテキストで役立つかもしれないＣＶＩのタイプの実施例を図２で提供し、以下に記述する。
【００１１】
少なくとも１つの実施形態により、第一アプリケーションと関連した第一オーセンティケータから認証要求のようなアイデンティティ関連のクエリに応答して、複数のＣＶＩが割り当てられているコンピュート・インスタンスは、アプリケーションと関連した第一インスタンス・アイデンティティ名前空間内の第一ＣＶＩのインディケーションを提供することができる。アイデンティティ関連のクエリは、いくつかの実装において名前空間を明示的に、若しくは暗示的に示すことができる、またはコンピュート・インスタンスは、クエリのために使用されたＡＰＩの種類、若しくはアイデンティティ関連のクエリを受信するソースに基づき名前空間を推測することが可能であり得る。第一ＣＶＩは、第一コンピュート・インスタンスのために指定された暗号鍵ペアと関連することができ、このペアの秘密鍵は、上述されるようにセキュア鍵ストア外部の位置へ秘密鍵のコピーを防止するように設定されたセキュア鍵ストアにより管理される。ＣＶＩを示す情報（たとえば、１つ以上の証明書、デジタル署名、または他の暗号で生成されたアーティファクト）を提供することは、本明細書でＣＶＩを「アサートする」と言われることができる。上述されるように、インスタンスによる秘密鍵の使用は、少なくともいくつかの実施形態において仮想化されたコンピューティング・サービスにより有効にされることができ、結果として、このような実施形態において、少なくともいくつかのタイプのＣＶＩを支援するために、ＶＣＳの参加及び／または同意を要求する場合がある。いくつかの実施形態において、アイデンティティ関連のクエリに応答して提供される情報を判定するために、コンピュート・インスタンスは、インスタンスが起動するインスタンス・ホストで仮想化管理コンポーネントにより実装された１つ以上のプログラマティック・インタフェースを呼び出すことができる。
【００１２】
第一ＣＶＩのインディケーションを受信することに応答して、第一オーセンティケータは、請求されたアイデンティティが有効であることを確認する（たとえば、コンピュート・インスタンスにより提供された証明書に信頼できる当事者が署名することを確実にすることで、及び／またはインスタンスの公開鍵を使用してコンピュート・インスタンスにより提供されたデジタル署名を解読すること、及び検証することで）ことができる。いくつかの事例において、オーセンティケータは、他のエンティティ（たとえば、名前空間のために指定された１つ以上のアイデンティティ・バリデータ）と通信し、アサートされたアイデンティティが有効であることを確認しなければならない可能性がある。アイデンティティを正常に検証する場合に、コンピュート・インスタンスは、第一アプリケーションの１つ以上の操作を実行することを許可されることができ、このようなパーミッションのインディケーションは、コンピュート・インスタンスへ送信されることができる。同様に、別のアプリケーション、及び別のＩＩＮと関連した別のオーセンティケータから第二アイデンティティ関連のクエリに応答して、コンピュート・インスタンスは、それに割り当てられた第二ＣＶＩのインディケーションを提供することができる。つぎに第二ＣＶＩは、たとえば、第一ＣＶＩに関して上述されるものと同様のアプローチを使用するが第二ＩＩＮのコンテキスト内の、第二オーセンティケータにより確認されることができる。第二ＣＶＩが有効であると判明する場合に、コンピュート・インスタンスは、第二アプリケーションの操作を実行することを許可されることができる。同様のインタラクションは、コンピュート・インスタンスに割り当てられた各異なるＣＶＩについて要求されることができる、すなわち、コンピュート・インスタンスは、各いくつかの異なるアプリケーション・コンテキストについてのそれぞれのＣＶＩをアサートしなければならない場合がある。いくつかの実施形態において、所与のＣＶＩは、いくつかの異なるアプリケーション・コンテキストのために使用可能であることができ、たとえば、コンピュート・インスタンスは、それぞれのアプリケーションと関連した２つ以上のオーセンティケータからアイデンティティ関連の要求に応答して同一のＣＶＩをアサートすることができる。
【００１３】
異なる実施形態において、幅広い種類のＣＶＩをコンピュート・インスタンスへ割り当てることができる。上記で述べたように、１つのＣＶＩは、複数の異なるアプリケーション・コンテキストで使用されることができ、このインスタンスに割り当てられた仮想ＩＰアドレスに少なくとも部分的に基づくＤＮＳ名であってもよい。少なくともいくつかの実施形態において、プロバイダ・ネットワークのコンピュート・インスタンスは、１つ以上のパブリックＩＰアドレス、及び１つ以上のプライベートＩＰアドレスを割り当てられることができる。パブリックＩＰアドレスは、公共インターネットの部分のような外部ネットワークへアドバタイズされる、またはこれらの外部ネットワークからアクセス可能にさせられることができ、プライベートＩＰアドレスは、プロバイダ・ネットワークの論理的に隔離された部分内にのみアクセス可能であり得る。インスタンスは、いくつかの実施形態において、パブリックＩＰアドレスに基づくＣＶＩ、及び／またはプライベートＩＰアドレスに基づく別のＣＶＩを割り当てられることができる。インスタンスのために使用されている仮想コンピューティング・サービスは、たとえば、内部管理目的のために、または他のサービス若しくは外部エンティティとのインタラクションのために、のいずれか一方のために、他の名前空間を定義することができる。いくつかの名前空間は、インスタンスがインスタンス化されるデータ・センタ、または他の地理的位置、これらのインスタンスが属する可用性コンテナ（独立した障害プロファイルを有するように設計されるリソース・グループ）、及びその他のものに対応することができ、それぞれの一意の名前は、１つ以上のこのような名前空間内の所与のコンピュート・インスタンスへ割り当てられることができる。いくつかの実施形態において、ＣＶＩも、顧客定義の名前空間から顧客により選択される、またはプロバイダ・ネットワーク内で定義された名前空間について顧客により要求されることができる。顧客も、いくつかの実施形態において、コンピュート・インスタンスについてのＤＮＳ名前空間から特定の名前の割り当てを要求することができ、たとえば、ＤＮＳ名、ｗｗｗ．＜ｃｕｓｔｏｍｅｒＣｏｍｐａｎｙＮａｍｅ＞．ｃｏｍは、コンピュート・インスタンスのうちの１つ以上についてのＶＣＳのクライアントによりＣＶＩとして要求されることができる。１つの実施形態において、プロバイダ・ネットワーク・オペレータのビジネス・パートナー、または顧客のビジネス・パートナーのような第三者は、さまざまなコンピュート・インスタンスへＣＶＩを選択し、割り当てることが可能であり得る。少なくとも１つの実施形態において、所与のＣＶＩは、複数のコンピュート・インスタンスへ割り当てられることができ、たとえば、複数のコンピュート・インスタンスが特定のサービスまたはアプリケーションのコンテキスト内の、レプリケーション・グループ、またはフェイルオーバー・グループとして編成されるため、グループ・メンバーのうちの１人の責任の少なくとも一部が特定の条件下で別のグループ・メンバーにより引き継がれる場合に、いくつかのグループ・メンバーは、少なくとも１つの共通の、または共有されたＣＶＩを割り当てられることができる。
【００１４】
各名前空間は、いくつかの実施形態において、その名前空間の所有者によりそれへ割り当てられた１つ以上のアイデンティティ・バリデータを有することができる。このようなアイデンティティ・バリデータは、たとえば、いくつかの実施形態において、プロバイダ・ネットワーク外部に、第三者、または公的認証局（ＣＡ）を含むことができる。非公開アイデンティティ・バリデータは、いくつかの実施形態において１つ以上の名前空間の名前空間所有者により選択されることができる、たとえば、いくつかの検証局は、プロバイダ・ネットワーク内に実装されることができ（プロバイダ・ネットワークで実装されたＶＣＳまたは他のサービスにより定義された名前空間について）、他のものは、顧客定義の名前空間についての顧客所有のネットワークで実装されることができる。少なくとも１つの実施形態において、名前空間の所有者は、その名前空間についてのアイデンティティ・バリデータとしてそれ自体を指定することができ、たとえば、別個のバリデータを要求しない場合がある。公開の、プロバイダ・ネットワーク所有の、または顧客所有のものであろうと、アイデンティティ・バリデータは、たとえば、１つ以上の名前空間内のコンピュート・インスタンスへ割り当てられたＣＶＩに対応するＸ．５０９、または他のデジタル証明書に署名することができる。少なくとも１つの実施形態において、１つより多いアイデンティティをアサートするために所与のデジタル証明書を使用することができ、たとえば、デジタル証明書、及びＣＶＩ間の１：Ｎマッピングを使用することができる。他の実施形態において、それぞれの証明書を各ＣＶＩのために使用することができる。
【００１５】
所与のコンピュート・インスタンスへ割り当てられるＣＶＩのうちの少なくともいくつかは、たとえば、ＣＶＩがインスタンスについて有効である開始及び／または終了時間を示す、定義された対応する有効期間を有することができる。所与のコンピュート・インスタンスに割り当てられた異なるＣＶＩは、少なくともいくつかの実施形態において異なる有効期間を有することができる。
【００１６】
１つの実施形態において、仮想コンピューティング・サービスにより実装された１つ以上のコントロール・プレーン、または管理インタフェースは、クライアントにより使用され、コンピュート・インスタンスへ指定された名前空間内にアイデンティティの割り当てを要求することができる。アイデンティティ割り当ては、いくつかの実施形態において、インスタンスの起動時に要求されることができる（たとえば、ＡＰＩを介して提示されたインスタンス起動要求の１つ以上のパラメータを使用して）。１つの実施形態において、アイデンティティ割り当ては、インスタンスを起動した後にインスタンスについてまた、または代わりに要求されることができる。いくつかの実施形態において、クライアントは、指定されたインスタンスから１つ以上のＣＶＩを取り消す、または割り当て解除することが可能であり得る。
【００１７】
例示的なシステム環境
図１は、少なくともいくつかの実施形態により、仮想コンピューティング・サービスで実装されたコンピュート・インスタンスがそれぞれの名前空間内にいくつかの異なる暗号で検証可能なアイデンティティ（ＣＶＩ）を割り当てられることができる。示されるように、システム１００は、仮想化コンピューティング・サービス（ＶＣＳ）１１０を実装するプロバイダ・ネットワーク１０５を含む。ＶＣＳは、さまざまなクライアントの代わりに、複数のインスタンス・ホスト１２５で複数のコンピュート・インスタンス１５０を確立することができる。たとえば、コンピュート・インスタンス１５０Ａ及び１５０Ｂは、インスタンス・ホスト１２５Ａで、たとえば、それぞれのゲスト仮想マシンとして、セットアップされていて、コンピュート・インスタンス１５０Ｋ及び１５０Ｌは、インスタンス・ホスト１２５Ｂで確立されている。少なくともいくつかのコンピュート・インスタンス１５０は、顧客ネットワーク１１５内のクライアント・デバイス１３３のような、プロバイダ・ネットワーク外部のデバイスから発行されたインスタンス起動要求に応答してセットアップされることができる。
【００１８】
描写された実施形態において、所与のコンピュート・インスタンス１５０は、それぞれの名前空間内で０以上の暗号で検証可能なアイデンティティ（ＣＶＩ）１６０（たとえば、インスタンスに割り当てられた暗号強度公開・秘密鍵ペアの支援で検証されることが可能であるアイデンティティ）を割り当てられることができる。いくつかの異なるタイプのインスタンス・アイデンティティ名前空間（ＩＩＮ）１４４は、それぞれの名前空間の所有者または管理者で、いくつかの実施形態において支援されることができる。名前空間の所有者は、ＩＩＮを定義し（たとえば、割り当てられることが可能である１セットの名前についてのフォーマット、または割り当てられることが可能である名前の範囲）、所与のコンピュート・インスタンス１５０へ割り当てられる特定の名前、またはアイデンティティを選択し、名前空間についての１つ以上のアイデンティティ・バリデータの１セットを指定し、及びその他のことをするために応答可能であり得る。描写された実施形態において、ＩＩＮ１４４Ａは、第三者名前空間の所有者１８３により管理され、ＩＩＮ１４４Ｂは、顧客定義の名前空間の所有者１８５により管理され、ＩＩＮ１４４Ｃは、プロバイダ・ネットワークで実装されたサービスＳ１（ＶＣＳ以外の）の名前空間の所有者１５５により管理され、ＩＩＮ１４４Ｄは、ＶＣＳ名前空間の所有者１５４により管理される。各ＩＩＮ１４４は、ＣＶＩについてのそれ自体のシンタックス及びフォーマットを含むことができ、少なくとも１つの実施形態で、アイデンティティのために使用される検証メカニズム及びポリシーは、一方の名前空間から他方へと異なってもよい。用語「名前空間」は、本明細書で語句「インスタンス・アイデンティティ名前空間」と同義で使用されることができる。
【００１９】
各名前空間１４４に対応する、１つ以上のエンティティは、描写された実施形態においてアイデンティティ・バリデータとして指定されることができる。第三者のアイデンティティ・バリデータ１８４（公的認証局またはＣＡのような）は、たとえば、名前空間１４４ＡのＣＶＩの真正性を保証するために応答可能であり得る。いく人かの顧客は、自身の顧客管理アイデンティティ・バリデータ１８６をセットアップすることができる。プロバイダ・ネットワークで実装されたサービスのうちの１つ以上は、ＶＣＳアイデンティティ・バリデータ１５３、及びサービスＳ１のアイデンティティ・バリデータ（複数可）１５６のような、アイデンティティ・バリデータをインスタンス化することができる。アイデンティティ・バリデータのうちの少なくともいくつかは、アイデンティティ関連の要求に応答してコンピュート・インスタンス１５０により提供されることができる、証明書（Ｘ．５０９証明書、または公開鍵基盤標準若しくは仕様に従いフォーマットされる他の同様の証明書のような）にデジタル署名することができる。１つ以上の暗号鍵は、いくつかの実施形態において、インスタンス・アイデンティティをアサートするために使用されるアーティファクトのうちのいくつかと関連することができる。
【００２０】
所与のコンピュート・インスタンスで実行される特定のタイプのアプリケーションにより、任意の所望の数のＣＶＩは、たとえば、クライアントの代わりにインスタンスを確立するクライアントの要求で、それに割り当てられることができる。いくつかの事例において、クライアントは、インスタンスを起動する前に所与のインスタンスについて要求された１セットのアイデンティティのインディケーションを提供することができ、他の事例において、指定された名前空間内の新規のアイデンティティは、インスタンスが実行を開始した後に割り当てられることができる。インスタンス・アイデンティティは、少なくともいくつかの実施形態で、インスタンス所有者からの要求に応じて無効にされることもできる。１つ以上のＡＰＩのような、ＶＣＳコントロール・プレーンのプログラマティック・インタフェースを提供し、顧客がさまざまな実施形態においてアイデンティティ割り当て、及び／または無効化要求を示すことを許可する。図１で図示された実施例において、インスタンス１５０Ａは、３つのＣＶＩ、名前空間１４４ＡのＣＶＩ１６０Ａ、名前空間１４４ＢのＣＶＩ１６０Ｌ、及び名前空間１４４ＤのＣＶＩ１６０Ｔを割り当てられている。インスタンス１５０Ｂは、名前空間１４４Ａ内にＣＶＩ１６０Ｂを割り当てられている。インスタンス１５０Ｌは、名前空間１４４ＢのＣＶＩ１６０Ｋ、及び名前空間１４４ＣのＣＶＩ１６０Ｐを割り当てられている。インスタンス１５０Ｋは、割り当てられたＣＶＩがない。
【００２１】
所与のコンピュート・インスタンスに割り当てられるＣＶＩは、インスタンスがそれ自体を識別することを要求される特定のアプリケーションにより、異なる方式で使用されることができる。少なくともいくつかの実施形態において、１５０Ａのような所与のインスタンスは、いくつかの他のインスタンス１５０で、プロバイダ・ネットワークで実装されているＳ１のような異なるサービスのノードで、またはクライアント・デバイス１３３のようなプロバイダ・ネットワーク外側のデバイスで、実行するアプリケーションの認証コンポーネントのような、いくつかの他のエンティティから認証要求、または他の同様のアイデンティティ関連のクエリを受信することができる。いくつかの実施形態において、要求は、アイデンティティを要求する名前空間を明示的に、または暗示的に（たとえば、それを受信するそのフォーマットまたはソースに基づいて）示すことができる。つぎにアイデンティティ・クエリを受信するコンピュート・インスタンスは、たとえば、トラステッド・アイデンティティ・バリデータ、またはアイデンティティ・バリデータのチェーンにより署名された証明書のような１つ以上の暗号化アーティファクトを使用して、適切な名前空間内にそのアイデンティティの証拠を提供することができる。少なくともいくつかの実装において、１つ以上のバリデータのインディケーションは、この証拠内に含まれることができる。少なくともいくつかの実施形態において、受信したアイデンティティ・クエリのタイプにより、コンピュート・インスタンスにより提供された証拠は、デジタル証明書より（またはこれらに加えて）他のアーティファクトを含むことができ、たとえば、ポリシー・トークン（コンピュート・インスタンスの秘密鍵を使用して取得された認可ポリシーの暗号化されたバージョン）は、提供されることができる、アイデンティティ・クエリ内に含まれたデータ値は、コンピュート・インスタンスの秘密鍵を使用して署名されることができる、またはインスタンスの公開鍵を使用して解読されることが可能である他のデータは、提供されることができる。コンピュート・インスタンス１５０へアイデンティティ・クエリまたは要求を送信した認証コンポーネントがインスタンスのアイデンティティを確認することが可能である（たとえば、トラステッド・アイデンティティ・バリデータが証明書またはポリシー・トークンを生成している判定に基づき）場合に、アイデンティティ確認の明示的または暗示的肯定応答は、コンピュート・インスタンス１５０へ提供されることができる。つぎに検証されたコンピュート・インスタンス１５０は、そのアイデンティティが認証コンポーネントにより検証されていたアプリケーションまたはインタラクションの後続の動作を実行するように進行することができる。
【００２２】
少なくとも１つの実施形態において、たとえば、特定のコンピュート・インスタンスの排他的使用のために指定された暗号鍵（たとえば、公開・秘密鍵ペアの秘密鍵）と関連した所与のＣＶＩが転送されない、または盗まれないことを確認するために、セキュア鍵ストア１３３（たとえば、１３３Ａまたは１３３Ｂ）をこの鍵のために使用することができる。このようなセキュア鍵ストアは、たとえば、対応するインスタンスを実行するインスタンス・ホストで仮想化管理コンポーネントにより実装された１セットのＡＰＩを介して、転送不可能な鍵の使用を伴うさまざまな操作を許可することができるが、秘密鍵をセキュア鍵ストアから離れてコピーする、または転送することを許可しないことができる。いくつかの実施形態において、インスタンス・ホストの周辺通信バスに接続されたトラステッド・プラットフォーム・モジュール（ＴＰＭ）のようなローカル・セキュア鍵ストア１３３Ｂを使用することができる。他の実施形態において、プロバイダ・ネットワークで実装されたセキュリティ・サービスのハードウェア・セキュリティ・モジュール（ＨＳＭ）のような、リモート・セキュア鍵ストア１３３Ａを使用することができる。セキュア秘密鍵への他のメカニズムは、たとえば、ＨＳＭまたはＴＰＭの代わりに、いくつかの実施形態で使用されることができる。少なくともいくつかの実施形態において、ＶＣＳは、コンピュート・インスタンスがさまざまなＣＶＩをアサートするために必要な単一の暗号鍵（または複数の鍵）を使用することを可能にする（たとえば、使用されるＴＰＭ若しくはＨＳＭを設定する、鍵関連のＡＰＩのために適切なパーミッションを付与することで、または他の設定アクションを取ることで）ことができる。
【００２３】
ＣＶＩ実施例
図２は、少なくともいくつかの実施形態により、コンピュート・インスタンスへ割り当てられることができるアイデンティティのタイプの実施例を図示する。示されるように、コンピュート・インスタンス１５０は、ＶＣＳによりそれに割り当てられた仮想ＩＰアドレスに基づきＤＮＳ名２６０Ａを割り当てられることができる。いくつかの実施形態において、ＤＮＳ名２６０Ａのフォーマットは、ＶＣＳサービス（たとえば、＜ｖｃｓ−ｓｅｒｖｉｃｅ−ｎａｍｅ＞）を識別するそれぞれのサブストリング、ＩＰアドレスのドット付き１０進表記要素（たとえば、ＩＰｖ４アドレス５４．１８７．３１．６６に対応する文字列「５４−１８７−３１−６６」）、インスタンス（たとえば、＜ｚｏｎｅ＞）の地理的位置のいくつかのインディケーション、及びＶＣＳに割り当てられたドメイン名を含むことができる。他の実施形態において、ＤＮＳ名２６０Ａで示された１つ以上のサブストリングを使用しなくてもよい。
【００２４】
少なくともいくつかの実施形態において、１つ以上のパブリックＩＰアドレス、及び１つ以上のプライベートＩＰアドレスは、所与の時点で所与のコンピュート・インスタンスに割り当てられることができ、このようなＩＰアドレスは、コンピュート・インスタンスのＣＶＩのために使用されることができる。パブリックＩＰアドレスは、たとえば、ＢＧＰ（ボーダー・ゲートウェイ・プロトコル）のようなプロトコルを介してアドバタイズされる結果として、公共インターネットの部分からアクセスされることが可能であるものとして定義されることができる。対照的に、プライベートＩＰアドレスは、たとえば、プロバイダ・ネットワークの１つ以上の隔離された仮想ネットワーク（ＩＶＮ）内から、１サブセットのプロバイダ・ネットワーク内のみにアクセス可能であり得る。またＩＶＮは、いくつかの環境で、仮想プライベート・クラウドまたはＶＰＣと言われることができる。ＩＶＮは、ＶＣＳの特定の顧客の要求で確立されることができる、プロバイダ・ネットワーク１０５の論理的に隔離されたセクション内のコンピューティング及び／または他のリソースのコレクションを含むことができる。顧客は、ＩＶＮ内に含まれたデバイスについてのネットワーク構成に関する実質的な制御を与えられることができる。いくつかの実施形態において、たとえば、顧客は、ＩＶＮのさまざまなコンピュート・インスタンス１５０のために使用されるプライベートＩＰアドレス範囲を選択し、ＩＶＮ内のサブネットの作成、及びＩＶＮについてのルーティング・メタデータの設定を管理することができる。いくつかの実施形態において、プロバイダ・ネットワークで実装された１つ以上の他のサービス（たとえば、ファイル・ストレージ・サービス、またはデータベース・サービス）の操作を実行するために使用される、コンピュート・インスタンス及び他のリソースは、１つ以上のＩＶＮ内で編成されることもでき、対応するプライベートＩＰアドレスは、これらのようなリソースに割り当てられることができる。異なるＩＶＮは、内部で使用されたプライベートＩＰアドレスに関して互いから隔離されるため、ときとしてそれは、所与のプライベートＩＰアドレスがそれぞれ別個のＩＶＮ内に１つより多いコンピュート・インスタンスに割り当てられることができる事例であってもよい。描写された実施形態において、公にアドバタイズされたＩＰアドレス５４．８７．１３１．６６  ２６０Ｂは、１つのＣＶＩとして機能することができ、１０．０．０．１のようなプライベートＩＰアドレス２６０Ｃは、インスタンス１５０のための別のＣＶＩとして機能することができる。
【００２５】
さまざまなコンピュート・インスタンスに割り当てられることができるＩＰアドレス・ベースの名前に加えて、ＶＣＳは、ＩＰアドレスから独立するインスタンス名で、いくつかの実施形態において１つ以上の他の名前空間を定義することができる。たとえば、所与のコンピュート・インスタンス１５０は、少なくともいくつかの時点で、ＩＰネットワークから切断されることができ、または一方のネットワーク・アドレス、及び他方間で遷移していることができ、ＶＣＳは、そのネットワーク・ステータスから独立するインスタンスを指すために使用されることが可能である名前（「ｉｎｓｔ」で開始する一意の文字列のような）を割り当てることができる。このようなＶＣＳが割り当てられた一意のインスタンス名２６０Ｄは、インスタンス１５０へ割り当てられたＣＶＩの別の実施例と考えられることができる。同様に、プロバイダ・ネットワークの他のサービスは、それら自体の名前を、いくつかの実施形態でのサービスにより使用される、またはサービスとインタラクトするコンピュート・インスタンスへ割り当てることができる。このような非ＶＣＳサービスに割り当てられた名前２６０Ｈ、たとえば、ＤｂＳｖｃＣｌｉｅｎｔ−０１３２１（コンピュート・インスタンスがＤｂＳｖｃと言われるデータベース・サービスのクライアントであることを示す）は、ＣＶＩの別の実施例を表現することができる。
【００２６】
顧客に選択された、または顧客に要求されたアイデンティティは、さまざまな実施形態においてコンピュート・インスタンスへ割り当てられることもできる。３つの異なるタイプの顧客に影響されるアイデンティティは、それぞれのタイプの名前空間に対応する、図２で示される。顧客は、たとえば、主に顧客ネットワーク内で、または同一の顧客が所有する他のインスタンスとのインタラクションで、検証され、使用されるため、インスタンスのために自身の名前空間を定義することができる。顧客に割り当てられた名前２６０Ｅは、「ＭｙＡｐｐ−Ｃｌｕｓｔｅｒ１−ｉｎｓｔ０」のような、このような名前空間内にコンピュート・インスタンス１５０のＣＶＩとして選択され、割り当てられることができる。また顧客は、いくつかの実施形態において、ＶＣＳ所有の名前空間（顧客が要求する名前２６０Ｆの場合のように）内に、及び／またはＤＮＳ名前空間（顧客に割り当てられたＤＮＳ名２６０Ｇの場合のように）内にインスタンス１５０に割り当てられる特定の名前を要求することができる。いくつかの実施形態において、プロバイダ・ネットワークのオンライン市場内のビジネス・パートナー、または参加者のような、第三者のエンティティ（すなわち、プロバイダ・ネットワーク・オペレータ以外の、及び顧客以外のエンティティ）は、ＣＶＩをインスタンスに割り当てることができる。たとえば、第三者に割り当てられた名前２６０Ｋは、第三者エンティティにより定義され、管理された名前空間内のインスタンスのために選択されることができる。このような第三者ＣＶＩは、たとえば、第三者エンティティにより実装された製品または機能を利用するインスタンス能力を強化するために、さまざまな実施形態で顧客及び／またはＶＣＳの要求で、またはこれらの承認を得て第三者名前空間の所有者により割り当てられることができる。少なくともいくつかの実施形態において、また第三者名前空間の所有者は、名前空間についての１つ以上のアイデンティティ・バリデータを実装することができる。１つの実施形態において、上述されるように、対応するインスタンスのグループ内でインスタンスにより演じられた特定の役割と関連した、共有されたアイデンティティを割り当てることができるため、たとえば、必要な場合に、及び必要なときにグループの１人のメンバーがグループの別のメンバーの作業負荷のうちの少なくとも一部を引き継ぐことを可能にできる。共有された役割名２６０Ｊ（「Ｆａｉｌｏｖｅｒ−ｇｒｏｕｐ−ＦＧ３−ｎｏｄｅ」、インスタンスがフェイルオーバー・グループのメンバーであることを示す）は、複数のインスタンスに割り当てられることができるこのような共有されたＣＶＩの実施例を表現する。障害の場合にはグループ・メンバーの作業負荷を引き継ぐように構成された協調するインスタンスのこのようなピア・グループは、いくつかの実施形態においてプロバイダ・ネットワークのさまざまな異なるサービスにより確立されることができる（ＶＣＳ、さまざまなストレージ関連のサービス、高性能コンピューティング・サービス、及びその他のものを含む）。
【００２７】
所与のインスタンスへの所与のアイデンティティの割り当てが少なくともいくつかの実施形態で一時的であることができ、以前に使用されたアイデンティティの再利用が少なくとも１つの実施形態で許可できることに留意する。たとえば、インスタンスは、時間Ｔ１及びＴ２間の所与の名前空間ＮＳ１内の特定のＣＶＩ「ＣＶＩ１」、時間間隔Ｔ２〜Ｔ３中のＮＳ１内にＣＶＩがない、時間Ｔ３及びＴ４間のＮＳ１内に異なるＣＶＩ「ＣＶＩ２」、ならびに時間Ｔ４及びＴ５間で以前に割り当てられたＣＶＩ「ＣＶＩ１」を割り当てられることができる。
【００２８】
アプリケーション固有のオーセンティケータとのインタラクション
図３は、少なくともいくつかの実施形態により、複数のアプリケーションの認証コンポーネント、及びコンピュート・インスタンス間のインタラクションの実施例を図示する。所与のコンピュート・インスタンス１５０に割り当てられたＣＶＩセット３４２の異なるＣＶＩ３６０Ａ〜３６０Ｄ（それぞれの名前空間３４４Ａ〜３４４Ｄに対応する）は、これらの異なるアプリケーションの操作を続行するパーミッションをインスタンスが受信することを可能にする、描写された実施形態において各いくつかの異なるアプリケーションに対応する特定の認証チャレンジにインスタンスが応答することを可能にできる。２つの異なるアプリケーションＡｐｐ１及びＡｐｐ２のオーセンティケータ３０２Ａ及び３０２Ｂは、図３で示される。たとえば、オーセンティケータ３０２Ａは、リモート・デスクトップ・クライアント・アプリケーションであることができ、オーセンティケータ３０２Ｂは、ソフトウェア・アズ・ア・サービスを使用して実装されたチップ設計アプリケーションのライセンス・マネージャであってもよい。リモート・デスクトップ・クライアント・アプリケーションの実装者は、コンピュート・インスタンスへのリモート・デスクトップ・セッションを確立する前に、コンピュート・インスタンスのアイデンティティを検証することを確実にしたい可能性がある。同様に、チップ設計アプリケーションの実装者は、コンピュート・インスタンスからＣＡＤツールを呼び出す、またはＣＡＤツールを使用することが可能になる前に、インスタンスからのＣＡＤツールの使用を許可することを確実にするようにコンピュート・インスタンスのアイデンティティを検証することを確実にしたい可能性がある。
【００２９】
コンピュート・インスタンス１５０は、図３で示された実施形態の別個のアイデンティティ・クエリ３１２Ａ及び３１２Ｂで各オーセンティケータによりそのアイデンティティを証明するように要求されることができる。アイデンティティ・クエリ３１２Ａ及び３１２Ｂは、コンピュート・インスタンスのライフタイムの異なる時点で受信されることができる。アイデンティティ・クエリ３１２Ａに応答して、コンピュート・インスタンス１５０は、アイデンティティ要求に関係する特定の名前空間３４４Ａを判定し、その名前空間３４４Ａ内でインスタンスに割り当てられたＣＶＩ３６０Ａを示す１つ以上の暗号化アーティファクト３１４Ａを提供することができる。同様に、名前空間３４４Ｂ内のＣＶＩ３６０Ｂを示す１つ以上の暗号化アーティファクト３１４Ｂは、オーセンティケータ３０２Ｂからアイデンティティ要求３１２Ｂに応答して提供されることができる。暗号化アルゴリズムまたは暗号強度鍵を使用して少なくとも部分的に生成された複数の異なるタイプのオブジェクトは、さまざまな実施形態においてインスタンスのアイデンティティの証拠として使用されることができる。たとえば、暗号化アーティファクト３１６は、デジタル証明書、ライセンス契約の暗号化バージョン、暗号化されたポリシー・トークン、及びその他のものを含むことができ、これらのうちの少なくともいくつかは、いくつかの実施形態においてコンピュート・インスタンス１５０に割り当てられた鍵ペアの公開鍵を使用して取得されることができる。複数の異なるタイプの認証プロトコルは、１つより多いメッセージ交換を伴う例示的なマルチステップ・プロトコルのために含む、さまざまな実施形態でインスタンス・アイデンティティ検証を要求するアプリケーションにより使用されることができ、コンピュート・インスタンス１５０は、そのアイデンティティを証明するために要求された異なるステップに適切に応答することができる。いくつかの実施形態において、アイデンティティ・クエリ３１２に応答して提供されたアイデンティティ情報の少なくとも部分は、鍵のコピーを禁止するセキュア鍵ストアで管理されることができる、コンピュート・インスタンスの秘密鍵の使用を伴うことができる。たとえば、コンピュート・インスタンス１５０は、秘密鍵を使用してデータ要素の暗号化を可能にする、仮想化管理コンポーネントのような媒介により、またはセキュア鍵ストアにより実装されたＡＰＩを呼び出さなければならない可能性がある。アイデンティティ・クエリへの応答は、さまざまな実施形態においてコンピュート・インスタンスのソフトウェア・スタックのいくつかの異なる層のいずれかで生じることができ、たとえば、これらのような応答は、ユーザ・モードで実行するアプリケーション、オペレーティング・システム・モジュール、デバイス・ドライバ・モジュール、及びその他のものにより生成されることができる。
【００３０】
オーセンティケータ３０２が関連する名前空間３４４に関してコンピュート・インスタンス１５０のアイデンティティを受諾した、または検証した後に、少なくともいくつかの事例において、肯定応答メッセージ（Ａｕｔｈｎ＿ＡＣＫメッセージ３２２Ａまたは３２２Ｂのような）は、コンピュート・インスタンスへ送信されることができる。このような肯定応答は、このアプリケーション（たとえば、Ａｐｐ１またはＡｐｐ２）と関連した追加の操作を続行することを許可するコンピュート・インスタンスへの信号として機能することができる。明示的な認証肯定応答メッセージは、少なくともいくつかの実施形態でいくつかのアプリケーションにより使用されないことができる。いくつかの実施形態で、少なくともいくつかのタイプのインスタンス・アイデンティティ名前空間について、コンピュート・インスタンスがオーセンティケータとのインタラクションの第一ステップとしてＣＶＩをアサートすることができる、すなわち、インスタンス・アイデンティティが必ずしも受信した要求に応答してのみアサートされる必要がないことに留意する。
【００３１】
セキュア鍵ストアの実施例
上述されるように、コンピュート・インスタンスへ割り当てられた鍵ペアの秘密鍵は、いくつかの実施形態において所与の名前空間内にコンピュート・インスタンスのアイデンティティをアサートするために実行された少なくともいくつかの操作のために使用されることができる。図４は、少なくともいくつかの実施形態により、セキュア鍵ストアが管理する転送不可能な秘密鍵をコンピュート・インスタンスが利用することを可能にするプログラマティック・インタフェースを実装することができる、インスタンス・ホストの実施例を図示する。示されるように、インスタンス・ホスト１２５は、たとえば、いくつかの数の処理コアまたはプロセッサ４７０、メイン・メモリと言われることができる少なくとも１つの非永続メモリ４７２、ディスク（回転ディスク及び／またはソリッド・ステート・ディスクを含むことができる）のような１つ以上のローカル永続ストレージ・デバイス４９０、及び１つ以上のネットワーク・インタフェース・カード（ＮＩＣ）４８０を含むことができる、複数のハードウェア・コンポーネント４１０を備えることができる。他の非永続メモリ位置は、プロセッサ・キャッシュ、レジスタ、及び同様のもののさまざまなレベルのような、少なくともいくつかの実施形態でハードウェア・コンポーネント層４１０に利用可能であり得る。トラステッド・プラットフォーム・モジュール４７０のようなローカル・セキュア鍵ストアは、描写された実施形態のインスタンス・ホスト１２５内に組み込まれる、またはこれに接続されることもできる。１つ以上のモニタ、マウス、及び同様のもの（図４で示されない）のような周辺機器は、いくつかの実装においてインスタンス・ホストに接続されることもできる。
【００３２】
さまざまなハードウェア層リソース４１０は、描写された実施形態においてオペレーティング・システム４３０のハイパーバイザ４０８及び／または管理インスタンスを含む仮想化管理ソフトウェア・スタックの支援で仮想化される（たとえば、各インスタンスがリソースへの排他的アクセス権をもっているかのように、インスタンス・ホスト１２５でブートされる、または起動されるいくつかのインスタンス１５０に提示される）ことができる。ハイパーバイザ及び／または管理オペレーティング・システム・インスタンスは、ＶＣＳの要素とみなされることができ、仮想化管理コンポーネント（ＶＭＣ）４２５と言われることができる。オペレーティング・システムの管理インスタンスは、いくつかの実装において「ドメイン０」または「ｄｏｍ０」とラベル付けされた「特権ドメイン」と言われることができ、各インスタンス１５０について確立されたそれぞれのオペレーティング・システムは、「非特権ドメイン」（「ｄｏｍＵ」とラベル付けされた）、「ゲスト・オペレーティング・システム」、または「ゲスト・ドメイン」と言われることができる。
【００３３】
ハイパーバイザ４０８は、描写された実施形態で、コンピュート・インスタンス、及びインスタンス・ホストのハードウェア・コンポーネント間の媒介として一般的に動作することができる。たとえば、使用されている特定のプログラマティック・インタフェースに依存する、いくつかの事例において、ハイパーバイザ及び管理オペレーティング・システム・インスタンス４３０の両方は、インスタンス１５０及びハードウェア間の媒介であってもよい。たとえば、操作の要求パスは、つぎの、コンピュート・インスタンス→ハイパーバイザ→ｄｏｍ０→ハイパーバイザ→ハードウェアのように流れることができ、応答は、リバース・パスを使用してコンピュート・インスタンスに提供されることができる。いくつかの実装において、ｄｏｍ０は、１つ以上のタイプのハードウェア・コンポーネントに直接アクセスすることが可能であることができ、ｄｏｍ０及びハードウェア間の他のインタラクションは、ハイパーバイザを通過することができる。たとえば、アプリケーション層４５０により要求された操作のために、ハードウェア・コンポーネント（セキュア鍵ストア４７０のような）がコンピュート・インスタンス１５０から利用されるときに、ＶＭＣを対象とする対応する要求は、オペレーティング・システムのカーネルまたはデバイス・ドライバ層４５２により生成されることができる。描写された実施形態において、たとえば、ＶＣＳにより支援された１つ以上の秘密鍵ＡＰＩ４２５は、コンピュート・インスタンス１５０から呼び出され、セキュア鍵ストアにより管理された秘密鍵を利用することができる。ＡＰＩ４２５は、描写された実施形態で、発呼者（たとえば、コンピュート・インスタンス）が秘密鍵をコピーする、または転送することを許可せずに、たとえば、暗号化アーティファクトを生成するために、秘密鍵の使用を可能にできる。
【００３４】
描写された実施形態において、ローカル・セキュア鍵ストア４７０の使用の代わりに、またはこれに加えて、リモート・セキュア鍵ストア４９０（プロバイダ・ネットワークで実装されたセキュリティ・サービスのハードウェア・セキュリティ・モジュール（ＨＳＭ）のような）を使用することができる。リモート・セキュア鍵ストアは、上述されるように秘密鍵のコピーを防止する類似の種類のＡＰＩ４２５を使用して、少なくともいくつかの実施形態で利用されることができる。リモート・セキュア鍵ストア４９０とのインタラクションは、ハードウェアＮＩＣ４８０を通過しなければならない可能性がある。１つの実施形態において、１タイプのセキュア鍵ストアのみ、たとえば、ローカル鍵ストア４７０、またはリモート鍵ストア４９０のいずれか一方を使用することができる。少なくとも１つの実施形態において、複数の鍵ペアは、所与のコンピュート・インスタンスのために（たとえば、異なる名前空間内のそれぞれのＣＶＩのために）指定されることができ、異なるセキュア鍵ストアは、複数の鍵ペアの秘密鍵のために使用されることができる。他の実施形態において、同一の鍵ペアは、それぞれの名前空間内でいくつかの異なるＣＶＩのために使用されることができる。鍵ペアは、高度暗号化標準（ＡＥＳ）、ＲＳＡ（リベスト・シャミア・エーデルマン）アルゴリズム、ＤＥＳ（データ暗号化標準）、ＰＧＰ（プリティ・グッド・プライバシー）、または同様のもののバージョンのような、異なる実施形態においてさまざまな適切な暗号化標準及び／またはアルゴリズムのいずれかと互換性があってもよい。
【００３５】
アイデンティティ割り当てのための管理上のインタラクション
いくつかの実施形態において、インスタンス・アイデンティティに関連した構成操作のための１セットのプログラマティック・インタフェースを支援することができる。図５は、少なくともいくつかの実施形態により、クライアント及びインスタンス設定マネージャ間のアイデンティティ関連のコントロール・プレーン・インタラクションの実施例を図示する。いく人かのクライアントは、インスタンスが起動する前にインスタンスに割り当てられるアイデンティティのタイプを判定することができ、他のクライアントは、起動後にインスタンスへアイデンティティを割り当てることができる。クライアントは、描写された実施形態でコンピュート・インスタンスからのアイデンティティを無効にすることが可能であり得る。これらの、及び他のタイプの構成操作について、１セットのプログラマティック・インタフェース５９０は、描写された実施形態においてＶＣＳコントロール・プレーンにより実装されることができる。
【００３６】
示されるように、クライアント５０２は、アイデンティティ記述子（ＩＤ記述子）パラメータが起動されるインスタンスについての１つ以上の要求されたアイデンティティ・タイプを示しながら、プログラマティック・インタフェース５９０を介して描写された実施形態でＶＣＳのインスタンス設定マネージャへ、インスタンス起動要求５０４を提示することができる。各要求されたアイデンティティについて、アイデンティティ記述子は、図６のコンテキストで以下に記述されるような、名前空間の識別子、名前空間の所有者、アイデンティティ有効期間情報、及び同様のもののようなさまざまなプロパティを示すことができる。インスタンス起動要求（及び図５で図示された他の例示的な要求）は、省略記号（「．．．」）により示されるような、図５で示されない０以上の追加のパラメータを各含むことができる。起動で、または起動前にコンピュート・インスタンスへアイデンティティを割り当てたくないクライアント５０２は、いくつかの実施形態において、それらの起動要求でアイデンティティ記述子を含まないことができる、すなわち、アイデンティティ記述子は、任意選択のパラメータであってもよい。
【００３７】
アイデンティティ記述子を含むインスタンス起動要求を受信することに応答して、インスタンス設定マネージャ５１０は、描写された実施形態で要求するクライアントにアイデンティティを割り当てることを許可することを最初に検証することができる。すべてのクライアントは、少なくともいくつかの実施形態でさまざまなタイプの名前空間内にアイデンティティを割り当てるパーミッションを与えられることができない、たとえば、選択された１セットのインスタンス・タイプ（たとえば、「大規模」インスタンス、「小規模」インスタンスよりコストがかかる可能性がある）のみは、複数のＣＶＩを含むことを許可されることができ、単一のＣＶＩ（またはすべてのＣＶＩではない）のみが許可されるインスタンスへ複数のアイデンティティを割り当てる要求を出すクライアントは、「パーミッションがない」または同様のエラー・メッセージを受信することができる。少なくとも１つの実施形態において、１つより多いＣＶＩをインスタンスへ割り当てたいクライアントは、アイデンティティごとの価格を含む価格設定ポリシーを受諾するように要求されることができる。いくつかの実施形態において、所与のＣＶＩのために要求されたアイデンティティ検証のタイプ（たとえば、プロバイダ・ネットワークの独自のアイデンティティ・バリデータを使用することが可能であるかどうか、または公的認証局のような外部アイデンティティ・バリデータを使用するかどうか）は、アイデンティティ割り当てと関連する価格設定を決定することができる。クライアントのインスタンス起動要求が設定マネージャの受諾基準を満たす場合に、設定マネージャは、名前空間の所有者５２０Ａ、５２０Ｂまたは５２０Ｃのような、描写された実施形態で適切なセットの名前空間の所有者５２０から要求されたタイプのアイデンティティの割り当てを開始することができる。名前空間の所有者を対象とするこれらの要求は、いくつかの実装において、起動されるコンピュート・インスタンスへ割り当てられる、鍵ペアの公開鍵（複数可）を含むことができる。インスタンス設定マネージャ５１０は、いくつかの実施形態において、要求されたアイデンティティを正常に割り当てたことを示す名前空間の所有者から通知を受信することができる。インスタンス（たとえば、割り当てられたＩＤ情報パラメータに含まれた）に正常に割り当てられた単一のアイデンティティ、または複数のアイデンティティを示す起動成功メッセージ５０６は、描写された実施形態でクライアント５０２に提供されることができる。少なくともいくつかの実施形態において、１つ以上のＣＶＩは、たとえば、その代理人がインスタンスを起動させるクライアントがインスタンスについて任意のアイデンティティ関連の選好を明示的に示さない場合でも、インスタンスにデフォルトで割り当てられることができる。
【００３８】
現在実行しているインスタンスについて起動後のアイデンティティ割り当ては、描写された実施形態で、インスタンスへのアイデンティティ割り当て要求５０８を介してクライアント５０２により要求されることができる。これに応じて、設定マネージャ５１０は、クライアントがアイデンティティを割り当て、つぎにインスタンス起動要求５０４に関連して上述されるものに類似する方式で実行するインスタンスへアイデンティティ割り当てを開始することを許可されることを、もう一度確認することができる。要求されたアイデンティティの正常な割り当てを示す肯定応答メッセージＩＤ割り当てＡＣＫ５１１は、クライアント５０２へ提供されることができる。
【００３９】
アイデンティティを無効にするために、クライアント５０２は、無効にされるセットのアイデンティティを示すＩＤ記述子パラメータで、設定マネージャ５１０へインスタンスからのＩＤ無効要求５１２を提示することができる。アイデンティティの無効化は、たとえば、インスタンスのライフタイムの一部についてのコンピュート・インスタンスが１セットのパーミッションのみを必要とするときに、有用であることができ、たとえば、アイデンティティ検証を必要とする特定のアプリケーションがもはやインスタンス上で実行されないときに、対応するＣＶＩを取り消す、または無効にすることができる。クライアントが単一のアイデンティティ、または複数のアイデンティティを取り消すことを許可されることを検証した後に、設定マネージャは、適切な名前空間マネージャ５２０との１回以上の通信を介して無効化を開始することができる。無効化が成功する場合に、肯定応答メッセージ、ＩＤ無効化ＡＣＫ５１４は、描写された実施形態でクライアント５０２へ送信されることができる。名前空間の所有者５２０は、さまざまな実施形態で、たとえば、要求された名前をすでに割り当てた場合に、さまざまな理由のためにアイデンティティを割り当てる、または無効にする要求を拒否することができる。このような拒否のインディケーションは、インスタンス設定マネージャ５１０により、要求するクライアントへ提供されることができる。さまざまな実施形態において、図３（オーセンティケータ及びコンピュート・インスタンス間で）及び図５（クライアント、及びプロバイダ・ネットワークのコントロール・プレーン・コンポーネント間で）で図示されたインタラクションの種類について、さまざまな異なるタイプのプログラマティック・インタフェースを実装することができることに留意する。このようなインタフェースは、ＡＰＩ、ウェブ・ページまたはウェブ・ベース・コンソール、グラフィカル・ユーザ・インタフェース（ＧＵＩ）、コマンド・ライン・ツール、及び同様のものを含むことができる。
【００４０】
アイデンティティ記述子要素
図６は、少なくともいくつかの実施形態により、インスタンス設定マネージャに提示されたアイデンティティ割り当て要求内に含まれることができるアイデンティティ記述子の例示的なコンテンツを図示する。複数のアイデンティティ・エントリ６１２、たとえば、６１２Ａまたは６１２Ｂを含むアイデンティティ記述子６１０は、たとえば、図５で図示された要求に類似するインスタンス起動、またはインスタンスへのアイデンティティ割り当て要求のパラメータとして提供されることができる。
【００４１】
描写された実施形態において、アイデンティティ・エントリ６１２Ａは、つぎのサブエントリ、名前空間６１４Ａの識別子、名前空間の所有者６１６Ａ、インスタンスのために要求された名前６１８Ａ、アイデンティティについての初期有効期間６２０Ａ、有効性拡張ポリシー６２２Ａ（たとえば、割り当てられたアイデンティティを拡張するために取るべきステップ、及び期限切れのアイデンティティを更新することが可能である期間）、検証メカニズム６２４Ａ（たとえば、アイデンティティの暗号検証のために使用されるタイプの証明書またはアルゴリズム）、及び／または承認されたバリデータ・リスト６２６Ａのいくつかの組み合わせを備えることができる。アイデンティティ・エントリ６１２Ｂは、同一のインスタンスのために、第二要求されたアイデンティティ、たとえば、第二名前空間６１４Ｂ、名前空間の所有者６１６Ｂ（６１６Ａと異なることができる）、名前空間６１４Ｂ内の別の要求された名前６１８Ｂ、初期有効期間６２０Ｂ（６２０Ａと異なることができる）、有効性拡張ポリシー６２２Ｂ（ポリシー６２２Ａと異なることができる）、検証メカニズム６２４Ｂ（６２４Ａと異なることができる）、承認されたバリデータ・リスト６２６Ｂ（バリデータ・リスト６２６Ａと重複することができる）についてプロパティの異なる組み合わせを指定することができる。少なくともいくつかの実施形態において、サブエントリのうちの１つ以上を省略することができる。たとえば、いくつかのタイプのアイデンティティについて、要求された名前６１８を提案する代わりに、クライアントは、ＶＣＳ（またはプロバイダ・ネットワークのいくつかの他のサービス）に依拠し、インスタンスのために適切な名前を決定することができる。同様に、有効期間６２０、有効性拡張ポリシー６２２、またはバリデータ・リストのような、有効性関連のパラメータについて、クライアントは、名前空間の所有者により、またはＶＣＳにより選択されたデフォルト設定に依拠することが可能であり得る。少なくともいくつかの実施形態において、少なくともいくつかのタイプのアイデンティティのための検証メカニズムを予め決定することができる、すなわち、クライアントは、インスタンス・アイデンティティを検証する方式を変更することが不可能であり得る、または使用されることが可能である１セットのバリデータを修正することが不可能であり得る。
【００４２】
少なくとも１つの実施形態において、いくつかの異なるタイプのバリデータ、たとえば、プロバイダ・ネットワーク外側の第三者または公的認証局により検証される所与のタイプのインスタンス・アイデンティティのために可能であることができ、プロバイダ・ネットワーク独自の内部認証局は、インスタンスのアイデンティティについてのデジタル証明書に署名することが可能であり得る。いくつかのこのような実施形態において、クライアントは、インスタンスのために使用することをクライアントが好むアイデンティティ・バリデータの種類に少なくとも部分的に基づく価格設定オプションを提供されることができる。たとえば、クライアントは、第三者または外部機関によりアイデンティティを検証するインスタンスについてより、プロバイダ・ネットワーク内の機関によりアイデンティティを検証するインスタンスについてより低い請求率を課されることができる。いくつかの実施形態において、図６で図示された一部の、またはすべてのアイデンティティ・エントリ・サブコンポーネントは、ＡＰＩ呼び出しの別個のパラメータとして提供されることができ、アイデンティティ記述子のような単一のオブジェクト、またはデータ構造内に必ずしも組み込まれないことができる。
【００４３】
マルチファセット・インスタンス・アイデンティティを支援する方法
図７は、少なくともいくつかの実施形態により、インスタンス・アイデンティティ割り当てに関連する管理要求に応答するように実行されることができる操作の態様を図示する流れ図である。要素７０１で示されるように、コンピュート・インスタンスＣＩ１へ１つ以上のＣＶＩを割り当てる要求は、仮想コンピューティング・サービスのコントロール・プレーン・コンポーネントで受信されることができる。用語「コントロール・プレーン・コンポーネント」は、非管理アプリケーション操作を実装する際に伴われる「データ・プレーン・コンポーネント」とは対照的に、ＶＣＳのコンピュート・インスタンス及びインスタンス・ホストの設定及び管理のために応答可能であるエンティティ（図５１０で示された設定マネージャのような）を指すために本明細書で使用されることができる。アイデンティティ割り当て要求は、名前空間識別子、名前空間の所有者、要求された名前、及びその他のもののような、要求された各タイプのアイデンティティに対応する図６のコンテキストで考察される一部の、またはすべてのアイデンティティ・プロパティを示すことができる。いくつかのパラメータは、２つ以上の要求されたアイデンティティについて同一であってもよい、たとえば、同一の有効期間は、２つ以上の異なるアイデンティティのために要求されることができる、または同一のエンティティは、２つ以上のアイデンティティのために名前空間を所有することができる。いくつかの実施形態において、デフォルト設定は、クライアントの要求で明示的に詳述されない１つ以上のプロパティのために使用されることができる。アイデンティティ割り当て要求は、インスタンスの起動（たとえば、インスタンス起動要求、または均等物で）前に、または他の事例でインスタンスを起動した後に受信されることができる。
【００４４】
コントロール・プレーン・コンポーネントは、受信したアイデンティティ割り当て要求のコンテンツを検証する（要素７０４）ことができる。複数の異なるタイプの検証操作は、要求されたアイデンティティをすでに割り当てた（または同一の名前空間内の別のアイデンティティをすでに割り当てた）かどうか、要求者が要求されたタイプのアイデンティティを割り当てることを許可されるかどうか、指定された名前空間の所有者がＶＣＳから到達可能であるかどうか、または特定のインスタンスＣＩ１がＣＶＩ割り当てのための適格基準を満たすかどうかを確認するような、さまざまな実施形態において実行されることができる。少なくとも１つの実施形態において、たとえば、いくつかの異なるタイプのコンピュート・インスタンス（「小規模」、「中規模」、及び「大規模」インスタンスのような）は、それぞれの価格設定ポリシーでＶＣＳにより支援されることができ、所与のタイプの名前空間内のＣＶＩは、すべてのインスタンス・タイプに必ずしも割り当て可能ではなくてもよい。少なくとも１つの実施形態において、異なるタイプのＣＶＩは、たとえば、ＣＶＩタイプのための名前空間及びアイデンティティ・バリデータに基づき、ＣＶＩと関連した異なる価格設定ポリシーを有することができる。このような実施形態において、コントロール・プレーン・コンポーネントは、１つ以上のＣＶＩの割り当てを承認する前に、適切な価格設定ポリシーがＣＩ１に有効であること、または要求するクライアントが適切な価格設定ポリシーに同意することを確保しなければならない可能性がある。いくつかの実装において、たとえば、すべてのインスタンスがセキュア鍵ストアにより管理された暗号鍵を使用することを許可されない実装において、ＶＣＳコントロール・プレーン・コンポーネントは、ＣＶＩを割り当てるインスタンスがＣＶＩをアサートする適切なセットの鍵を利用することを可能にすることを検証することができる。
【００４５】
アイデンティティ割り当て要求を検証した後に、コントロール・プレーン・コンポーネントは、各要求されたアイデンティティについての名前空間の所有者へそれぞれの要求を送信する（要素７０７）ことができる。少なくとも１つの実施形態において、コントロール・プレーン・コンポーネントは、所与のアイデンティティのために使用される暗号鍵ペアの公開鍵を決定することが可能であることができ、この公開鍵は、名前空間の所有者に送信された要求内に含まれることができる。１つの実施形態において、クライアントのアイデンティティ割り当て要求に含まれた一部の、またはすべてのパラメータは、名前空間の所有者に渡されることができる。名前空間の所有者は、コントロール・プレーン・コンポーネントからの要求に応答して自身の検証操作を実行することができる。検証操作が成功する場合に、名前空間の所有者、及び／またはそれぞれの名前空間のアイデンティティ・バリデータは、要求されたアイデンティティ（たとえば、割り当てられた名前、適切なデジタル証明書、または他のアイデンティティ関連のアーティファクト、及びその他のもの）に必要なメタデータを生成することができる。
【００４６】
コントロール・プレーン・コンポーネントは、要求されたタイプのアイデンティティをコンピュート・インスタンスＣＩ１に割り当てたことを示す、名前空間の所有者（複数可）から肯定応答を受信する（要素７１０）ことができる。１つ以上の名前空間内のＣＩ１に割り当てられた名前は、少なくともいくつかの実施形態において、コントロール・プレーン・コンポーネントに提供されることができる。いくつかの実施形態において、名前空間のためのアイデンティティ・バリデータは、名前空間内のアイデンティティをＣＩ１へ正常に割り当てたことをコントロール・プレーン・コンポーネントにまた、または代わりに通知することができる。描写された実施形態において、コントロール・プレーン・コンポーネントは、たとえば、要求されたアイデンティティを割り当てた、または１つ以上の要求されたアイデンティティを割り当てない場合に、ＣＩ１のアイデンティティのステータスについてクライアントに通知する（要素７１３）ことができる。さまざまな名前空間内のインスタンスに割り当てられた名前は、いくつかの実施形態においてクライアントに提供されることもできる。少なくとも１つの実施形態において、ＶＣＳは、名前空間識別子、名前空間の所有者、有効期間、バリデータ・リスト、及びその他のもののようなアイデンティティ・プロパティとともに、所与のコンピュート・インスタンスに割り当てられたすべてのＣＶＩのリストをクライアントが取得することを可能にする、コントロール・プレーン・プログラマティック・インタフェース（たとえば、「インスタンス記述」またはコンソールのようなＡＰＩを介して）実装することができる。
【００４７】
図８は、少なくともいくつかの実施形態により、それぞれの名前空間内に１つ以上のアイデンティティを割り当てたコンピュート・インスタンスで実行されることができる操作の態様を図示する流れ図である。要素８０１で示されるように、１つ以上のＣＶＩは、たとえば、ＣＩ１が属するインスタンス・カテゴリに有効であるＶＣＳポリシーに基づくデフォルトにより、またはインスタンスの所有者の要求（複数可）に応答して、のいずれか一方で仮想化されたコンピューティング・サービス（ＶＣＳ）の所与のコンピュート・インスタンスＣＩ１に割り当てられることができる。
【００４８】
ＣＩ１は、特定のアプリケーション及び／または名前空間（たとえば、ＤＮＳ名前空間に関するリモート・デスクトップ・クライアントからのクエリ、またはライセンシー名前空間に関するライセンス・サーバからのクエリ）と関連したアイデンティティ・クエリを受信する（要素８０４）ことができる。いくつかのこのようなアイデンティティ・クエリは、認証チャレンジと言われることもできる。これに応じて、ＣＩ１は、適切な名前空間内のそれに割り当てられたＣＶＩのインディケーションとして１つ以上の暗号で生成されたアーティファクトを提供する（要素８０７）ことができる。いくつかの事例で、ＣＩ１は、そのコンテキストでアイデンティティを受信した特定のアプリケーションに適用可能である名前空間を最初に決定しなければならない可能性があり、他の事例で、アイデンティティ・クエリまたはチャレンジは、明示的に名前空間を示すことができる。１つの実施形態において、１つ以上のアイデンティティ・バリデータ（たとえば、ＣＩ１の請求されたアイデンティティを検証するために相談されることが可能である信頼できる機関）のインディケーションは、ＣＩ１の応答に含まれることができる。少なくともいくつかの実施形態において、各ＣＶＩは、ＣＩ１専用に指定された対応する暗号鍵ペアと関連することができる。１つより多いＣＶＩが少なくともいくつかの実装において同一の鍵ペアと関連することができることに留意する。少なくとも１つの実施形態において、アイデンティティを示すアーティファクトは、デジタル証明書（対応する名前空間についてのアイデンティティ・バリデータにより署名され、関連した鍵ペアの公開鍵を含む）、及び／またはＣＩ１を実行するインスタンス・ホストで仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを使用して取得された別の暗号値（デジタル署名のような）を含むことができる。プログラマティック・インタフェースは、ＣＩ１へ秘密鍵自体を公開することなく、いくつかの実装において、ＣＩ１が秘密鍵を間接的に使用して、暗号値を取得することを許可することができる。秘密鍵は、ＣＩ１が実行するインスタンス・ホストの通信バスに接続されるローカル周辺機器、またはネットワーク経由で仮想化管理コンポーネントからアクセス可能なリモート・ハードウェア・セキュリティ・モジュールのような、さまざまな実施形態においてセキュア鍵ストアで管理される／格納されることができる。その単一のＣＶＩ、または複数のＣＶＩをアサートするためにＣＩ１による秘密鍵の使用は、描写された実施形態でＶＣＳにより有効にされることができる。
【００４９】
アイデンティティ要求を生成したエンティティによりＣＶＩを受諾する（要素８１０で決定されるように）場合に、ＣＩ１は、描写された実施形態で、アイデンティティ要求を受信したアプリケーションの追加の操作を実行するように続行する（要素８１３）ことができる。ＣＶＩを拒否する（また要素８１０で決定されるように）場合に、ＣＩ１は、インスタンス・ホストの仮想化管理コンポーネントへ、及び／またはＶＣＳコントロール・プレーンへエラー・メッセージを任意選択で送信する（要素８１６）ことができる。
【００５０】
さまざまな実施形態において、図７及び図８の流れ図で図示されたこれら以外の操作を使用して、本明細書で考察されたマルチファセット・インスタンス・アイデンティティを支援するための技術のうちの少なくともいくつかを実装することができることに留意する。示された操作の一部は、いくつかの実施形態で実施されることができず、図７若しくは図８で図示された以外の異なる順序で、または順次ではなく並列で実施されることができる。
【００５１】
使用事例
複数の暗号で検証可能なアイデンティティをコンピュート・インスタンスへ割り当てるためのサポートを提供する、上述された技術は、さまざまな環境で使用されることができる。機密性の高いビジネス・データを処理するため、高水準のセキュリティを要求する多くの最新のアプリケーション及びプロトコルは、プロバイダ・ネットワーク環境で現在実行されている。仮想コンピューティング・サービスの少なくともいく人かのクライアントは、各アプリケーション・コンテキストが１つ以上の名前空間内でそれ自体の認証及びセキュリティ要件を課しながら、複数のアプリケーション・コンテキストにコンピュート・インスタンスを使用したい可能性がある。各インスタンスへ暗号鍵ペア（それらのハードウェア鍵ストアから秘密鍵を変更する、またはコピーすることが不可能である）を割り当てること、及びインスタンスが１つ以上の名前空間内でそれら自体のアイデンティティをアサートすることを可能にするためにこれらの鍵を使用することで、クライアントは、多くのタイプのアプリケーションのために所望のレベルのセキュリティを達成することが可能であり得る。またこのような技術は、コンピュート・インスタンスを管理することと関連した管理作業を軽減することができ、たとえば、管理者は、所与のアプリケーションに関係する各インスタンスがそのように行う権限を与えられることを手作業で（たとえば、コンピューティング・サービスの管理コンソールを介して）検証する必要がなくなることができる。異なる有効期間及び他のプロパティは、単一のアイデンティティのみがインスタンスに割り当て可能であった場合に可能であるものより、大きな柔軟性を可能にする、所与のインスタンスに割り当てられた異なるアイデンティティのために設定されることができる。クライアントは、さまざまなインスタンスのために使用されるアイデンティティ検証メカニズムのタイプに部分的に依存する価格設定プランを選択する、インスタンス・アイデンティティに関する価格設定トレードオフを行うことが可能であり得る。
【００５２】
例示的なコンピュータ・システム
少なくともいくつかの実施形態において、コンピュート・インスタンスへのそれぞれの名前空間内の複数のアイデンティティの割り当てのために上述される技術のうちの１つ以上を実装するサーバは、１つ以上のコンピュータ・アクセス可能な媒体を含む、またはこれらにアクセスするように設定される汎用コンピュータ・システムを含むことができる。図９は、このような汎用コンピューティング・デバイス９０００を図示する。図示された実施形態において、コンピューティング・デバイス９０００は、入力／出力（Ｉ／Ｏ）インタフェース９０３０を介してシステム・メモリ９０２０（不揮発性及び揮発性メモリ・モジュールの両方を含むことができる）に結合された１つ以上のプロセッサ９０１０を含む。さらにコンピューティング・デバイス９０００は、Ｉ／Ｏインタフェース９０３０に結合されたネットワーク・インタフェース９０４０を含む。
【００５３】
さまざまな実施形態において、コンピューティング・デバイス９０００は、１つのプロセッサ９０１０を含むユニプロセッサ・システム、またはいくつかのプロセッサ９０１０（たとえば、２つ、４つ、８つ、または別の適切な数）を含むマルチプロセッサ・システムであってもよい。プロセッサ９０１０は、命令を実行可能な任意の適切なプロセッサであってもよい。たとえば、さまざまな実施形態において、プロセッサ９０１０は、ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣ、若しくはＭＩＰＳ命令・セット・アーキテクチャ（ＩＳＡ）、または任意の他の適切なＩＳＡのような、さまざまなＩＳＡのいずれかを実装する汎用、または組み込みプロセッサであってもよい。マルチプロセッサ・システムにおいて、各プロセッサ９０１０は、必要ではないが、同一のＩＳＡを一般的に実装することができる。いくつかの実装において、グラフィックス・プロセッシング・ユニット（ＧＰＵ）は、従来のプロセッサの代わりに、またはこれらに加えて使用されることができる。 
【００５４】
システム・メモリ９０２０は、プロセッサ（複数可）９０１０によりアクセス可能な命令及びデータを格納するように構成されることができる。少なくともいくつかの実施形態において、システム・メモリ９０２０は、揮発性、及び不揮発性部分の両方を備えることができ、他の実施形態において、揮発性メモリのみを使用することができる。さまざまな実施形態において、システム・メモリ９０２０の揮発性部分は、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、同期ダイナミックＲＡＭ、または任意の他のタイプのメモリのような、任意の適切なメモリ技術を使用して実装されることができる。システム・メモリの不揮発性部分（たとえば、１つ以上のＮＶＤＩＭＭを備えることができる）について、いくつかの実施形態で、ＮＡＮＤフラッシュ・デバイスを含む、フラッシュ・ベースのメモリ・デバイスを使用することができる。少なくともいくつかの実施形態において、システム・メモリの不揮発性部分は、スーパーキャパシタまたは他の蓄電装置（たとえば、バッテリ）のような、電源を含むことができる。さまざまな実施形態において、メモリスタ・ベースの抵抗変化型メモリ（ＲｅＲＡＭ）、３次元ＮＡＮＤ技術、強誘電体ＲＡＭ、磁気抵抗メモリＲＡＭ（ＭＲＡＭ）、または任意のさまざまなタイプの相変化メモリ（ＰＣＭ）は、システム・メモリの不揮発性部分のために少なくとも使用されることができる。図示された実施形態において、上述されるこれらの方法、技術及びデータのような、１つ以上の所望の機能を実装するプログラム命令及びデータは、コード９０２５及びデータ９０２６としてシステム・メモリ９０２０内に格納されて示される。
【００５５】
１つの実施形態において、Ｉ／Ｏインタフェース９０３０は、トラステッド・プラットフォーム・モジュール（ＴＰＭ）９６６のようなローカル・セキュア鍵ストア、ネットワーク・インタフェース９０４０、またはさまざまなタイプの永続的及び／または揮発性ストレージ・デバイスのような他の周辺インタフェースを含む、デバイス内のプロセッサ９０１０、システム・メモリ９０２０、及び任意の周辺機器間のＩ／Ｏトラフィックを調整するように構成されることができる。いくつかの実施形態において、Ｉ／Ｏインタフェース９０３０は、一方のコンポーネント（たとえば、システム・メモリ９０２０）からのデータ信号を他方のコンポーネント（たとえば、プロセッサ９０１０）による使用のために適切なフォーマットに変換する、任意の必要なプロトコル、タイミングまたは他のデータ変換を実行することができる。いくつかの実施形態において、Ｉ／Ｏインタフェース９０３０は、たとえば、ロー・ピン・カウント（ＬＰＣ）・バス、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）・バス規格の変形、またはユニバーサル・シリアル・バス（ＵＳＢ）規格のような、さまざまなタイプの周辺バスを介して接続されたデバイスのためのサポートを含むことができる。いくつかの実施形態において、Ｉ／Ｏインタフェース９０３０の機能は、たとえば、ノース・ブリッジ及びサウス・ブリッジのような、２つ以上の別個のコンポーネントに分割されることができる。また、いくつかの実施形態において、システム・メモリ９０２０へのインタフェースのような、Ｉ／Ｏインタフェース９０３０の一部の、またはすべての機能性は、プロセッサ９０１０に直接組み込まれることができる。
【００５６】
ネットワーク・インタフェース９０４０は、たとえば、図１〜図８で図示されるように、他のコンピュータ・システムまたはデバイスのような、単一のネットワーク、または複数のネットワーク９０５０に接続されたコンピューティング・デバイス９０００及び他のデバイス９０６０間でデータを交換することを可能にするように構成されることができる。さまざまな実施形態において、ネットワーク・インタフェース９０４０は、たとえば、イーサネット（登録商標）・ネットワークのタイプのような、任意の適切な有線の、または無線の一般的なデータ・ネットワークを介する通信を支援することができる。加えて、ネットワーク・インタフェース９０４０は、アナログ音声ネットワーク、若しくはデジタル・ファイバ通信ネットワークのようなテレコミュニケーション／電話ネットワークを介する、ファイバ・チャネルＳＡＮのようなストレージ・エリア・ネットワークを介する、または任意の他の適切なタイプのネットワーク及び／またはプロトコルを介する通信を支援することができる。
【００５７】
いくつかの実施形態において、システム・メモリ９０２０は、対応する方法及び装置の実施形態を実装するために図１〜図８について上述されるような、プログラム命令及びデータを格納するように構成されたコンピュータ・アクセス可能な媒体の１つの実施形態であってもよい。しかしながら、他の実施形態において、プログラム命令及び／またはデータを、異なるタイプのコンピュータ・アクセス可能な媒体で受信する、送信する、または格納することができる。一般的に言えば、コンピュータ・アクセス可能な媒体は、磁気または光媒体、たとえば、Ｉ／Ｏインタフェース９０３０を介してコンピューティング・デバイス９０００に結合されたディスクまたはＤＶＤ／ＣＤのような、非一時的なストレージ・メディア、またはメモリ・メディアを含むことができる。また非一時的なコンピュータ・アクセス可能なストレージ・メディアは、システム・メモリ９０２０、または別のタイプのメモリとしてコンピューティング・デバイス９０００のいくつかの実施形態に含まれることができる、ＲＡＭ（たとえば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどのような任意の揮発性、または不揮発性媒体を含むことができる。さらに、コンピュータ・アクセス可能な媒体は、ネットワーク・インタフェース９０４０を介して実装されることができるような、ネットワーク及び／または無線リンクのような通信媒体を介して伝達された、電気、電磁、またはデジタル信号のような、伝送媒体または信号を含むことができる。図９で図示されるような、部分の、またはすべての複数のコンピューティング・デバイスは、さまざまな実施形態で記述された機能性を実装するために使用されることができ、たとえば、さまざまな異なるデバイス及びサーバ上で実行するソフトウェア・コンポーネントは、連携して、この機能性を提供することができる。いくつかの実施形態において、記述された機能性の部分は、汎用コンピュータ・システムを使用して実装されることに加えて、またはこのことの代わりに、ストレージ・デバイス、ネットワーク・デバイス、または専用コンピュータ・システムを使用して実装されることができる。本明細書で使用されるような、用語「コンピューティング・デバイス」は、少なくともすべてのこれらのタイプのデバイスを指すが、これらのタイプのデバイスに限定されない。
【００５８】
結論
さまざまな実施形態は、コンピュータ・アクセス可能な媒体上に前述の説明に従い実装された命令及び／またはデータを受信すること、送信すること、または格納することをさらに備えることができる。一般的に言えば、コンピュータ・アクセス可能な媒体は、ネットワーク及び／または無線リンクのような通信媒体を介して伝達された、磁気または光媒体、たとえば、ディスクまたはＤＶＤ／ＣＤ−ＲＯＭのようなストレージ・メディアまたはメモリ・メディア、ＲＡＭ（たとえば、ＳＤＲＡＭ、ＤＤＲ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどのような揮発性または不揮発性媒体、及び電気、電磁、またはデジタル信号のような伝送媒体または信号を含むことができる。
【００５９】
図で図示され、本明細書で記述されるような、さまざまな方法は、方法の例示的な実施形態を表現する。これらの方法は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実装されることができる。方法の順序は、変更されることができ、さまざまな要素は、追加され、並べ替えられ、結合され、省略され、変更されることなどが可能である。
【００６０】
本開示の恩恵を受ける当業者に明らかであるように、さまざまな修正形態及び変更形態を行うことができる。すべてのこのような修正形態及び変更形態を包含することを意図され、したがって、上述の説明は、制限ではなく例示的な意味で考慮されるものとする。
【００６１】
本開示の実施形態は、以下の条項の観点で記述されることが可能である。
１．１つ以上のコンピュート・インスタンスを含む少なくとも第一インスタンス・ホストを含む、プロバイダ・ネットワークの仮想コンピューティング・サービスの複数のインスタンス・ホスト、
を備え、
前記１つ以上のコンピュート・インスタンスの特定のコンピュート・インスタンスは、
第一アプリケーションと関連した第一オーセンティケータからの第一アイデンティティ・クエリに応答して、第一インスタンス・アイデンティティ名前空間（ＩＩＮ）内の前記特定のコンピュート・インスタンスへ割り当てられる第一暗号で検証可能なアイデンティティ（ＣＶＩ）のインディケーションを提供し、前記第一ＣＶＩが前記第一コンピュート・インスタンスのために指定された暗号鍵ペアと関連し、前記暗号鍵ペアの秘密鍵は、セキュア鍵ストア外部の位置へ前記秘密鍵のコピーを防止するように設定された前記セキュア鍵ストアにより管理され、前記仮想コンピューティング・サービスは、前記特定のコンピュート・インスタンスが前記秘密鍵を使用して、前記第一ＣＶＩの前記インディケーションを提供することを可能にし、
前記第一ＣＶＩが前記第一オーセンティケータにより受諾された判定に応答して、前記第一アプリケーションの１つ以上の操作を実行し、
第二アプリケーションと関連した第二オーセンティケータから第二アイデンティティ・クエリに応答して、別のＩＩＮ内の前記第一コンピュート・インスタンスに割り当てられた別のＣＶＩのインディケーションを提供し、
前記第二ＣＶＩが前記第二オーセンティケータにより受諾された判定に応答して、前記第二アプリケーションの１つ以上の操作を実行する、
ように設定される、
システム。
【００６２】
２．前記第一ＣＶＩの前記インディケーションは、公開鍵基盤（ＰＫＩ）標準に従いフォーマットされた第一証明書を含む、条項１に記載の前記システム。
【００６３】
３．前記特定のコンピュート・インスタンスは、
前記第一インスタンス・ホストの仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを呼び出し、前記第一ＣＶＩの前記インディケーション内に含まれた少なくとも１つのアーティファクトを取得する、
ようにさらに設定される、条項１に記載の前記システム。
【００６４】
４．前記セキュア鍵ストアは、（ａ）プロバイダ・ネットワークのセキュリティ・サービスのハードウェア・セキュリティ・モジュール、または（ｂ）前記第一インスタンス・ホストの通信バスに接続された周辺機器、のうちの１つを含む、条項１に記載の前記システム。
【００６５】
５．前記第一ＣＶＩは、
（ａ）前記特定のコンピュート・インスタンスに割り当てられた仮想ＩＰ（インターネット・プロトコル）アドレスに少なくとも部分的に基づき前記特定のコンピュート・インスタンスのＤＮＳ（ドメイン名システム）名、（ｂ）前記特定のコンピュート・インスタンスに割り当てられたパブリックＩＰアドレス、（ｃ）前記特定のコンピュート・インスタンスに割り当てられたプライベートＩＰアドレス、（ｄ）ＶＣＳ定義の名前空間から前記プロバイダ・ネットワークの前記仮想コンピューティング・サービス（ＶＣＳ）により前記特定のコンピュート・インスタンスに割り当てられた一意の名前、（ｅ）前記プロバイダ・ネットワークの顧客により顧客定義の名前空間から選択された一意の名前、（ｆ）前記プロバイダ・ネットワークの顧客によりＶＣＳ定義の名前空間から選択された名前、（ｇ）前記プロバイダ・ネットワークの顧客により選択されたＤＮＳ名、または（ｈ）第三者により定義された名前空間内の前記特定のコンピュート・インスタンスに割り当てられた名前、のうちの１つ以上を含む、条項１に記載の前記システム。
【００６６】
６．プロバイダ・ネットワークに仮想コンピューティング・サービスのインスタンス・ホストで、１つ以上のコンピュート・インスタンスを起動し、
前記１つ以上のコンピュート・インスタンスの第一コンピュート・インスタンスで、第一アイデンティティ・クエリを受信し、
前記第一アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、第一インスタンス・アイデンティティ名前空間（ＩＩＮ）内に前記第一コンピュート・インスタンスに割り当てられた第一暗号で検証可能なアイデンティティ（ＣＶＩ）のインディケーションを提供し、前記第一ＣＶＩは、暗号鍵ペアと関連し、前記暗号鍵ペアの秘密鍵は、前記秘密鍵のコピーを防止するように設定されたセキュア鍵ストアにより管理され、前記仮想コンピューティング・サービスは、前記第一コンピュート・インスタンスが前記秘密鍵を使用し、前記第一ＣＶＩの前記インディケーションを提供することを可能にし、
前記第一コンピュート・インスタンスで、第二アイデンティティ・クエリを受信し、
前記第二アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、別のＩＩＮ内の前記第一コンピュート・インスタンスへ割り当てられた別のＣＶＩのインディケーションを提供する、
ことを備える、方法。
【００６７】
７．前記第一ＣＶＩの前記インディケーションは、公開鍵基盤（ＰＫＩ）標準に従いフォーマットされた第一証明書を含む、条項６に記載の前記方法。
【００６８】
８．前記第一コンピュート・インスタンスにより、前記インスタンス・ホストの仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを呼び出し、前記第一ＣＶＩの前記インディケーション内に含まれたアーティファクトの少なくとも部分を取得する、
ことをさらに備える、条項６に記載の前記方法。
【００６９】
９．前記第二ＣＶＩは、別の暗号鍵ペアと関連する、条項６に記載の前記方法。
【００７０】
１０．前記セキュア鍵ストアは、（ａ）プロバイダ・ネットワークのセキュリティ・サービスのハードウェア・セキュリティ・モジュール、または（ｂ）前記インスタンス・ホストの通信バスに接続された周辺機器、のうちの１つを含む、条項６に記載の前記方法。
【００７１】
１１．前記第一ＣＶＩは、（ａ）前記第一コンピュート・インスタンスに割り当てられた仮想ＩＰ（インターネット・プロトコル）アドレスに少なくとも部分的に基づき前記第一コンピュート・インスタンスのＤＮＳ（ドメイン名システム）名、（ｂ）前記第一コンピュート・インスタンスに割り当てられたパブリックＩＰアドレス、（ｃ）前記第一コンピュート・インスタンスに割り当てられたプライベートＩＰアドレス、（ｄ）仮想コンピューティング・サービス（ＶＣＳ）定義の名前空間から前記プロバイダ・ネットワークのＶＣＳにより前記第一コンピュート・インスタンスに割り当てられた一意の名前、（ｅ）前記プロバイダ・ネットワークの顧客により顧客定義の名前空間から選択された一意の名前、（ｆ）前記プロバイダ・ネットワークの顧客によりＶＣＳ定義の名前空間から選択された名前、（ｇ）前記プロバイダ・ネットワークの顧客により選択されたＤＮＳ名、または（ｈ）第三者により定義された名前空間内の前記特定のコンピュート・インスタンスに割り当てられた名前、のうちの１つ以上を備える、条項６に記載の前記方法。
【００７２】
１２．前記第一ＣＶＩの前記インディケーションは、（ａ）公的認証局（ＣＡ）、（ｂ）前記プロバイダ・ネットワーク内に実装された検証局、（ｃ）前記第一コンピュート・インスタンスを割り当てる前記プロバイダ・ネットワークの顧客により所有された顧客ネットワーク内に実装された検証局、または（ｄ）第三者検証局、のうちの１つ以上を備えるアイデンティティ・バリデータを含む、条項６に記載の前記方法。
【００７３】
１３．前記第一アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、前記第一ＣＶＩの第一有効期間のインディケーションを提供し、
前記第二アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、前記第二ＣＶＩの第二有効期間のインディケーションを提供し、前記第二有効期間は、前記第一有効期間と異なる、
ことをさらに備える、条項６に記載の前記方法。
【００７４】
１４．前記プロバイダ・ネットワークのコントロール・プレーン・コンポーネントで、前記第一コンピュート・インスタンスが前記第一ＩＩＮ内にアイデンティティを割り当てられることを示すインスタンス設定要求を受信し、
前記インスタンス設定要求に応答して前記コントロール・プレーン・コンポーネントにより、前記第一ＩＩＮ内に前記第一コンピュート・インスタンスへのアイデンティティの割り当てを開始する、  
ことをさらに備える、条項６に記載の前記方法。
【００７５】
１５．前記第一アイデンティティ・クエリは、第一アプリケーションと関連したライセンス・マネージャから前記第一コンピュート・インスタンスで受信され、前記第一ＣＶＩは、前記ライセンス・マネージャにより使用され、前記第一コンピュート・インスタンスが前記第一アプリケーションを利用するライセンスを供与されることを検証する、条項６に記載の前記方法。
【００７６】
１６．前記プロバイダ・ネットワークで実装された特定のサービスのサービス・マネージャにより、第二コンピュート・インスタンス、及び第三コンピュート・インスタンスを備えるインスタンス・フェイルオーバー・グループを確立し、前記第二コンピュート・インスタンスで障害の場合には、前記第二コンピュート・インスタンスで実行していたアプリケーションは、前記第三コンピュート・インスタンスへフェイルオーバーされ、
前記サービス・マネージャにより、（ａ）前記第二コンピュート・インスタンスへの共有されたＣＶＩの割り当て、及び（ｂ）前記第三コンピュート・インスタンスへの前記共有されたＣＶＩの割り当てを開始し、前記共有されたＣＶＩは、前記アプリケーションを前記第二コンピュート・インスタンスで、及び前記第三コンピュート・インスタンスで実行可能であることを検証するために使用される、
ことをさらに備える、条項６に記載の前記方法。
【００７７】
１７．１つ以上のプロセッサで実行されるときに、
仮想コンピューティング・サービスの第一コンピュート・インスタンスで、第一アイデンティティ・クエリを受信し、
前記第一アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、第一インスタンス・アイデンティティ名前空間（ＩＩＮ）内に前記第一コンピュート・インスタンスに割り当てられた第一暗号で検証可能なアイデンティティ（ＣＶＩ）のインディケーションを提供し、前記第一ＣＶＩは、暗号鍵ペアと関連し、前記暗号鍵ペアの秘密鍵は、前記秘密鍵のコピーを防止するように設定されたセキュア鍵ストアにより管理され、前記仮想コンピューティング・サービスは、前記第一コンピュート・インスタンスが前記秘密鍵を使用して、前記第一ＣＶＩの前記インディケーションを提供することを可能にし、
前記第一コンピュート・インスタンスで、第二アイデンティティ・クエリを受信し、
前記第二アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、別のＩＩＮ内の前記第一コンピュート・インスタンスに割り当てられた別のＣＶＩのインディケーションを提供する、
プログラム命令を格納する非一時的なコンピュータ・アクセス可能な記憶媒体。
【００７８】
１８．前記第一ＣＶＩの前記インディケーションは、公開鍵基盤（ＰＫＩ）標準に従いフォーマットされた第一証明書を含む、条項１７に記載の前記非一時的なコンピュータ・アクセス可能な記憶媒体。
【００７９】
１９．前記１つ以上のプロセッサで実行されるときに、前記命令は、
前記第一コンピュート・インスタンスから、インスタンス・ホストの仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを呼び出し、前記第一ＣＶＩの前記インディケーション内に含まれたデータの少なくとも部分を取得する、
条項１７に記載の前記非一時的なコンピュータ・アクセス可能な記憶媒体。
【００８０】
２０．前記第一ＣＶＩは、（ａ）前記インスタンスに割り当てられた仮想ＩＰ（インターネット・プロトコル）アドレスに少なくとも部分的に基づく前記第一コンピュート・インスタンスのＤＮＳ（ドメイン名システム）名、（ｂ）前記第一コンピュート・インスタンスに割り当てられたパブリックＩＰアドレス、（ｃ）前記第一コンピュート・インスタンスに割り当てられたプライベートＩＰアドレス、（ｄ）ＶＣＳ定義の名前空間からプロバイダ・ネットワークの仮想コンピューティング・サービス（ＶＣＳ）により前記第一コンピュート・インスタンスに割り当てられた一意の名前、（ｅ）プロバイダ・ネットワークの顧客により顧客定義の名前空間から選択された一意の名前、（ｆ）プロバイダ・ネットワークの顧客によりＶＣＳ定義の名前空間から選択された名前、（ｇ）プロバイダ・ネットワークの顧客により選択されたＤＮＳ名、または（ｈ）第三者により定義された名前空間内の前記第一コンピュート・インスタンスに割り当てられた名前、のうちの１つ以上を備える、条項１７に記載の前記非一時的なコンピュータ・アクセス可能な記憶媒体。
【図１】
0006521337.tif 000002
【図２】
0006521337.tif 000003
【図３】
0006521337.tif 000004
【図４】
0006521337.tif 000005
【図５】
0006521337.tif 000006
【図６】
0006521337.tif 000007
【図７】
0006521337.tif 000008
【図８】
0006521337.tif 000009
【図９】
0006521337.tif 000010