JP6521337B2 - マルチファセット・コンピュート・インスタンス・アイデンティティ - Google Patents

マルチファセット・コンピュート・インスタンス・アイデンティティ Download PDF

Info

Publication number
JP6521337B2
JP6521337B2 JP2017531524A JP2017531524A JP6521337B2 JP 6521337 B2 JP6521337 B2 JP 6521337B2 JP 2017531524 A JP2017531524 A JP 2017531524A JP 2017531524 A JP2017531524 A JP 2017531524A JP 6521337 B2 JP6521337 B2 JP 6521337B2
Authority
JP
Japan
Prior art keywords
instance
cvi
compute instance
identity
compute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017531524A
Other languages
English (en)
Other versions
JP2018501565A (ja
Inventor
シグネッティ,トッド・ローレンス
ボーウェン,ピーター・ザッカリー
ドエイン,アンドリュー・ジェフリー
ショーフ,アレクサンダー・エドワード
Original Assignee
アマゾン・テクノロジーズ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アマゾン・テクノロジーズ・インコーポレーテッド filed Critical アマゾン・テクノロジーズ・インコーポレーテッド
Publication of JP2018501565A publication Critical patent/JP2018501565A/ja
Application granted granted Critical
Publication of JP6521337B2 publication Critical patent/JP6521337B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Description

多くの企業、及び他の組織は、たとえば、コンピューティング・システムが同じ場所に設置されながら(たとえば、ローカル・ネットワークの部分として)、またはその代替に複数の別個の地理的位置内に設置されながら(たとえば、1つ以上の私設または公共中間ネットワークを介して接続されながら)、複数のコンピューティング・システムを相互接続し、それらの操作を支援するコンピュータ・ネットワークを運営する。たとえば、著しい数の相互接続されたコンピューティング・システムを収容するデータ・センタは、単一の組織により、及びこれの代わりに運営される個人データ・センタ、ならびに顧客へコンピューティング・リソースを提供するビジネスとしてエンティティにより運営される公共データ・センタのように一般的になってきている。いくつかの公共データ・センタのオペレータは、さまざまな顧客が所有するハードウェアのための、ネットワーク・アクセス、電源、及び安全な設置設備を提供し、他の公共データ・センタのオペレータは、それらの顧客による使用のために利用可能にされたハードウェア・リソースも含む「フル・サービス」設備を提供する。
コモディティ・ハードウェアのための仮想化技術の出現は、さまざまなコンピューティング・リソースを複数の顧客が効率的かつ安全に共有することを可能にする、多様なニーズをもつ多くの顧客のために大規模なコンピューティング・リソースを管理することに関する利益を提供している。たとえば、仮想化技術は、単一の物理コンピューティング・マシンによりホストされた1つ以上の仮想マシンを各ユーザに提供することにより、複数のユーザ間で単一の物理コンピューティング・マシンを共有することを可能にできる。このような各仮想マシンは、ユーザが所与のハードウェア・コンピューティング・リソースの唯一のオペレータ及び管理者である錯覚をユーザに与える別個の論理コンピューティング・システムとして機能するソフトウェア・シミュレーションと考えられることが可能であり、さまざまな仮想マシン間でアプリケーション隔離も提供する。
公共データ・センタで実施される仮想化されたコンピューティング・サービスは、いくつかのこのようなコンピュート・インスタンスが1つ以上のサービス・クライアントの代わりに所与のハードウェア・サーバ上に頻繁にホストされながら、「コンピュート・インスタンス」の形式でクライアント使用のためにコンピューティング能力をパッケージ化することができる。つぎにクライアントは、コンピュート・インスタンスでアプリケーションの所望のセットを実行し、仮想コンピューティング・サービスのウェブ・ベースのコンソールを介して管理操作を頻繁に実行することができる。多くの事例において、クライアントは、コンピュート・インスタンスを使用して、アイデンティティ検証を要求するアプリケーションを実行したい可能性がある、すなわち、コンピュート・インスタンスのためのパーミッションを取得し、アプリケーションのさまざまなタスクを実行するために、または他のサービスから作業操作を要求するために、このインスタンスのアイデンティティは、検証されなければならない可能性がある。侵入者がさまざまなネットワーク及びサービスに攻撃する頻度及び高度さが増すにつれて、仮想化されたコンピューティング・サービスのクライアントは、リソース・アイデンティティ検証用の高度にセキュアなメカニズムについてサポートを提供しないコンピュート・インスタンス、または他のリソースを利用したがらなくなる可能性がある。
少なくともいくつかの実施形態により、仮想コンピューティング・サービスで実装されたコンピュート・インスタンスがそれぞれの名前空間内のいくつかの異なる暗号で検証可能なアイデンティティ(CVI)を割り当てられることができる例示的なシステム環境を図示する。 少なくともいくつかの実施形態により、コンピュート・インスタンスに割り当てられることができるアイデンティティのタイプの実施例を図示する。 少なくともいくつかの実施形態により、複数のアプリケーション、及びコンピュート・インスタンスの認証コンポーネント間でのインタラクションの実施例を図示する。 少なくともいくつかの実施形態により、コンピュート・インスタンスがセキュア鍵ストアにより管理された転送不可能な秘密鍵を利用することを可能にするプログラマティック・インタフェースを実装することができるインスタンス・ホストの実施例を図示する。 少なくともいくつかの実施形態により、クライアント、及びインスタンス設定マネージャ間でアイデンティティ関連のコントロール・プレーン・インタラクションの実施例を図示する。 少なくともいくつかの実施形態により、インスタンス設定マネージャに提示されたアイデンティティ割り当て要求に含まれることができるアイデンティティ記述子の例示的なコンテンツを図示する。 少なくともいくつかの実施形態により、インスタンス・アイデンティティ割り当てに関する管理要求に応答するように実行されることができる操作の態様を図示する流れ図である。 少なくともいくつかの実施形態により、それぞれの名前空間内の1つ以上のアイデンティティが割り当てられているコンピュート・インスタンスで実行されることができる操作の態様を図示する流れ図である。 少なくともいくつかの実施形態で使用されることができる例示的なコンピューティング・デバイスを図示するブロック図である。
実施形態は、いくつかの実施形態、及び例示的な図面について実施例の方式で本明細書に記述されるが、当業者は、実施形態が記述された実施形態または図面に限定されないことを認識するであろう。図面及びその詳細な記述が開示された特定の形式へ実施形態を限定することを意図されないが、対照的に、この意図が添付の特許請求の範囲により定義されるように趣旨及び範囲内に入るすべての修正形態、均等物及び代替物を網羅することを理解するであろう。本明細書で使用された表題は、編成目的のみのためであり、この説明の範囲、または特許請求の範囲を限定するために使用されることを意図されない。本出願を通して使用されるように、単語「may(ことができる)」は、強制的な意味(すなわち、しなければならないことを意味する)よりもむしろ、許容的な意味(すなわち、潜在的な可能性を有することを意味する)で使用される。同様に、単語「include(を含む)」、「including(を含む)」、及び「includes(を含む)」は、含むが限定されないことを意味する。
プロバイダ・ネットワークでコンピュート・インスタンスへのそれぞれの名前空間内に複数の暗号で検証可能なアイデンティティ(CVI)を割り当てる、管理する、及び使用するための方法及び装置のさまざまな実施形態を記述する。所与のコンピュート・インスタンスへの複数のアイデンティティの割り当ては、それぞれのアプリケーション、またはアプリケーション・セットのために独立して検証され、使用されることが各可能であり、マルチファセット・アイデンティティ割り当てと本明細書で言われることができる。クライアントまたは顧客の分散されたセットへインターネット及び/または他のネットワークを介してアクセス可能な1つ以上のサービス(マルチテナント及び/またはシングルテナントのクラウド・ベースのコンピューティングまたはストレージ・サービスのさまざまなタイプのような)を提供するために企業または公共部門組織のようなエンティティによりセットアップされたネットワークは、このドキュメントでプロバイダ・ネットワークと言われることができる。プロバイダ・ネットワークは、「公共クラウド」環境と言われることができる。用語「マルチテナント・サービス」は、異なるクライアント・エンティティがサービスのそれぞれのカスタマイズ可能な、隔離されたビューを提供される、このような方式でアプリケーション及び/またはデータ仮想化を実施するように設計されるサービスを指すために本明細書で使用されることができるため、サービス機能の部分が所与の1セットの基礎となるリソースを使用して提供されている1人のクライアントは、このセットのリソースがまた他のクライアントのために使用されていることに気付かないことができる。たとえば、マルチテナント仮想化コンピューティング・サービス(VCS)は、ハードウェア・サーバが他のクライアントと共有されているクライアントのいずれかに必ずしも通知する必要がない、所与のハードウェア・サーバでそれぞれのクライアントの代わりに、いくつかの異なるコンピュート・インスタンス(ゲスト仮想マシン)を生成することができる。コンピュート・インスタンスは、本明細書で「インスタンス」と単純に言われることができ、1つ以上のコンピュート・インスタンスを実行するハードウェア・サーバは、「インスタンス・ホスト」、または「仮想化ホスト」と言われることができる。プロバイダ・ネットワークは、いくつかの実施形態において、シングルテナント・サービスを支援することができ、マルチテナント・サービスに加えて、またはこれらの代わりに、のいずれか一方で、インスタンス・ホストのようなリソースは、所与の期間にシングルテナント・モード、またはマルチテナント・モード内で使用されることができる。プロバイダ・ネットワークは、プロバイダにより提供されたインフラストラクチャ及びサービスを実装し、設定し、配信するために必要な、物理的な、及び/または仮想化されたコンピュータ・サーバ、ストレージ・デバイス、ネットワーキング機器、セキュリティ関連機器、及び同様のもののコレクションのような、さまざまなリソース・プールをホストするいくつかの大規模なデータ・センタを一般的に含むことができる。
受諾された仮想化アプローチに従い、コンピュート・インスタンス及びインスタンス・ホスト間のマッピング(たとえば、所与のホスト、またはインスタンスがホストを共有するクライアントのアイデンティティで実行されるコンピュート・インスタンス数)と同様に、インスタンス・ホスト(使用されているプロセッサまたはコアの絶対性能能力、またはホストを物理的に設置する特定のデータ・センタのような)についての詳細は、少なくともいくつかの事例において、クライアントの代理人がコンピュート・インスタンスを実行するクライアントへ利用不可能であり得る。各インスタンス・ホストで、VCSは、明らかなセキュリティ上の理由のためにクライアントへアクセス不可能でもよい、ハイパーバイザ、管理オペレーティング・システム・ドメイン、及び同様のもののような、1つ以上の仮想化管理コンポーネントを含む仮想化管理ソフトウェアを一般的に展開することができる。いくつかの実施形態において、コンピュート・インスタンスの異なるタイプまたはカテゴリ(たとえば、1つ以上のオペレーティング・システムに対応する「小規模」、「中規模」、または「大規模」インスタンス)は、各インスタンス・タイプの相対的な能力、及び対応する価格設定ポリシーのいくつかのインディケーションを潜在的なクライアントに利用可能にさせながら、コンピューティング・サービスにより定義されることができる。インスタンス・タイプの定義を与えられると、1つの実施形態において、クライアントは、緩やかに地理的に定義された「領域」のようなプロバイダ・ネットワークのいくつかの階層的なサブユニット内で取得したい各タイプのインスタンス数を選択することが可能であり得る。
プロバイダ・ネットワークのいく人かのクライアントは、他のものよりクライアントのアプリケーションのうちの少なくともいくつかのためにより高水準のセキュリティ及び/またはアイデンティティ検証を要求する可能性がある(本明細書で使用されるような、用語、アプリケーションが、ユーザ・モード、カーネル/システム・モード、またはユーザ及びカーネル/システム・モードの組み合わせで実行することができる、任意のタイプの実行可能なプログラム・コンポーネント、またはコンポーネントの組み合わせを指すことができることに留意する)。特に、多くの異なるVCSクライアントのために所与のハードウェア・サーバを使用することを可能にできる事実からみて、クライアントは、外部エンティティ(別のサービスを実装するサーバのような)が真にインタラクトする所与のコンピュート・インスタンスがそうであることを所与のコンピュート・インスタンスが主張するコンピュート・インスタンスである、あるレベルの保証を得たい可能性がある。いくつかの実施形態において、このような保証を手作業で(たとえば、VCSにより実装された管理コンソールとのインタラクションを介して)提供することは、VCSユーザのために可能であり得るが、このような手作業でのアプローチは、周知のようにエラーを起こしやすく、侵入者を許す可能性がある。
少なくともいくつかの実施形態において、コンピュート・インスタンスで、またはこれらにより実行されたさまざまなタイプのセキュリティ関連の操作のために使用可能である、転送不可能な暗号強度鍵を提供するメカニズムは、仮想コンピューティング・サービスで実装されることができる。このようなメカニズムにより、所与のコンピュート・インスタンスと関連したアイデンティティ検証操作のために使用される暗号強度鍵ペアの秘密鍵は、セキュア鍵ストアで格納される、及び/または管理されることができるため、秘密鍵自体は、この鍵ペアが使用されるコンピュート・インスタンスにより(または任意の他のコンピュート・インスタンスにより)コピーされる、または検査されることが不可能である。このインタフェースの呼び出し元またはユーザに秘密鍵を公開しないで、コンピュート・インスタンスにより秘密鍵の使用を有効にする(たとえば、デジタル署名のようなアイデンティティ関連の暗号化アーティファクトを生成するために、または取得するために)プログラマティック・インタフェースは、少なくともいくつかの実施形態で1つ以上のVCSコンポーネントにより実装されることができる。インスタンス・ホストでハイパーバイザまたは管理ドメイン・オペレーティング・システムのような仮想化管理コンポーネントは、1つの実施形態において転送不可能な鍵でこのような操作のために1つ以上のAPI(アプリケーション・プログラミング・インタフェース)を実装することができ、そのホストで実行するコンピュート・インスタンスは、インスタンスに割り当てられた1つ以上の暗号で検証可能なアイデンティティをアサートするために使用されるアーティファクトまたはメタデータを取得するこのようなAPIを呼び出すことができる。いくつかの実装において、セキュア鍵ストアは、インスタンス・ホストに設置されることができる、たとえば、インスタンス・ホストのロー・ピン・カウント・バス、またはPCIe(ペリフェラル・コンポーネント・インターコネクト・エクスプレス)バスのような通信バスを介して接続されたトラステッド・プラットフォーム・モジュール(TPM)、または同様の周辺機器は、秘密鍵を格納することができる。他の実施形態において、仮想化管理コンポーネントから、及び/またはコンピュート・インスタンスからネットワークを介してアクセス可能であるハードウェア・セキュリティ・モジュール(HSM)のような、外部セキュア鍵ストアを使用することができる。少なくとも1つの実施形態において、複数の暗号鍵ペアは、各このような鍵ペアの秘密鍵が上述のようにセキュア鍵ストアにより管理されながら、所与のコンピュート・インスタンスのために指定されることができ、他の実施形態において、単一の鍵ペアのみは、所与のコンピュート・インスタンスのために使用されることができる。複数の鍵ペアを所与のコンピュート・インスタンスに割り当てる、いくつかの実装において、いくつかの鍵ペアの秘密鍵は、所与のセキュア鍵ストア(たとえば、コンピュート・インスタンスが起動するインスタンス・ホストでのローカルTPM、またはネットワーク経由で到達したリモートHSM)により管理されることができ、他の実装において、各秘密鍵は、それぞれのセキュア鍵ストアにより管理されることができる。
所与のコンピュート・インスタンスを使用するアプリケーションのセットにより、少なくともいくつかの実施形態でインスタンスへそれぞれの名前空間内のいくつかの異なるアイデンティティまたは名前を割り当てることができる。各アイデンティティは、たとえば、信頼チェーン内に組織される、それぞれのアイデンティティ検証局によりデジタル署名されたX.509、若しくは他の同様のデジタル証明書を活用して、または任意の適切な暗号アルゴリズムを使用して、暗号で検証可能であり得る。コンピュート・インスタンスのために指定された鍵ペアの公開鍵は、秘密鍵が上述されるようにセキュア鍵ストアで管理されながら、及び/または格納されながら、いくつかの実施形態でこのような証明書内に示されることができる。各このようなアイデンティティは、本明細書において暗号で検証可能なアイデンティティ(CVI)と言われることができる。少なくともいくつかの実施形態で、仮想化されたコンピューティング・サービスは、所与のコンピュート・インスタンスが1つ以上の暗号鍵を使用することを可能にし(たとえば、このインスタンスが秘密鍵を使用するために要求されたAPIを使用することを可能にする適切なパーミッションを与えることで、鍵及びインスタンス間の一意のバインディングを生成することで、セキュア鍵ソースを設定することで、及びその他のことで)、その単一のCVI、または複数のCVIをアサートするために必要なアーティファクトを生成することができる。複数の異なるタイプのCVIは、少なくともいくつかの実施形態において所与のコンピュート・インスタンスへ指定される、またはこれに割り当てられることができる。たとえば、VCSは、1つのCVIとして1つの実施形態でコンピュート・インスタンスへ仮想IP(インターネット・プロトコル)アドレスに少なくとも部分的に基づきDNS(ドメイン名システム)名を割り当てることができる(このようなIPアドレスは、たとえば、物理ネットワーク・インタフェース・カードの再構成を要求しないで、VCSにより一方のコンピュート・インスタンスから他方へプログラムで転送されることができるため、本明細書で「仮想」と言われることができる)。たとえば、VCSは、仮想IPアドレス54.87.134.66をインスタンスに割り当てることができ、DNS名前空間内で一意である<VCS−service−name>−54−87−134−66−<geographical−container>−<vcs−domain−name>のような名前は、CVIとして割り当てられることができる。同一のコンピュート・インスタンスも、たとえば、顧客定義の名前空間内に、第二CVIを割り当てられることができる。顧客は、たとえば、App1−Node0、App1−Node1、App1−Node2などのような、名前を使用して特定のアプリケーション・クラスタのそれぞれのノードとして構成されたすべてのコンピュート・インスタンスを識別したい可能性がある。顧客のアプリケーション環境の他のコンポーネント(これらのうちのいくつかは、コンピュート・インスタンスのために使用されるプロバイダ・ネットワーク内で実行していることができ、他のものは、外部ネットワークに配置されることができる)と通信するときに、第二CVIは、第一の代わりに使用されることができる。同様に、特定の第三者ソフトウェア・サービスのために(またはローカルにインストールされたソフトウェアのために)ライセンス・ホルダとしてコンピュート・インスタンスを識別する第三CVIは、コンピュート・インスタンスに割り当てられ、このインスタンスからの第三者ソフトウェア・サービスの使用を可能にできる。いくつかの実施形態において、第三者名前空間、たとえば、プロバイダ・ネットワーク・オペレータの(またはクライアントの)ビジネス・パートナーにより管理された名前空間内へのCVIの割り当ても支援することができる。したがって、一般的に、それぞれの名前空間内のさまざまな異なるCVIは、さまざまな実施形態で所与のコンピュート・インスタンスへ割り当てられることができる。名前空間は、本明細書でインスタンス・アイデンティティ名前空間(IIN)と言われることができ、各このような名前空間は、異なるインスタンスに割り当てられる特定の名前を選択する、それぞれの名前空間のために任意の一意性要件を強制する、それぞれの名前空間内でのアイデンティティの検証を担当する関連機関を識別する、及びその他のことをするために、応答可能な関連した名前空間の所有者/管理者を含むことができる。さまざまなコンテキストで役立つかもしれないCVIのタイプの実施例を図2で提供し、以下に記述する。
少なくとも1つの実施形態により、第一アプリケーションと関連した第一オーセンティケータから認証要求のようなアイデンティティ関連のクエリに応答して、複数のCVIが割り当てられているコンピュート・インスタンスは、アプリケーションと関連した第一インスタンス・アイデンティティ名前空間内の第一CVIのインディケーションを提供することができる。アイデンティティ関連のクエリは、いくつかの実装において名前空間を明示的に、若しくは暗示的に示すことができる、またはコンピュート・インスタンスは、クエリのために使用されたAPIの種類、若しくはアイデンティティ関連のクエリを受信するソースに基づき名前空間を推測することが可能であり得る。第一CVIは、第一コンピュート・インスタンスのために指定された暗号鍵ペアと関連することができ、このペアの秘密鍵は、上述されるようにセキュア鍵ストア外部の位置へ秘密鍵のコピーを防止するように設定されたセキュア鍵ストアにより管理される。CVIを示す情報(たとえば、1つ以上の証明書、デジタル署名、または他の暗号で生成されたアーティファクト)を提供することは、本明細書でCVIを「アサートする」と言われることができる。上述されるように、インスタンスによる秘密鍵の使用は、少なくともいくつかの実施形態において仮想化されたコンピューティング・サービスにより有効にされることができ、結果として、このような実施形態において、少なくともいくつかのタイプのCVIを支援するために、VCSの参加及び/または同意を要求する場合がある。いくつかの実施形態において、アイデンティティ関連のクエリに応答して提供される情報を判定するために、コンピュート・インスタンスは、インスタンスが起動するインスタンス・ホストで仮想化管理コンポーネントにより実装された1つ以上のプログラマティック・インタフェースを呼び出すことができる。
第一CVIのインディケーションを受信することに応答して、第一オーセンティケータは、請求されたアイデンティティが有効であることを確認する(たとえば、コンピュート・インスタンスにより提供された証明書に信頼できる当事者が署名することを確実にすることで、及び/またはインスタンスの公開鍵を使用してコンピュート・インスタンスにより提供されたデジタル署名を解読すること、及び検証することで)ことができる。いくつかの事例において、オーセンティケータは、他のエンティティ(たとえば、名前空間のために指定された1つ以上のアイデンティティ・バリデータ)と通信し、アサートされたアイデンティティが有効であることを確認しなければならない可能性がある。アイデンティティを正常に検証する場合に、コンピュート・インスタンスは、第一アプリケーションの1つ以上の操作を実行することを許可されることができ、このようなパーミッションのインディケーションは、コンピュート・インスタンスへ送信されることができる。同様に、別のアプリケーション、及び別のIINと関連した別のオーセンティケータから第二アイデンティティ関連のクエリに応答して、コンピュート・インスタンスは、それに割り当てられた第二CVIのインディケーションを提供することができる。つぎに第二CVIは、たとえば、第一CVIに関して上述されるものと同様のアプローチを使用するが第二IINのコンテキスト内の、第二オーセンティケータにより確認されることができる。第二CVIが有効であると判明する場合に、コンピュート・インスタンスは、第二アプリケーションの操作を実行することを許可されることができる。同様のインタラクションは、コンピュート・インスタンスに割り当てられた各異なるCVIについて要求されることができる、すなわち、コンピュート・インスタンスは、各いくつかの異なるアプリケーション・コンテキストについてのそれぞれのCVIをアサートしなければならない場合がある。いくつかの実施形態において、所与のCVIは、いくつかの異なるアプリケーション・コンテキストのために使用可能であることができ、たとえば、コンピュート・インスタンスは、それぞれのアプリケーションと関連した2つ以上のオーセンティケータからアイデンティティ関連の要求に応答して同一のCVIをアサートすることができる。
異なる実施形態において、幅広い種類のCVIをコンピュート・インスタンスへ割り当てることができる。上記で述べたように、1つのCVIは、複数の異なるアプリケーション・コンテキストで使用されることができ、このインスタンスに割り当てられた仮想IPアドレスに少なくとも部分的に基づくDNS名であってもよい。少なくともいくつかの実施形態において、プロバイダ・ネットワークのコンピュート・インスタンスは、1つ以上のパブリックIPアドレス、及び1つ以上のプライベートIPアドレスを割り当てられることができる。パブリックIPアドレスは、公共インターネットの部分のような外部ネットワークへアドバタイズされる、またはこれらの外部ネットワークからアクセス可能にさせられることができ、プライベートIPアドレスは、プロバイダ・ネットワークの論理的に隔離された部分内にのみアクセス可能であり得る。インスタンスは、いくつかの実施形態において、パブリックIPアドレスに基づくCVI、及び/またはプライベートIPアドレスに基づく別のCVIを割り当てられることができる。インスタンスのために使用されている仮想コンピューティング・サービスは、たとえば、内部管理目的のために、または他のサービス若しくは外部エンティティとのインタラクションのために、のいずれか一方のために、他の名前空間を定義することができる。いくつかの名前空間は、インスタンスがインスタンス化されるデータ・センタ、または他の地理的位置、これらのインスタンスが属する可用性コンテナ(独立した障害プロファイルを有するように設計されるリソース・グループ)、及びその他のものに対応することができ、それぞれの一意の名前は、1つ以上のこのような名前空間内の所与のコンピュート・インスタンスへ割り当てられることができる。いくつかの実施形態において、CVIも、顧客定義の名前空間から顧客により選択される、またはプロバイダ・ネットワーク内で定義された名前空間について顧客により要求されることができる。顧客も、いくつかの実施形態において、コンピュート・インスタンスについてのDNS名前空間から特定の名前の割り当てを要求することができ、たとえば、DNS名、www.<customerCompanyName>.comは、コンピュート・インスタンスのうちの1つ以上についてのVCSのクライアントによりCVIとして要求されることができる。1つの実施形態において、プロバイダ・ネットワーク・オペレータのビジネス・パートナー、または顧客のビジネス・パートナーのような第三者は、さまざまなコンピュート・インスタンスへCVIを選択し、割り当てることが可能であり得る。少なくとも1つの実施形態において、所与のCVIは、複数のコンピュート・インスタンスへ割り当てられることができ、たとえば、複数のコンピュート・インスタンスが特定のサービスまたはアプリケーションのコンテキスト内の、レプリケーション・グループ、またはフェイルオーバー・グループとして編成されるため、グループ・メンバーのうちの1人の責任の少なくとも一部が特定の条件下で別のグループ・メンバーにより引き継がれる場合に、いくつかのグループ・メンバーは、少なくとも1つの共通の、または共有されたCVIを割り当てられることができる。
各名前空間は、いくつかの実施形態において、その名前空間の所有者によりそれへ割り当てられた1つ以上のアイデンティティ・バリデータを有することができる。このようなアイデンティティ・バリデータは、たとえば、いくつかの実施形態において、プロバイダ・ネットワーク外部に、第三者、または公的認証局(CA)を含むことができる。非公開アイデンティティ・バリデータは、いくつかの実施形態において1つ以上の名前空間の名前空間所有者により選択されることができる、たとえば、いくつかの検証局は、プロバイダ・ネットワーク内に実装されることができ(プロバイダ・ネットワークで実装されたVCSまたは他のサービスにより定義された名前空間について)、他のものは、顧客定義の名前空間についての顧客所有のネットワークで実装されることができる。少なくとも1つの実施形態において、名前空間の所有者は、その名前空間についてのアイデンティティ・バリデータとしてそれ自体を指定することができ、たとえば、別個のバリデータを要求しない場合がある。公開の、プロバイダ・ネットワーク所有の、または顧客所有のものであろうと、アイデンティティ・バリデータは、たとえば、1つ以上の名前空間内のコンピュート・インスタンスへ割り当てられたCVIに対応するX.509、または他のデジタル証明書に署名することができる。少なくとも1つの実施形態において、1つより多いアイデンティティをアサートするために所与のデジタル証明書を使用することができ、たとえば、デジタル証明書、及びCVI間の1:Nマッピングを使用することができる。他の実施形態において、それぞれの証明書を各CVIのために使用することができる。
所与のコンピュート・インスタンスへ割り当てられるCVIのうちの少なくともいくつかは、たとえば、CVIがインスタンスについて有効である開始及び/または終了時間を示す、定義された対応する有効期間を有することができる。所与のコンピュート・インスタンスに割り当てられた異なるCVIは、少なくともいくつかの実施形態において異なる有効期間を有することができる。
1つの実施形態において、仮想コンピューティング・サービスにより実装された1つ以上のコントロール・プレーン、または管理インタフェースは、クライアントにより使用され、コンピュート・インスタンスへ指定された名前空間内にアイデンティティの割り当てを要求することができる。アイデンティティ割り当ては、いくつかの実施形態において、インスタンスの起動時に要求されることができる(たとえば、APIを介して提示されたインスタンス起動要求の1つ以上のパラメータを使用して)。1つの実施形態において、アイデンティティ割り当ては、インスタンスを起動した後にインスタンスについてまた、または代わりに要求されることができる。いくつかの実施形態において、クライアントは、指定されたインスタンスから1つ以上のCVIを取り消す、または割り当て解除することが可能であり得る。
例示的なシステム環境
図1は、少なくともいくつかの実施形態により、仮想コンピューティング・サービスで実装されたコンピュート・インスタンスがそれぞれの名前空間内にいくつかの異なる暗号で検証可能なアイデンティティ(CVI)を割り当てられることができる。示されるように、システム100は、仮想化コンピューティング・サービス(VCS)110を実装するプロバイダ・ネットワーク105を含む。VCSは、さまざまなクライアントの代わりに、複数のインスタンス・ホスト125で複数のコンピュート・インスタンス150を確立することができる。たとえば、コンピュート・インスタンス150A及び150Bは、インスタンス・ホスト125Aで、たとえば、それぞれのゲスト仮想マシンとして、セットアップされていて、コンピュート・インスタンス150K及び150Lは、インスタンス・ホスト125Bで確立されている。少なくともいくつかのコンピュート・インスタンス150は、顧客ネットワーク115内のクライアント・デバイス133のような、プロバイダ・ネットワーク外部のデバイスから発行されたインスタンス起動要求に応答してセットアップされることができる。
描写された実施形態において、所与のコンピュート・インスタンス150は、それぞれの名前空間内で0以上の暗号で検証可能なアイデンティティ(CVI)160(たとえば、インスタンスに割り当てられた暗号強度公開・秘密鍵ペアの支援で検証されることが可能であるアイデンティティ)を割り当てられることができる。いくつかの異なるタイプのインスタンス・アイデンティティ名前空間(IIN)144は、それぞれの名前空間の所有者または管理者で、いくつかの実施形態において支援されることができる。名前空間の所有者は、IINを定義し(たとえば、割り当てられることが可能である1セットの名前についてのフォーマット、または割り当てられることが可能である名前の範囲)、所与のコンピュート・インスタンス150へ割り当てられる特定の名前、またはアイデンティティを選択し、名前空間についての1つ以上のアイデンティティ・バリデータの1セットを指定し、及びその他のことをするために応答可能であり得る。描写された実施形態において、IIN144Aは、第三者名前空間の所有者183により管理され、IIN144Bは、顧客定義の名前空間の所有者185により管理され、IIN144Cは、プロバイダ・ネットワークで実装されたサービスS1(VCS以外の)の名前空間の所有者155により管理され、IIN144Dは、VCS名前空間の所有者154により管理される。各IIN144は、CVIについてのそれ自体のシンタックス及びフォーマットを含むことができ、少なくとも1つの実施形態で、アイデンティティのために使用される検証メカニズム及びポリシーは、一方の名前空間から他方へと異なってもよい。用語「名前空間」は、本明細書で語句「インスタンス・アイデンティティ名前空間」と同義で使用されることができる。
各名前空間144に対応する、1つ以上のエンティティは、描写された実施形態においてアイデンティティ・バリデータとして指定されることができる。第三者のアイデンティティ・バリデータ184(公的認証局またはCAのような)は、たとえば、名前空間144AのCVIの真正性を保証するために応答可能であり得る。いく人かの顧客は、自身の顧客管理アイデンティティ・バリデータ186をセットアップすることができる。プロバイダ・ネットワークで実装されたサービスのうちの1つ以上は、VCSアイデンティティ・バリデータ153、及びサービスS1のアイデンティティ・バリデータ(複数可)156のような、アイデンティティ・バリデータをインスタンス化することができる。アイデンティティ・バリデータのうちの少なくともいくつかは、アイデンティティ関連の要求に応答してコンピュート・インスタンス150により提供されることができる、証明書(X.509証明書、または公開鍵基盤標準若しくは仕様に従いフォーマットされる他の同様の証明書のような)にデジタル署名することができる。1つ以上の暗号鍵は、いくつかの実施形態において、インスタンス・アイデンティティをアサートするために使用されるアーティファクトのうちのいくつかと関連することができる。
所与のコンピュート・インスタンスで実行される特定のタイプのアプリケーションにより、任意の所望の数のCVIは、たとえば、クライアントの代わりにインスタンスを確立するクライアントの要求で、それに割り当てられることができる。いくつかの事例において、クライアントは、インスタンスを起動する前に所与のインスタンスについて要求された1セットのアイデンティティのインディケーションを提供することができ、他の事例において、指定された名前空間内の新規のアイデンティティは、インスタンスが実行を開始した後に割り当てられることができる。インスタンス・アイデンティティは、少なくともいくつかの実施形態で、インスタンス所有者からの要求に応じて無効にされることもできる。1つ以上のAPIのような、VCSコントロール・プレーンのプログラマティック・インタフェースを提供し、顧客がさまざまな実施形態においてアイデンティティ割り当て、及び/または無効化要求を示すことを許可する。図1で図示された実施例において、インスタンス150Aは、3つのCVI、名前空間144AのCVI160A、名前空間144BのCVI160L、及び名前空間144DのCVI160Tを割り当てられている。インスタンス150Bは、名前空間144A内にCVI160Bを割り当てられている。インスタンス150Lは、名前空間144BのCVI160K、及び名前空間144CのCVI160Pを割り当てられている。インスタンス150Kは、割り当てられたCVIがない。
所与のコンピュート・インスタンスに割り当てられるCVIは、インスタンスがそれ自体を識別することを要求される特定のアプリケーションにより、異なる方式で使用されることができる。少なくともいくつかの実施形態において、150Aのような所与のインスタンスは、いくつかの他のインスタンス150で、プロバイダ・ネットワークで実装されているS1のような異なるサービスのノードで、またはクライアント・デバイス133のようなプロバイダ・ネットワーク外側のデバイスで、実行するアプリケーションの認証コンポーネントのような、いくつかの他のエンティティから認証要求、または他の同様のアイデンティティ関連のクエリを受信することができる。いくつかの実施形態において、要求は、アイデンティティを要求する名前空間を明示的に、または暗示的に(たとえば、それを受信するそのフォーマットまたはソースに基づいて)示すことができる。つぎにアイデンティティ・クエリを受信するコンピュート・インスタンスは、たとえば、トラステッド・アイデンティティ・バリデータ、またはアイデンティティ・バリデータのチェーンにより署名された証明書のような1つ以上の暗号化アーティファクトを使用して、適切な名前空間内にそのアイデンティティの証拠を提供することができる。少なくともいくつかの実装において、1つ以上のバリデータのインディケーションは、この証拠内に含まれることができる。少なくともいくつかの実施形態において、受信したアイデンティティ・クエリのタイプにより、コンピュート・インスタンスにより提供された証拠は、デジタル証明書より(またはこれらに加えて)他のアーティファクトを含むことができ、たとえば、ポリシー・トークン(コンピュート・インスタンスの秘密鍵を使用して取得された認可ポリシーの暗号化されたバージョン)は、提供されることができる、アイデンティティ・クエリ内に含まれたデータ値は、コンピュート・インスタンスの秘密鍵を使用して署名されることができる、またはインスタンスの公開鍵を使用して解読されることが可能である他のデータは、提供されることができる。コンピュート・インスタンス150へアイデンティティ・クエリまたは要求を送信した認証コンポーネントがインスタンスのアイデンティティを確認することが可能である(たとえば、トラステッド・アイデンティティ・バリデータが証明書またはポリシー・トークンを生成している判定に基づき)場合に、アイデンティティ確認の明示的または暗示的肯定応答は、コンピュート・インスタンス150へ提供されることができる。つぎに検証されたコンピュート・インスタンス150は、そのアイデンティティが認証コンポーネントにより検証されていたアプリケーションまたはインタラクションの後続の動作を実行するように進行することができる。
少なくとも1つの実施形態において、たとえば、特定のコンピュート・インスタンスの排他的使用のために指定された暗号鍵(たとえば、公開・秘密鍵ペアの秘密鍵)と関連した所与のCVIが転送されない、または盗まれないことを確認するために、セキュア鍵ストア133(たとえば、133Aまたは133B)をこの鍵のために使用することができる。このようなセキュア鍵ストアは、たとえば、対応するインスタンスを実行するインスタンス・ホストで仮想化管理コンポーネントにより実装された1セットのAPIを介して、転送不可能な鍵の使用を伴うさまざまな操作を許可することができるが、秘密鍵をセキュア鍵ストアから離れてコピーする、または転送することを許可しないことができる。いくつかの実施形態において、インスタンス・ホストの周辺通信バスに接続されたトラステッド・プラットフォーム・モジュール(TPM)のようなローカル・セキュア鍵ストア133Bを使用することができる。他の実施形態において、プロバイダ・ネットワークで実装されたセキュリティ・サービスのハードウェア・セキュリティ・モジュール(HSM)のような、リモート・セキュア鍵ストア133Aを使用することができる。セキュア秘密鍵への他のメカニズムは、たとえば、HSMまたはTPMの代わりに、いくつかの実施形態で使用されることができる。少なくともいくつかの実施形態において、VCSは、コンピュート・インスタンスがさまざまなCVIをアサートするために必要な単一の暗号鍵(または複数の鍵)を使用することを可能にする(たとえば、使用されるTPM若しくはHSMを設定する、鍵関連のAPIのために適切なパーミッションを付与することで、または他の設定アクションを取ることで)ことができる。
CVI実施例
図2は、少なくともいくつかの実施形態により、コンピュート・インスタンスへ割り当てられることができるアイデンティティのタイプの実施例を図示する。示されるように、コンピュート・インスタンス150は、VCSによりそれに割り当てられた仮想IPアドレスに基づきDNS名260Aを割り当てられることができる。いくつかの実施形態において、DNS名260Aのフォーマットは、VCSサービス(たとえば、<vcs−service−name>)を識別するそれぞれのサブストリング、IPアドレスのドット付き10進表記要素(たとえば、IPv4アドレス54.187.31.66に対応する文字列「54−187−31−66」)、インスタンス(たとえば、<zone>)の地理的位置のいくつかのインディケーション、及びVCSに割り当てられたドメイン名を含むことができる。他の実施形態において、DNS名260Aで示された1つ以上のサブストリングを使用しなくてもよい。
少なくともいくつかの実施形態において、1つ以上のパブリックIPアドレス、及び1つ以上のプライベートIPアドレスは、所与の時点で所与のコンピュート・インスタンスに割り当てられることができ、このようなIPアドレスは、コンピュート・インスタンスのCVIのために使用されることができる。パブリックIPアドレスは、たとえば、BGP(ボーダー・ゲートウェイ・プロトコル)のようなプロトコルを介してアドバタイズされる結果として、公共インターネットの部分からアクセスされることが可能であるものとして定義されることができる。対照的に、プライベートIPアドレスは、たとえば、プロバイダ・ネットワークの1つ以上の隔離された仮想ネットワーク(IVN)内から、1サブセットのプロバイダ・ネットワーク内のみにアクセス可能であり得る。またIVNは、いくつかの環境で、仮想プライベート・クラウドまたはVPCと言われることができる。IVNは、VCSの特定の顧客の要求で確立されることができる、プロバイダ・ネットワーク105の論理的に隔離されたセクション内のコンピューティング及び/または他のリソースのコレクションを含むことができる。顧客は、IVN内に含まれたデバイスについてのネットワーク構成に関する実質的な制御を与えられることができる。いくつかの実施形態において、たとえば、顧客は、IVNのさまざまなコンピュート・インスタンス150のために使用されるプライベートIPアドレス範囲を選択し、IVN内のサブネットの作成、及びIVNについてのルーティング・メタデータの設定を管理することができる。いくつかの実施形態において、プロバイダ・ネットワークで実装された1つ以上の他のサービス(たとえば、ファイル・ストレージ・サービス、またはデータベース・サービス)の操作を実行するために使用される、コンピュート・インスタンス及び他のリソースは、1つ以上のIVN内で編成されることもでき、対応するプライベートIPアドレスは、これらのようなリソースに割り当てられることができる。異なるIVNは、内部で使用されたプライベートIPアドレスに関して互いから隔離されるため、ときとしてそれは、所与のプライベートIPアドレスがそれぞれ別個のIVN内に1つより多いコンピュート・インスタンスに割り当てられることができる事例であってもよい。描写された実施形態において、公にアドバタイズされたIPアドレス54.87.131.66 260Bは、1つのCVIとして機能することができ、10.0.0.1のようなプライベートIPアドレス260Cは、インスタンス150のための別のCVIとして機能することができる。
さまざまなコンピュート・インスタンスに割り当てられることができるIPアドレス・ベースの名前に加えて、VCSは、IPアドレスから独立するインスタンス名で、いくつかの実施形態において1つ以上の他の名前空間を定義することができる。たとえば、所与のコンピュート・インスタンス150は、少なくともいくつかの時点で、IPネットワークから切断されることができ、または一方のネットワーク・アドレス、及び他方間で遷移していることができ、VCSは、そのネットワーク・ステータスから独立するインスタンスを指すために使用されることが可能である名前(「inst」で開始する一意の文字列のような)を割り当てることができる。このようなVCSが割り当てられた一意のインスタンス名260Dは、インスタンス150へ割り当てられたCVIの別の実施例と考えられることができる。同様に、プロバイダ・ネットワークの他のサービスは、それら自体の名前を、いくつかの実施形態でのサービスにより使用される、またはサービスとインタラクトするコンピュート・インスタンスへ割り当てることができる。このような非VCSサービスに割り当てられた名前260H、たとえば、DbSvcClient−01321(コンピュート・インスタンスがDbSvcと言われるデータベース・サービスのクライアントであることを示す)は、CVIの別の実施例を表現することができる。
顧客に選択された、または顧客に要求されたアイデンティティは、さまざまな実施形態においてコンピュート・インスタンスへ割り当てられることもできる。3つの異なるタイプの顧客に影響されるアイデンティティは、それぞれのタイプの名前空間に対応する、図2で示される。顧客は、たとえば、主に顧客ネットワーク内で、または同一の顧客が所有する他のインスタンスとのインタラクションで、検証され、使用されるため、インスタンスのために自身の名前空間を定義することができる。顧客に割り当てられた名前260Eは、「MyApp−Cluster1−inst0」のような、このような名前空間内にコンピュート・インスタンス150のCVIとして選択され、割り当てられることができる。また顧客は、いくつかの実施形態において、VCS所有の名前空間(顧客が要求する名前260Fの場合のように)内に、及び/またはDNS名前空間(顧客に割り当てられたDNS名260Gの場合のように)内にインスタンス150に割り当てられる特定の名前を要求することができる。いくつかの実施形態において、プロバイダ・ネットワークのオンライン市場内のビジネス・パートナー、または参加者のような、第三者のエンティティ(すなわち、プロバイダ・ネットワーク・オペレータ以外の、及び顧客以外のエンティティ)は、CVIをインスタンスに割り当てることができる。たとえば、第三者に割り当てられた名前260Kは、第三者エンティティにより定義され、管理された名前空間内のインスタンスのために選択されることができる。このような第三者CVIは、たとえば、第三者エンティティにより実装された製品または機能を利用するインスタンス能力を強化するために、さまざまな実施形態で顧客及び/またはVCSの要求で、またはこれらの承認を得て第三者名前空間の所有者により割り当てられることができる。少なくともいくつかの実施形態において、また第三者名前空間の所有者は、名前空間についての1つ以上のアイデンティティ・バリデータを実装することができる。1つの実施形態において、上述されるように、対応するインスタンスのグループ内でインスタンスにより演じられた特定の役割と関連した、共有されたアイデンティティを割り当てることができるため、たとえば、必要な場合に、及び必要なときにグループの1人のメンバーがグループの別のメンバーの作業負荷のうちの少なくとも一部を引き継ぐことを可能にできる。共有された役割名260J(「Failover−group−FG3−node」、インスタンスがフェイルオーバー・グループのメンバーであることを示す)は、複数のインスタンスに割り当てられることができるこのような共有されたCVIの実施例を表現する。障害の場合にはグループ・メンバーの作業負荷を引き継ぐように構成された協調するインスタンスのこのようなピア・グループは、いくつかの実施形態においてプロバイダ・ネットワークのさまざまな異なるサービスにより確立されることができる(VCS、さまざまなストレージ関連のサービス、高性能コンピューティング・サービス、及びその他のものを含む)。
所与のインスタンスへの所与のアイデンティティの割り当てが少なくともいくつかの実施形態で一時的であることができ、以前に使用されたアイデンティティの再利用が少なくとも1つの実施形態で許可できることに留意する。たとえば、インスタンスは、時間T1及びT2間の所与の名前空間NS1内の特定のCVI「CVI1」、時間間隔T2〜T3中のNS1内にCVIがない、時間T3及びT4間のNS1内に異なるCVI「CVI2」、ならびに時間T4及びT5間で以前に割り当てられたCVI「CVI1」を割り当てられることができる。
アプリケーション固有のオーセンティケータとのインタラクション
図3は、少なくともいくつかの実施形態により、複数のアプリケーションの認証コンポーネント、及びコンピュート・インスタンス間のインタラクションの実施例を図示する。所与のコンピュート・インスタンス150に割り当てられたCVIセット342の異なるCVI360A〜360D(それぞれの名前空間344A〜344Dに対応する)は、これらの異なるアプリケーションの操作を続行するパーミッションをインスタンスが受信することを可能にする、描写された実施形態において各いくつかの異なるアプリケーションに対応する特定の認証チャレンジにインスタンスが応答することを可能にできる。2つの異なるアプリケーションApp1及びApp2のオーセンティケータ302A及び302Bは、図3で示される。たとえば、オーセンティケータ302Aは、リモート・デスクトップ・クライアント・アプリケーションであることができ、オーセンティケータ302Bは、ソフトウェア・アズ・ア・サービスを使用して実装されたチップ設計アプリケーションのライセンス・マネージャであってもよい。リモート・デスクトップ・クライアント・アプリケーションの実装者は、コンピュート・インスタンスへのリモート・デスクトップ・セッションを確立する前に、コンピュート・インスタンスのアイデンティティを検証することを確実にしたい可能性がある。同様に、チップ設計アプリケーションの実装者は、コンピュート・インスタンスからCADツールを呼び出す、またはCADツールを使用することが可能になる前に、インスタンスからのCADツールの使用を許可することを確実にするようにコンピュート・インスタンスのアイデンティティを検証することを確実にしたい可能性がある。
コンピュート・インスタンス150は、図3で示された実施形態の別個のアイデンティティ・クエリ312A及び312Bで各オーセンティケータによりそのアイデンティティを証明するように要求されることができる。アイデンティティ・クエリ312A及び312Bは、コンピュート・インスタンスのライフタイムの異なる時点で受信されることができる。アイデンティティ・クエリ312Aに応答して、コンピュート・インスタンス150は、アイデンティティ要求に関係する特定の名前空間344Aを判定し、その名前空間344A内でインスタンスに割り当てられたCVI360Aを示す1つ以上の暗号化アーティファクト314Aを提供することができる。同様に、名前空間344B内のCVI360Bを示す1つ以上の暗号化アーティファクト314Bは、オーセンティケータ302Bからアイデンティティ要求312Bに応答して提供されることができる。暗号化アルゴリズムまたは暗号強度鍵を使用して少なくとも部分的に生成された複数の異なるタイプのオブジェクトは、さまざまな実施形態においてインスタンスのアイデンティティの証拠として使用されることができる。たとえば、暗号化アーティファクト316は、デジタル証明書、ライセンス契約の暗号化バージョン、暗号化されたポリシー・トークン、及びその他のものを含むことができ、これらのうちの少なくともいくつかは、いくつかの実施形態においてコンピュート・インスタンス150に割り当てられた鍵ペアの公開鍵を使用して取得されることができる。複数の異なるタイプの認証プロトコルは、1つより多いメッセージ交換を伴う例示的なマルチステップ・プロトコルのために含む、さまざまな実施形態でインスタンス・アイデンティティ検証を要求するアプリケーションにより使用されることができ、コンピュート・インスタンス150は、そのアイデンティティを証明するために要求された異なるステップに適切に応答することができる。いくつかの実施形態において、アイデンティティ・クエリ312に応答して提供されたアイデンティティ情報の少なくとも部分は、鍵のコピーを禁止するセキュア鍵ストアで管理されることができる、コンピュート・インスタンスの秘密鍵の使用を伴うことができる。たとえば、コンピュート・インスタンス150は、秘密鍵を使用してデータ要素の暗号化を可能にする、仮想化管理コンポーネントのような媒介により、またはセキュア鍵ストアにより実装されたAPIを呼び出さなければならない可能性がある。アイデンティティ・クエリへの応答は、さまざまな実施形態においてコンピュート・インスタンスのソフトウェア・スタックのいくつかの異なる層のいずれかで生じることができ、たとえば、これらのような応答は、ユーザ・モードで実行するアプリケーション、オペレーティング・システム・モジュール、デバイス・ドライバ・モジュール、及びその他のものにより生成されることができる。
オーセンティケータ302が関連する名前空間344に関してコンピュート・インスタンス150のアイデンティティを受諾した、または検証した後に、少なくともいくつかの事例において、肯定応答メッセージ(Authn_ACKメッセージ322Aまたは322Bのような)は、コンピュート・インスタンスへ送信されることができる。このような肯定応答は、このアプリケーション(たとえば、App1またはApp2)と関連した追加の操作を続行することを許可するコンピュート・インスタンスへの信号として機能することができる。明示的な認証肯定応答メッセージは、少なくともいくつかの実施形態でいくつかのアプリケーションにより使用されないことができる。いくつかの実施形態で、少なくともいくつかのタイプのインスタンス・アイデンティティ名前空間について、コンピュート・インスタンスがオーセンティケータとのインタラクションの第一ステップとしてCVIをアサートすることができる、すなわち、インスタンス・アイデンティティが必ずしも受信した要求に応答してのみアサートされる必要がないことに留意する。
セキュア鍵ストアの実施例
上述されるように、コンピュート・インスタンスへ割り当てられた鍵ペアの秘密鍵は、いくつかの実施形態において所与の名前空間内にコンピュート・インスタンスのアイデンティティをアサートするために実行された少なくともいくつかの操作のために使用されることができる。図4は、少なくともいくつかの実施形態により、セキュア鍵ストアが管理する転送不可能な秘密鍵をコンピュート・インスタンスが利用することを可能にするプログラマティック・インタフェースを実装することができる、インスタンス・ホストの実施例を図示する。示されるように、インスタンス・ホスト125は、たとえば、いくつかの数の処理コアまたはプロセッサ470、メイン・メモリと言われることができる少なくとも1つの非永続メモリ472、ディスク(回転ディスク及び/またはソリッド・ステート・ディスクを含むことができる)のような1つ以上のローカル永続ストレージ・デバイス490、及び1つ以上のネットワーク・インタフェース・カード(NIC)480を含むことができる、複数のハードウェア・コンポーネント410を備えることができる。他の非永続メモリ位置は、プロセッサ・キャッシュ、レジスタ、及び同様のもののさまざまなレベルのような、少なくともいくつかの実施形態でハードウェア・コンポーネント層410に利用可能であり得る。トラステッド・プラットフォーム・モジュール470のようなローカル・セキュア鍵ストアは、描写された実施形態のインスタンス・ホスト125内に組み込まれる、またはこれに接続されることもできる。1つ以上のモニタ、マウス、及び同様のもの(図4で示されない)のような周辺機器は、いくつかの実装においてインスタンス・ホストに接続されることもできる。
さまざまなハードウェア層リソース410は、描写された実施形態においてオペレーティング・システム430のハイパーバイザ408及び/または管理インスタンスを含む仮想化管理ソフトウェア・スタックの支援で仮想化される(たとえば、各インスタンスがリソースへの排他的アクセス権をもっているかのように、インスタンス・ホスト125でブートされる、または起動されるいくつかのインスタンス150に提示される)ことができる。ハイパーバイザ及び/または管理オペレーティング・システム・インスタンスは、VCSの要素とみなされることができ、仮想化管理コンポーネント(VMC)425と言われることができる。オペレーティング・システムの管理インスタンスは、いくつかの実装において「ドメイン0」または「dom0」とラベル付けされた「特権ドメイン」と言われることができ、各インスタンス150について確立されたそれぞれのオペレーティング・システムは、「非特権ドメイン」(「domU」とラベル付けされた)、「ゲスト・オペレーティング・システム」、または「ゲスト・ドメイン」と言われることができる。
ハイパーバイザ408は、描写された実施形態で、コンピュート・インスタンス、及びインスタンス・ホストのハードウェア・コンポーネント間の媒介として一般的に動作することができる。たとえば、使用されている特定のプログラマティック・インタフェースに依存する、いくつかの事例において、ハイパーバイザ及び管理オペレーティング・システム・インスタンス430の両方は、インスタンス150及びハードウェア間の媒介であってもよい。たとえば、操作の要求パスは、つぎの、コンピュート・インスタンス→ハイパーバイザ→dom0→ハイパーバイザ→ハードウェアのように流れることができ、応答は、リバース・パスを使用してコンピュート・インスタンスに提供されることができる。いくつかの実装において、dom0は、1つ以上のタイプのハードウェア・コンポーネントに直接アクセスすることが可能であることができ、dom0及びハードウェア間の他のインタラクションは、ハイパーバイザを通過することができる。たとえば、アプリケーション層450により要求された操作のために、ハードウェア・コンポーネント(セキュア鍵ストア470のような)がコンピュート・インスタンス150から利用されるときに、VMCを対象とする対応する要求は、オペレーティング・システムのカーネルまたはデバイス・ドライバ層452により生成されることができる。描写された実施形態において、たとえば、VCSにより支援された1つ以上の秘密鍵API425は、コンピュート・インスタンス150から呼び出され、セキュア鍵ストアにより管理された秘密鍵を利用することができる。API425は、描写された実施形態で、発呼者(たとえば、コンピュート・インスタンス)が秘密鍵をコピーする、または転送することを許可せずに、たとえば、暗号化アーティファクトを生成するために、秘密鍵の使用を可能にできる。
描写された実施形態において、ローカル・セキュア鍵ストア470の使用の代わりに、またはこれに加えて、リモート・セキュア鍵ストア490(プロバイダ・ネットワークで実装されたセキュリティ・サービスのハードウェア・セキュリティ・モジュール(HSM)のような)を使用することができる。リモート・セキュア鍵ストアは、上述されるように秘密鍵のコピーを防止する類似の種類のAPI425を使用して、少なくともいくつかの実施形態で利用されることができる。リモート・セキュア鍵ストア490とのインタラクションは、ハードウェアNIC480を通過しなければならない可能性がある。1つの実施形態において、1タイプのセキュア鍵ストアのみ、たとえば、ローカル鍵ストア470、またはリモート鍵ストア490のいずれか一方を使用することができる。少なくとも1つの実施形態において、複数の鍵ペアは、所与のコンピュート・インスタンスのために(たとえば、異なる名前空間内のそれぞれのCVIのために)指定されることができ、異なるセキュア鍵ストアは、複数の鍵ペアの秘密鍵のために使用されることができる。他の実施形態において、同一の鍵ペアは、それぞれの名前空間内でいくつかの異なるCVIのために使用されることができる。鍵ペアは、高度暗号化標準(AES)、RSA(リベスト・シャミア・エーデルマン)アルゴリズム、DES(データ暗号化標準)、PGP(プリティ・グッド・プライバシー)、または同様のもののバージョンのような、異なる実施形態においてさまざまな適切な暗号化標準及び/またはアルゴリズムのいずれかと互換性があってもよい。
アイデンティティ割り当てのための管理上のインタラクション
いくつかの実施形態において、インスタンス・アイデンティティに関連した構成操作のための1セットのプログラマティック・インタフェースを支援することができる。図5は、少なくともいくつかの実施形態により、クライアント及びインスタンス設定マネージャ間のアイデンティティ関連のコントロール・プレーン・インタラクションの実施例を図示する。いく人かのクライアントは、インスタンスが起動する前にインスタンスに割り当てられるアイデンティティのタイプを判定することができ、他のクライアントは、起動後にインスタンスへアイデンティティを割り当てることができる。クライアントは、描写された実施形態でコンピュート・インスタンスからのアイデンティティを無効にすることが可能であり得る。これらの、及び他のタイプの構成操作について、1セットのプログラマティック・インタフェース590は、描写された実施形態においてVCSコントロール・プレーンにより実装されることができる。
示されるように、クライアント502は、アイデンティティ記述子(ID記述子)パラメータが起動されるインスタンスについての1つ以上の要求されたアイデンティティ・タイプを示しながら、プログラマティック・インタフェース590を介して描写された実施形態でVCSのインスタンス設定マネージャへ、インスタンス起動要求504を提示することができる。各要求されたアイデンティティについて、アイデンティティ記述子は、図6のコンテキストで以下に記述されるような、名前空間の識別子、名前空間の所有者、アイデンティティ有効期間情報、及び同様のもののようなさまざまなプロパティを示すことができる。インスタンス起動要求(及び図5で図示された他の例示的な要求)は、省略記号(「...」)により示されるような、図5で示されない0以上の追加のパラメータを各含むことができる。起動で、または起動前にコンピュート・インスタンスへアイデンティティを割り当てたくないクライアント502は、いくつかの実施形態において、それらの起動要求でアイデンティティ記述子を含まないことができる、すなわち、アイデンティティ記述子は、任意選択のパラメータであってもよい。
アイデンティティ記述子を含むインスタンス起動要求を受信することに応答して、インスタンス設定マネージャ510は、描写された実施形態で要求するクライアントにアイデンティティを割り当てることを許可することを最初に検証することができる。すべてのクライアントは、少なくともいくつかの実施形態でさまざまなタイプの名前空間内にアイデンティティを割り当てるパーミッションを与えられることができない、たとえば、選択された1セットのインスタンス・タイプ(たとえば、「大規模」インスタンス、「小規模」インスタンスよりコストがかかる可能性がある)のみは、複数のCVIを含むことを許可されることができ、単一のCVI(またはすべてのCVIではない)のみが許可されるインスタンスへ複数のアイデンティティを割り当てる要求を出すクライアントは、「パーミッションがない」または同様のエラー・メッセージを受信することができる。少なくとも1つの実施形態において、1つより多いCVIをインスタンスへ割り当てたいクライアントは、アイデンティティごとの価格を含む価格設定ポリシーを受諾するように要求されることができる。いくつかの実施形態において、所与のCVIのために要求されたアイデンティティ検証のタイプ(たとえば、プロバイダ・ネットワークの独自のアイデンティティ・バリデータを使用することが可能であるかどうか、または公的認証局のような外部アイデンティティ・バリデータを使用するかどうか)は、アイデンティティ割り当てと関連する価格設定を決定することができる。クライアントのインスタンス起動要求が設定マネージャの受諾基準を満たす場合に、設定マネージャは、名前空間の所有者520A、520Bまたは520Cのような、描写された実施形態で適切なセットの名前空間の所有者520から要求されたタイプのアイデンティティの割り当てを開始することができる。名前空間の所有者を対象とするこれらの要求は、いくつかの実装において、起動されるコンピュート・インスタンスへ割り当てられる、鍵ペアの公開鍵(複数可)を含むことができる。インスタンス設定マネージャ510は、いくつかの実施形態において、要求されたアイデンティティを正常に割り当てたことを示す名前空間の所有者から通知を受信することができる。インスタンス(たとえば、割り当てられたID情報パラメータに含まれた)に正常に割り当てられた単一のアイデンティティ、または複数のアイデンティティを示す起動成功メッセージ506は、描写された実施形態でクライアント502に提供されることができる。少なくともいくつかの実施形態において、1つ以上のCVIは、たとえば、その代理人がインスタンスを起動させるクライアントがインスタンスについて任意のアイデンティティ関連の選好を明示的に示さない場合でも、インスタンスにデフォルトで割り当てられることができる。
現在実行しているインスタンスについて起動後のアイデンティティ割り当ては、描写された実施形態で、インスタンスへのアイデンティティ割り当て要求508を介してクライアント502により要求されることができる。これに応じて、設定マネージャ510は、クライアントがアイデンティティを割り当て、つぎにインスタンス起動要求504に関連して上述されるものに類似する方式で実行するインスタンスへアイデンティティ割り当てを開始することを許可されることを、もう一度確認することができる。要求されたアイデンティティの正常な割り当てを示す肯定応答メッセージID割り当てACK511は、クライアント502へ提供されることができる。
アイデンティティを無効にするために、クライアント502は、無効にされるセットのアイデンティティを示すID記述子パラメータで、設定マネージャ510へインスタンスからのID無効要求512を提示することができる。アイデンティティの無効化は、たとえば、インスタンスのライフタイムの一部についてのコンピュート・インスタンスが1セットのパーミッションのみを必要とするときに、有用であることができ、たとえば、アイデンティティ検証を必要とする特定のアプリケーションがもはやインスタンス上で実行されないときに、対応するCVIを取り消す、または無効にすることができる。クライアントが単一のアイデンティティ、または複数のアイデンティティを取り消すことを許可されることを検証した後に、設定マネージャは、適切な名前空間マネージャ520との1回以上の通信を介して無効化を開始することができる。無効化が成功する場合に、肯定応答メッセージ、ID無効化ACK514は、描写された実施形態でクライアント502へ送信されることができる。名前空間の所有者520は、さまざまな実施形態で、たとえば、要求された名前をすでに割り当てた場合に、さまざまな理由のためにアイデンティティを割り当てる、または無効にする要求を拒否することができる。このような拒否のインディケーションは、インスタンス設定マネージャ510により、要求するクライアントへ提供されることができる。さまざまな実施形態において、図3(オーセンティケータ及びコンピュート・インスタンス間で)及び図5(クライアント、及びプロバイダ・ネットワークのコントロール・プレーン・コンポーネント間で)で図示されたインタラクションの種類について、さまざまな異なるタイプのプログラマティック・インタフェースを実装することができることに留意する。このようなインタフェースは、API、ウェブ・ページまたはウェブ・ベース・コンソール、グラフィカル・ユーザ・インタフェース(GUI)、コマンド・ライン・ツール、及び同様のものを含むことができる。
アイデンティティ記述子要素
図6は、少なくともいくつかの実施形態により、インスタンス設定マネージャに提示されたアイデンティティ割り当て要求内に含まれることができるアイデンティティ記述子の例示的なコンテンツを図示する。複数のアイデンティティ・エントリ612、たとえば、612Aまたは612Bを含むアイデンティティ記述子610は、たとえば、図5で図示された要求に類似するインスタンス起動、またはインスタンスへのアイデンティティ割り当て要求のパラメータとして提供されることができる。
描写された実施形態において、アイデンティティ・エントリ612Aは、つぎのサブエントリ、名前空間614Aの識別子、名前空間の所有者616A、インスタンスのために要求された名前618A、アイデンティティについての初期有効期間620A、有効性拡張ポリシー622A(たとえば、割り当てられたアイデンティティを拡張するために取るべきステップ、及び期限切れのアイデンティティを更新することが可能である期間)、検証メカニズム624A(たとえば、アイデンティティの暗号検証のために使用されるタイプの証明書またはアルゴリズム)、及び/または承認されたバリデータ・リスト626Aのいくつかの組み合わせを備えることができる。アイデンティティ・エントリ612Bは、同一のインスタンスのために、第二要求されたアイデンティティ、たとえば、第二名前空間614B、名前空間の所有者616B(616Aと異なることができる)、名前空間614B内の別の要求された名前618B、初期有効期間620B(620Aと異なることができる)、有効性拡張ポリシー622B(ポリシー622Aと異なることができる)、検証メカニズム624B(624Aと異なることができる)、承認されたバリデータ・リスト626B(バリデータ・リスト626Aと重複することができる)についてプロパティの異なる組み合わせを指定することができる。少なくともいくつかの実施形態において、サブエントリのうちの1つ以上を省略することができる。たとえば、いくつかのタイプのアイデンティティについて、要求された名前618を提案する代わりに、クライアントは、VCS(またはプロバイダ・ネットワークのいくつかの他のサービス)に依拠し、インスタンスのために適切な名前を決定することができる。同様に、有効期間620、有効性拡張ポリシー622、またはバリデータ・リストのような、有効性関連のパラメータについて、クライアントは、名前空間の所有者により、またはVCSにより選択されたデフォルト設定に依拠することが可能であり得る。少なくともいくつかの実施形態において、少なくともいくつかのタイプのアイデンティティのための検証メカニズムを予め決定することができる、すなわち、クライアントは、インスタンス・アイデンティティを検証する方式を変更することが不可能であり得る、または使用されることが可能である1セットのバリデータを修正することが不可能であり得る。
少なくとも1つの実施形態において、いくつかの異なるタイプのバリデータ、たとえば、プロバイダ・ネットワーク外側の第三者または公的認証局により検証される所与のタイプのインスタンス・アイデンティティのために可能であることができ、プロバイダ・ネットワーク独自の内部認証局は、インスタンスのアイデンティティについてのデジタル証明書に署名することが可能であり得る。いくつかのこのような実施形態において、クライアントは、インスタンスのために使用することをクライアントが好むアイデンティティ・バリデータの種類に少なくとも部分的に基づく価格設定オプションを提供されることができる。たとえば、クライアントは、第三者または外部機関によりアイデンティティを検証するインスタンスについてより、プロバイダ・ネットワーク内の機関によりアイデンティティを検証するインスタンスについてより低い請求率を課されることができる。いくつかの実施形態において、図6で図示された一部の、またはすべてのアイデンティティ・エントリ・サブコンポーネントは、API呼び出しの別個のパラメータとして提供されることができ、アイデンティティ記述子のような単一のオブジェクト、またはデータ構造内に必ずしも組み込まれないことができる。
マルチファセット・インスタンス・アイデンティティを支援する方法
図7は、少なくともいくつかの実施形態により、インスタンス・アイデンティティ割り当てに関連する管理要求に応答するように実行されることができる操作の態様を図示する流れ図である。要素701で示されるように、コンピュート・インスタンスCI1へ1つ以上のCVIを割り当てる要求は、仮想コンピューティング・サービスのコントロール・プレーン・コンポーネントで受信されることができる。用語「コントロール・プレーン・コンポーネント」は、非管理アプリケーション操作を実装する際に伴われる「データ・プレーン・コンポーネント」とは対照的に、VCSのコンピュート・インスタンス及びインスタンス・ホストの設定及び管理のために応答可能であるエンティティ(図510で示された設定マネージャのような)を指すために本明細書で使用されることができる。アイデンティティ割り当て要求は、名前空間識別子、名前空間の所有者、要求された名前、及びその他のもののような、要求された各タイプのアイデンティティに対応する図6のコンテキストで考察される一部の、またはすべてのアイデンティティ・プロパティを示すことができる。いくつかのパラメータは、2つ以上の要求されたアイデンティティについて同一であってもよい、たとえば、同一の有効期間は、2つ以上の異なるアイデンティティのために要求されることができる、または同一のエンティティは、2つ以上のアイデンティティのために名前空間を所有することができる。いくつかの実施形態において、デフォルト設定は、クライアントの要求で明示的に詳述されない1つ以上のプロパティのために使用されることができる。アイデンティティ割り当て要求は、インスタンスの起動(たとえば、インスタンス起動要求、または均等物で)前に、または他の事例でインスタンスを起動した後に受信されることができる。
コントロール・プレーン・コンポーネントは、受信したアイデンティティ割り当て要求のコンテンツを検証する(要素704)ことができる。複数の異なるタイプの検証操作は、要求されたアイデンティティをすでに割り当てた(または同一の名前空間内の別のアイデンティティをすでに割り当てた)かどうか、要求者が要求されたタイプのアイデンティティを割り当てることを許可されるかどうか、指定された名前空間の所有者がVCSから到達可能であるかどうか、または特定のインスタンスCI1がCVI割り当てのための適格基準を満たすかどうかを確認するような、さまざまな実施形態において実行されることができる。少なくとも1つの実施形態において、たとえば、いくつかの異なるタイプのコンピュート・インスタンス(「小規模」、「中規模」、及び「大規模」インスタンスのような)は、それぞれの価格設定ポリシーでVCSにより支援されることができ、所与のタイプの名前空間内のCVIは、すべてのインスタンス・タイプに必ずしも割り当て可能ではなくてもよい。少なくとも1つの実施形態において、異なるタイプのCVIは、たとえば、CVIタイプのための名前空間及びアイデンティティ・バリデータに基づき、CVIと関連した異なる価格設定ポリシーを有することができる。このような実施形態において、コントロール・プレーン・コンポーネントは、1つ以上のCVIの割り当てを承認する前に、適切な価格設定ポリシーがCI1に有効であること、または要求するクライアントが適切な価格設定ポリシーに同意することを確保しなければならない可能性がある。いくつかの実装において、たとえば、すべてのインスタンスがセキュア鍵ストアにより管理された暗号鍵を使用することを許可されない実装において、VCSコントロール・プレーン・コンポーネントは、CVIを割り当てるインスタンスがCVIをアサートする適切なセットの鍵を利用することを可能にすることを検証することができる。
アイデンティティ割り当て要求を検証した後に、コントロール・プレーン・コンポーネントは、各要求されたアイデンティティについての名前空間の所有者へそれぞれの要求を送信する(要素707)ことができる。少なくとも1つの実施形態において、コントロール・プレーン・コンポーネントは、所与のアイデンティティのために使用される暗号鍵ペアの公開鍵を決定することが可能であることができ、この公開鍵は、名前空間の所有者に送信された要求内に含まれることができる。1つの実施形態において、クライアントのアイデンティティ割り当て要求に含まれた一部の、またはすべてのパラメータは、名前空間の所有者に渡されることができる。名前空間の所有者は、コントロール・プレーン・コンポーネントからの要求に応答して自身の検証操作を実行することができる。検証操作が成功する場合に、名前空間の所有者、及び/またはそれぞれの名前空間のアイデンティティ・バリデータは、要求されたアイデンティティ(たとえば、割り当てられた名前、適切なデジタル証明書、または他のアイデンティティ関連のアーティファクト、及びその他のもの)に必要なメタデータを生成することができる。
コントロール・プレーン・コンポーネントは、要求されたタイプのアイデンティティをコンピュート・インスタンスCI1に割り当てたことを示す、名前空間の所有者(複数可)から肯定応答を受信する(要素710)ことができる。1つ以上の名前空間内のCI1に割り当てられた名前は、少なくともいくつかの実施形態において、コントロール・プレーン・コンポーネントに提供されることができる。いくつかの実施形態において、名前空間のためのアイデンティティ・バリデータは、名前空間内のアイデンティティをCI1へ正常に割り当てたことをコントロール・プレーン・コンポーネントにまた、または代わりに通知することができる。描写された実施形態において、コントロール・プレーン・コンポーネントは、たとえば、要求されたアイデンティティを割り当てた、または1つ以上の要求されたアイデンティティを割り当てない場合に、CI1のアイデンティティのステータスについてクライアントに通知する(要素713)ことができる。さまざまな名前空間内のインスタンスに割り当てられた名前は、いくつかの実施形態においてクライアントに提供されることもできる。少なくとも1つの実施形態において、VCSは、名前空間識別子、名前空間の所有者、有効期間、バリデータ・リスト、及びその他のもののようなアイデンティティ・プロパティとともに、所与のコンピュート・インスタンスに割り当てられたすべてのCVIのリストをクライアントが取得することを可能にする、コントロール・プレーン・プログラマティック・インタフェース(たとえば、「インスタンス記述」またはコンソールのようなAPIを介して)実装することができる。
図8は、少なくともいくつかの実施形態により、それぞれの名前空間内に1つ以上のアイデンティティを割り当てたコンピュート・インスタンスで実行されることができる操作の態様を図示する流れ図である。要素801で示されるように、1つ以上のCVIは、たとえば、CI1が属するインスタンス・カテゴリに有効であるVCSポリシーに基づくデフォルトにより、またはインスタンスの所有者の要求(複数可)に応答して、のいずれか一方で仮想化されたコンピューティング・サービス(VCS)の所与のコンピュート・インスタンスCI1に割り当てられることができる。
CI1は、特定のアプリケーション及び/または名前空間(たとえば、DNS名前空間に関するリモート・デスクトップ・クライアントからのクエリ、またはライセンシー名前空間に関するライセンス・サーバからのクエリ)と関連したアイデンティティ・クエリを受信する(要素804)ことができる。いくつかのこのようなアイデンティティ・クエリは、認証チャレンジと言われることもできる。これに応じて、CI1は、適切な名前空間内のそれに割り当てられたCVIのインディケーションとして1つ以上の暗号で生成されたアーティファクトを提供する(要素807)ことができる。いくつかの事例で、CI1は、そのコンテキストでアイデンティティを受信した特定のアプリケーションに適用可能である名前空間を最初に決定しなければならない可能性があり、他の事例で、アイデンティティ・クエリまたはチャレンジは、明示的に名前空間を示すことができる。1つの実施形態において、1つ以上のアイデンティティ・バリデータ(たとえば、CI1の請求されたアイデンティティを検証するために相談されることが可能である信頼できる機関)のインディケーションは、CI1の応答に含まれることができる。少なくともいくつかの実施形態において、各CVIは、CI1専用に指定された対応する暗号鍵ペアと関連することができる。1つより多いCVIが少なくともいくつかの実装において同一の鍵ペアと関連することができることに留意する。少なくとも1つの実施形態において、アイデンティティを示すアーティファクトは、デジタル証明書(対応する名前空間についてのアイデンティティ・バリデータにより署名され、関連した鍵ペアの公開鍵を含む)、及び/またはCI1を実行するインスタンス・ホストで仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを使用して取得された別の暗号値(デジタル署名のような)を含むことができる。プログラマティック・インタフェースは、CI1へ秘密鍵自体を公開することなく、いくつかの実装において、CI1が秘密鍵を間接的に使用して、暗号値を取得することを許可することができる。秘密鍵は、CI1が実行するインスタンス・ホストの通信バスに接続されるローカル周辺機器、またはネットワーク経由で仮想化管理コンポーネントからアクセス可能なリモート・ハードウェア・セキュリティ・モジュールのような、さまざまな実施形態においてセキュア鍵ストアで管理される/格納されることができる。その単一のCVI、または複数のCVIをアサートするためにCI1による秘密鍵の使用は、描写された実施形態でVCSにより有効にされることができる。
アイデンティティ要求を生成したエンティティによりCVIを受諾する(要素810で決定されるように)場合に、CI1は、描写された実施形態で、アイデンティティ要求を受信したアプリケーションの追加の操作を実行するように続行する(要素813)ことができる。CVIを拒否する(また要素810で決定されるように)場合に、CI1は、インスタンス・ホストの仮想化管理コンポーネントへ、及び/またはVCSコントロール・プレーンへエラー・メッセージを任意選択で送信する(要素816)ことができる。
さまざまな実施形態において、図7及び図8の流れ図で図示されたこれら以外の操作を使用して、本明細書で考察されたマルチファセット・インスタンス・アイデンティティを支援するための技術のうちの少なくともいくつかを実装することができることに留意する。示された操作の一部は、いくつかの実施形態で実施されることができず、図7若しくは図8で図示された以外の異なる順序で、または順次ではなく並列で実施されることができる。
使用事例
複数の暗号で検証可能なアイデンティティをコンピュート・インスタンスへ割り当てるためのサポートを提供する、上述された技術は、さまざまな環境で使用されることができる。機密性の高いビジネス・データを処理するため、高水準のセキュリティを要求する多くの最新のアプリケーション及びプロトコルは、プロバイダ・ネットワーク環境で現在実行されている。仮想コンピューティング・サービスの少なくともいく人かのクライアントは、各アプリケーション・コンテキストが1つ以上の名前空間内でそれ自体の認証及びセキュリティ要件を課しながら、複数のアプリケーション・コンテキストにコンピュート・インスタンスを使用したい可能性がある。各インスタンスへ暗号鍵ペア(それらのハードウェア鍵ストアから秘密鍵を変更する、またはコピーすることが不可能である)を割り当てること、及びインスタンスが1つ以上の名前空間内でそれら自体のアイデンティティをアサートすることを可能にするためにこれらの鍵を使用することで、クライアントは、多くのタイプのアプリケーションのために所望のレベルのセキュリティを達成することが可能であり得る。またこのような技術は、コンピュート・インスタンスを管理することと関連した管理作業を軽減することができ、たとえば、管理者は、所与のアプリケーションに関係する各インスタンスがそのように行う権限を与えられることを手作業で(たとえば、コンピューティング・サービスの管理コンソールを介して)検証する必要がなくなることができる。異なる有効期間及び他のプロパティは、単一のアイデンティティのみがインスタンスに割り当て可能であった場合に可能であるものより、大きな柔軟性を可能にする、所与のインスタンスに割り当てられた異なるアイデンティティのために設定されることができる。クライアントは、さまざまなインスタンスのために使用されるアイデンティティ検証メカニズムのタイプに部分的に依存する価格設定プランを選択する、インスタンス・アイデンティティに関する価格設定トレードオフを行うことが可能であり得る。
例示的なコンピュータ・システム
少なくともいくつかの実施形態において、コンピュート・インスタンスへのそれぞれの名前空間内の複数のアイデンティティの割り当てのために上述される技術のうちの1つ以上を実装するサーバは、1つ以上のコンピュータ・アクセス可能な媒体を含む、またはこれらにアクセスするように設定される汎用コンピュータ・システムを含むことができる。図9は、このような汎用コンピューティング・デバイス9000を図示する。図示された実施形態において、コンピューティング・デバイス9000は、入力/出力(I/O)インタフェース9030を介してシステム・メモリ9020(不揮発性及び揮発性メモリ・モジュールの両方を含むことができる)に結合された1つ以上のプロセッサ9010を含む。さらにコンピューティング・デバイス9000は、I/Oインタフェース9030に結合されたネットワーク・インタフェース9040を含む。
さまざまな実施形態において、コンピューティング・デバイス9000は、1つのプロセッサ9010を含むユニプロセッサ・システム、またはいくつかのプロセッサ9010(たとえば、2つ、4つ、8つ、または別の適切な数)を含むマルチプロセッサ・システムであってもよい。プロセッサ9010は、命令を実行可能な任意の適切なプロセッサであってもよい。たとえば、さまざまな実施形態において、プロセッサ9010は、x86、PowerPC、SPARC、若しくはMIPS命令・セット・アーキテクチャ(ISA)、または任意の他の適切なISAのような、さまざまなISAのいずれかを実装する汎用、または組み込みプロセッサであってもよい。マルチプロセッサ・システムにおいて、各プロセッサ9010は、必要ではないが、同一のISAを一般的に実装することができる。いくつかの実装において、グラフィックス・プロセッシング・ユニット(GPU)は、従来のプロセッサの代わりに、またはこれらに加えて使用されることができる。
システム・メモリ9020は、プロセッサ(複数可)9010によりアクセス可能な命令及びデータを格納するように構成されることができる。少なくともいくつかの実施形態において、システム・メモリ9020は、揮発性、及び不揮発性部分の両方を備えることができ、他の実施形態において、揮発性メモリのみを使用することができる。さまざまな実施形態において、システム・メモリ9020の揮発性部分は、スタティック・ランダム・アクセス・メモリ(SRAM)、同期ダイナミックRAM、または任意の他のタイプのメモリのような、任意の適切なメモリ技術を使用して実装されることができる。システム・メモリの不揮発性部分(たとえば、1つ以上のNVDIMMを備えることができる)について、いくつかの実施形態で、NANDフラッシュ・デバイスを含む、フラッシュ・ベースのメモリ・デバイスを使用することができる。少なくともいくつかの実施形態において、システム・メモリの不揮発性部分は、スーパーキャパシタまたは他の蓄電装置(たとえば、バッテリ)のような、電源を含むことができる。さまざまな実施形態において、メモリスタ・ベースの抵抗変化型メモリ(ReRAM)、3次元NAND技術、強誘電体RAM、磁気抵抗メモリRAM(MRAM)、または任意のさまざまなタイプの相変化メモリ(PCM)は、システム・メモリの不揮発性部分のために少なくとも使用されることができる。図示された実施形態において、上述されるこれらの方法、技術及びデータのような、1つ以上の所望の機能を実装するプログラム命令及びデータは、コード9025及びデータ9026としてシステム・メモリ9020内に格納されて示される。
1つの実施形態において、I/Oインタフェース9030は、トラステッド・プラットフォーム・モジュール(TPM)966のようなローカル・セキュア鍵ストア、ネットワーク・インタフェース9040、またはさまざまなタイプの永続的及び/または揮発性ストレージ・デバイスのような他の周辺インタフェースを含む、デバイス内のプロセッサ9010、システム・メモリ9020、及び任意の周辺機器間のI/Oトラフィックを調整するように構成されることができる。いくつかの実施形態において、I/Oインタフェース9030は、一方のコンポーネント(たとえば、システム・メモリ9020)からのデータ信号を他方のコンポーネント(たとえば、プロセッサ9010)による使用のために適切なフォーマットに変換する、任意の必要なプロトコル、タイミングまたは他のデータ変換を実行することができる。いくつかの実施形態において、I/Oインタフェース9030は、たとえば、ロー・ピン・カウント(LPC)・バス、ペリフェラル・コンポーネント・インターコネクト(PCI)・バス規格の変形、またはユニバーサル・シリアル・バス(USB)規格のような、さまざまなタイプの周辺バスを介して接続されたデバイスのためのサポートを含むことができる。いくつかの実施形態において、I/Oインタフェース9030の機能は、たとえば、ノース・ブリッジ及びサウス・ブリッジのような、2つ以上の別個のコンポーネントに分割されることができる。また、いくつかの実施形態において、システム・メモリ9020へのインタフェースのような、I/Oインタフェース9030の一部の、またはすべての機能性は、プロセッサ9010に直接組み込まれることができる。
ネットワーク・インタフェース9040は、たとえば、図1〜図8で図示されるように、他のコンピュータ・システムまたはデバイスのような、単一のネットワーク、または複数のネットワーク9050に接続されたコンピューティング・デバイス9000及び他のデバイス9060間でデータを交換することを可能にするように構成されることができる。さまざまな実施形態において、ネットワーク・インタフェース9040は、たとえば、イーサネット(登録商標)・ネットワークのタイプのような、任意の適切な有線の、または無線の一般的なデータ・ネットワークを介する通信を支援することができる。加えて、ネットワーク・インタフェース9040は、アナログ音声ネットワーク、若しくはデジタル・ファイバ通信ネットワークのようなテレコミュニケーション/電話ネットワークを介する、ファイバ・チャネルSANのようなストレージ・エリア・ネットワークを介する、または任意の他の適切なタイプのネットワーク及び/またはプロトコルを介する通信を支援することができる。
いくつかの実施形態において、システム・メモリ9020は、対応する方法及び装置の実施形態を実装するために図1〜図8について上述されるような、プログラム命令及びデータを格納するように構成されたコンピュータ・アクセス可能な媒体の1つの実施形態であってもよい。しかしながら、他の実施形態において、プログラム命令及び/またはデータを、異なるタイプのコンピュータ・アクセス可能な媒体で受信する、送信する、または格納することができる。一般的に言えば、コンピュータ・アクセス可能な媒体は、磁気または光媒体、たとえば、I/Oインタフェース9030を介してコンピューティング・デバイス9000に結合されたディスクまたはDVD/CDのような、非一時的なストレージ・メディア、またはメモリ・メディアを含むことができる。また非一時的なコンピュータ・アクセス可能なストレージ・メディアは、システム・メモリ9020、または別のタイプのメモリとしてコンピューティング・デバイス9000のいくつかの実施形態に含まれることができる、RAM(たとえば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROMなどのような任意の揮発性、または不揮発性媒体を含むことができる。さらに、コンピュータ・アクセス可能な媒体は、ネットワーク・インタフェース9040を介して実装されることができるような、ネットワーク及び/または無線リンクのような通信媒体を介して伝達された、電気、電磁、またはデジタル信号のような、伝送媒体または信号を含むことができる。図9で図示されるような、部分の、またはすべての複数のコンピューティング・デバイスは、さまざまな実施形態で記述された機能性を実装するために使用されることができ、たとえば、さまざまな異なるデバイス及びサーバ上で実行するソフトウェア・コンポーネントは、連携して、この機能性を提供することができる。いくつかの実施形態において、記述された機能性の部分は、汎用コンピュータ・システムを使用して実装されることに加えて、またはこのことの代わりに、ストレージ・デバイス、ネットワーク・デバイス、または専用コンピュータ・システムを使用して実装されることができる。本明細書で使用されるような、用語「コンピューティング・デバイス」は、少なくともすべてのこれらのタイプのデバイスを指すが、これらのタイプのデバイスに限定されない。
結論
さまざまな実施形態は、コンピュータ・アクセス可能な媒体上に前述の説明に従い実装された命令及び/またはデータを受信すること、送信すること、または格納することをさらに備えることができる。一般的に言えば、コンピュータ・アクセス可能な媒体は、ネットワーク及び/または無線リンクのような通信媒体を介して伝達された、磁気または光媒体、たとえば、ディスクまたはDVD/CD−ROMのようなストレージ・メディアまたはメモリ・メディア、RAM(たとえば、SDRAM、DDR、RDRAM、SRAMなど)、ROMなどのような揮発性または不揮発性媒体、及び電気、電磁、またはデジタル信号のような伝送媒体または信号を含むことができる。
図で図示され、本明細書で記述されるような、さまざまな方法は、方法の例示的な実施形態を表現する。これらの方法は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実装されることができる。方法の順序は、変更されることができ、さまざまな要素は、追加され、並べ替えられ、結合され、省略され、変更されることなどが可能である。
本開示の恩恵を受ける当業者に明らかであるように、さまざまな修正形態及び変更形態を行うことができる。すべてのこのような修正形態及び変更形態を包含することを意図され、したがって、上述の説明は、制限ではなく例示的な意味で考慮されるものとする。
本開示の実施形態は、以下の条項の観点で記述されることが可能である。
1.1つ以上のコンピュート・インスタンスを含む少なくとも第一インスタンス・ホストを含む、プロバイダ・ネットワークの仮想コンピューティング・サービスの複数のインスタンス・ホスト、
を備え、
前記1つ以上のコンピュート・インスタンスの特定のコンピュート・インスタンスは、
第一アプリケーションと関連した第一オーセンティケータからの第一アイデンティティ・クエリに応答して、第一インスタンス・アイデンティティ名前空間(IIN)内の前記特定のコンピュート・インスタンスへ割り当てられる第一暗号で検証可能なアイデンティティ(CVI)のインディケーションを提供し、前記第一CVIが前記第一コンピュート・インスタンスのために指定された暗号鍵ペアと関連し、前記暗号鍵ペアの秘密鍵は、セキュア鍵ストア外部の位置へ前記秘密鍵のコピーを防止するように設定された前記セキュア鍵ストアにより管理され、前記仮想コンピューティング・サービスは、前記特定のコンピュート・インスタンスが前記秘密鍵を使用して、前記第一CVIの前記インディケーションを提供することを可能にし、
前記第一CVIが前記第一オーセンティケータにより受諾された判定に応答して、前記第一アプリケーションの1つ以上の操作を実行し、
第二アプリケーションと関連した第二オーセンティケータから第二アイデンティティ・クエリに応答して、別のIIN内の前記第一コンピュート・インスタンスに割り当てられた別のCVIのインディケーションを提供し、
前記第二CVIが前記第二オーセンティケータにより受諾された判定に応答して、前記第二アプリケーションの1つ以上の操作を実行する、
ように設定される、
システム。
2.前記第一CVIの前記インディケーションは、公開鍵基盤(PKI)標準に従いフォーマットされた第一証明書を含む、条項1に記載の前記システム。
3.前記特定のコンピュート・インスタンスは、
前記第一インスタンス・ホストの仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを呼び出し、前記第一CVIの前記インディケーション内に含まれた少なくとも1つのアーティファクトを取得する、
ようにさらに設定される、条項1に記載の前記システム。
4.前記セキュア鍵ストアは、(a)プロバイダ・ネットワークのセキュリティ・サービスのハードウェア・セキュリティ・モジュール、または(b)前記第一インスタンス・ホストの通信バスに接続された周辺機器、のうちの1つを含む、条項1に記載の前記システム。
5.前記第一CVIは、
(a)前記特定のコンピュート・インスタンスに割り当てられた仮想IP(インターネット・プロトコル)アドレスに少なくとも部分的に基づき前記特定のコンピュート・インスタンスのDNS(ドメイン名システム)名、(b)前記特定のコンピュート・インスタンスに割り当てられたパブリックIPアドレス、(c)前記特定のコンピュート・インスタンスに割り当てられたプライベートIPアドレス、(d)VCS定義の名前空間から前記プロバイダ・ネットワークの前記仮想コンピューティング・サービス(VCS)により前記特定のコンピュート・インスタンスに割り当てられた一意の名前、(e)前記プロバイダ・ネットワークの顧客により顧客定義の名前空間から選択された一意の名前、(f)前記プロバイダ・ネットワークの顧客によりVCS定義の名前空間から選択された名前、(g)前記プロバイダ・ネットワークの顧客により選択されたDNS名、または(h)第三者により定義された名前空間内の前記特定のコンピュート・インスタンスに割り当てられた名前、のうちの1つ以上を含む、条項1に記載の前記システム。
6.プロバイダ・ネットワークに仮想コンピューティング・サービスのインスタンス・ホストで、1つ以上のコンピュート・インスタンスを起動し、
前記1つ以上のコンピュート・インスタンスの第一コンピュート・インスタンスで、第一アイデンティティ・クエリを受信し、
前記第一アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、第一インスタンス・アイデンティティ名前空間(IIN)内に前記第一コンピュート・インスタンスに割り当てられた第一暗号で検証可能なアイデンティティ(CVI)のインディケーションを提供し、前記第一CVIは、暗号鍵ペアと関連し、前記暗号鍵ペアの秘密鍵は、前記秘密鍵のコピーを防止するように設定されたセキュア鍵ストアにより管理され、前記仮想コンピューティング・サービスは、前記第一コンピュート・インスタンスが前記秘密鍵を使用し、前記第一CVIの前記インディケーションを提供することを可能にし、
前記第一コンピュート・インスタンスで、第二アイデンティティ・クエリを受信し、
前記第二アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、別のIIN内の前記第一コンピュート・インスタンスへ割り当てられた別のCVIのインディケーションを提供する、
ことを備える、方法。
7.前記第一CVIの前記インディケーションは、公開鍵基盤(PKI)標準に従いフォーマットされた第一証明書を含む、条項6に記載の前記方法。
8.前記第一コンピュート・インスタンスにより、前記インスタンス・ホストの仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを呼び出し、前記第一CVIの前記インディケーション内に含まれたアーティファクトの少なくとも部分を取得する、
ことをさらに備える、条項6に記載の前記方法。
9.前記第二CVIは、別の暗号鍵ペアと関連する、条項6に記載の前記方法。
10.前記セキュア鍵ストアは、(a)プロバイダ・ネットワークのセキュリティ・サービスのハードウェア・セキュリティ・モジュール、または(b)前記インスタンス・ホストの通信バスに接続された周辺機器、のうちの1つを含む、条項6に記載の前記方法。
11.前記第一CVIは、(a)前記第一コンピュート・インスタンスに割り当てられた仮想IP(インターネット・プロトコル)アドレスに少なくとも部分的に基づき前記第一コンピュート・インスタンスのDNS(ドメイン名システム)名、(b)前記第一コンピュート・インスタンスに割り当てられたパブリックIPアドレス、(c)前記第一コンピュート・インスタンスに割り当てられたプライベートIPアドレス、(d)仮想コンピューティング・サービス(VCS)定義の名前空間から前記プロバイダ・ネットワークのVCSにより前記第一コンピュート・インスタンスに割り当てられた一意の名前、(e)前記プロバイダ・ネットワークの顧客により顧客定義の名前空間から選択された一意の名前、(f)前記プロバイダ・ネットワークの顧客によりVCS定義の名前空間から選択された名前、(g)前記プロバイダ・ネットワークの顧客により選択されたDNS名、または(h)第三者により定義された名前空間内の前記特定のコンピュート・インスタンスに割り当てられた名前、のうちの1つ以上を備える、条項6に記載の前記方法。
12.前記第一CVIの前記インディケーションは、(a)公的認証局(CA)、(b)前記プロバイダ・ネットワーク内に実装された検証局、(c)前記第一コンピュート・インスタンスを割り当てる前記プロバイダ・ネットワークの顧客により所有された顧客ネットワーク内に実装された検証局、または(d)第三者検証局、のうちの1つ以上を備えるアイデンティティ・バリデータを含む、条項6に記載の前記方法。
13.前記第一アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、前記第一CVIの第一有効期間のインディケーションを提供し、
前記第二アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、前記第二CVIの第二有効期間のインディケーションを提供し、前記第二有効期間は、前記第一有効期間と異なる、
ことをさらに備える、条項6に記載の前記方法。
14.前記プロバイダ・ネットワークのコントロール・プレーン・コンポーネントで、前記第一コンピュート・インスタンスが前記第一IIN内にアイデンティティを割り当てられることを示すインスタンス設定要求を受信し、
前記インスタンス設定要求に応答して前記コントロール・プレーン・コンポーネントにより、前記第一IIN内に前記第一コンピュート・インスタンスへのアイデンティティの割り当てを開始する、
ことをさらに備える、条項6に記載の前記方法。
15.前記第一アイデンティティ・クエリは、第一アプリケーションと関連したライセンス・マネージャから前記第一コンピュート・インスタンスで受信され、前記第一CVIは、前記ライセンス・マネージャにより使用され、前記第一コンピュート・インスタンスが前記第一アプリケーションを利用するライセンスを供与されることを検証する、条項6に記載の前記方法。
16.前記プロバイダ・ネットワークで実装された特定のサービスのサービス・マネージャにより、第二コンピュート・インスタンス、及び第三コンピュート・インスタンスを備えるインスタンス・フェイルオーバー・グループを確立し、前記第二コンピュート・インスタンスで障害の場合には、前記第二コンピュート・インスタンスで実行していたアプリケーションは、前記第三コンピュート・インスタンスへフェイルオーバーされ、
前記サービス・マネージャにより、(a)前記第二コンピュート・インスタンスへの共有されたCVIの割り当て、及び(b)前記第三コンピュート・インスタンスへの前記共有されたCVIの割り当てを開始し、前記共有されたCVIは、前記アプリケーションを前記第二コンピュート・インスタンスで、及び前記第三コンピュート・インスタンスで実行可能であることを検証するために使用される、
ことをさらに備える、条項6に記載の前記方法。
17.1つ以上のプロセッサで実行されるときに、
仮想コンピューティング・サービスの第一コンピュート・インスタンスで、第一アイデンティティ・クエリを受信し、
前記第一アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、第一インスタンス・アイデンティティ名前空間(IIN)内に前記第一コンピュート・インスタンスに割り当てられた第一暗号で検証可能なアイデンティティ(CVI)のインディケーションを提供し、前記第一CVIは、暗号鍵ペアと関連し、前記暗号鍵ペアの秘密鍵は、前記秘密鍵のコピーを防止するように設定されたセキュア鍵ストアにより管理され、前記仮想コンピューティング・サービスは、前記第一コンピュート・インスタンスが前記秘密鍵を使用して、前記第一CVIの前記インディケーションを提供することを可能にし、
前記第一コンピュート・インスタンスで、第二アイデンティティ・クエリを受信し、
前記第二アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、別のIIN内の前記第一コンピュート・インスタンスに割り当てられた別のCVIのインディケーションを提供する、
プログラム命令を格納する非一時的なコンピュータ・アクセス可能な記憶媒体。
18.前記第一CVIの前記インディケーションは、公開鍵基盤(PKI)標準に従いフォーマットされた第一証明書を含む、条項17に記載の前記非一時的なコンピュータ・アクセス可能な記憶媒体。
19.前記1つ以上のプロセッサで実行されるときに、前記命令は、
前記第一コンピュート・インスタンスから、インスタンス・ホストの仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを呼び出し、前記第一CVIの前記インディケーション内に含まれたデータの少なくとも部分を取得する、
条項17に記載の前記非一時的なコンピュータ・アクセス可能な記憶媒体。
20.前記第一CVIは、(a)前記インスタンスに割り当てられた仮想IP(インターネット・プロトコル)アドレスに少なくとも部分的に基づく前記第一コンピュート・インスタンスのDNS(ドメイン名システム)名、(b)前記第一コンピュート・インスタンスに割り当てられたパブリックIPアドレス、(c)前記第一コンピュート・インスタンスに割り当てられたプライベートIPアドレス、(d)VCS定義の名前空間からプロバイダ・ネットワークの仮想コンピューティング・サービス(VCS)により前記第一コンピュート・インスタンスに割り当てられた一意の名前、(e)プロバイダ・ネットワークの顧客により顧客定義の名前空間から選択された一意の名前、(f)プロバイダ・ネットワークの顧客によりVCS定義の名前空間から選択された名前、(g)プロバイダ・ネットワークの顧客により選択されたDNS名、または(h)第三者により定義された名前空間内の前記第一コンピュート・インスタンスに割り当てられた名前、のうちの1つ以上を備える、条項17に記載の前記非一時的なコンピュータ・アクセス可能な記憶媒体。

Claims (15)

  1. 1つ以上のコンピュート・インスタンスを備える少なくとも第一インスタンス・ホストを含む、プロバイダ・ネットワークの仮想コンピューティング・サービスの複数のインスタンス・ホスト、
    を備え、
    前記1つ以上のコンピュート・インスタンスの第一コンピュート・インスタンスは、
    第一アプリケーションと関連する第一オーセンティケータからの第一アイデンティティ・クエリに応答して、第一インスタンス・アイデンティティ名前空間(IIN)内に前記第一コンピュート・インスタンスに割り当てられた第一暗号で検証可能な第一アイデンティティ(CVI)のインディケーションを提供し、前記第一CVIは、前記第一コンピュート・インスタンスのために指定された暗号鍵ペアと関連し、前記暗号鍵ペアの秘密鍵は、セキュア鍵ストアの外部の位置へ前記秘密鍵のコピーを防止するように設定された前記セキュア鍵ストアにより管理され、前記仮想コンピューティング・サービスは、前記第一コンピュート・インスタンスが前記秘密鍵を使用して前記第一CVIの前記インディケーションを提供することを可能にし、
    前記第一CVIが前記第一オーセンティケータにより受諾された判定に応答して、前記第一アプリケーションの1つ以上の操作を実行し、
    第二アプリケーションと関連した第二オーセンティケータからの第二アイデンティティ・クエリに応答して、別のIIN内に前記第一コンピュート・インスタンスに割り当てられた二CVIのインディケーションを提供し、前記第二CVIは、前記第一CVIと異なり、
    前記第二CVIが前記第二オーセンティケータにより受諾された判定に応答して、前記第二アプリケーションの1つ以上の操作を実行する、
    ように設定される、
    システム。
  2. 前記第一コンピュート・インスタンスは、
    前記第一インスタンス・ホストの仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを呼び出し、前記第一CVIの前記インディケーション内に含まれた少なくとも1つのアーティファクトを取得する、
    ようにさらに設定される、請求項1に記載のシステム。
  3. 前記セキュア鍵ストアは、(a)プロバイダ・ネットワークのセキュリティ・サービスのハードウェア・セキュリティ・モジュール、または(b)前記第一インスタンス・ホストの通信バスに接続された周辺機器、のうちの1つを備える、請求項1に記載のシステム。
  4. 前記第一CVIは、(a)前記第一コンピュート・インスタンスに割り当てられた仮想IP(インターネット・プロトコル)アドレスに少なくとも部分的に基づき前記第一コンピュート・インスタンスのDNS(ドメイン名システム)名、(b)前記第一コンピュート・インスタンスに割り当てられたパブリックIPアドレス、(c)前記第一コンピュート・インスタンスに割り当てられたプライベートIPアドレス、(d)仮想コンピューティング・サービス(VCS)定義の名前空間から前記プロバイダ・ネットワークの前記VCSにより前記第一コンピュート・インスタンスに割り当てられた一意の名前、(e)前記プロバイダ・ネットワークの顧客により顧客定義の名前空間から選択された一意の名前、(f)前記プロバイダ・ネットワークの顧客によりVCS定義の名前空間から選択された名前、(g)前記プロバイダ・ネットワークの顧客により選択されたDNS名、または(h)第三者により定義された名前空間内に前記第一コンピュート・インスタンスに割り当てられた名前、のうちの1つ以上を備える、請求項1に記載のシステム。
  5. プロバイダ・ネットワークに仮想コンピューティング・サービスのインスタンス・ホストで、1つ以上のコンピュート・インスタンスを起動し、
    前記1つ以上のコンピュート・インスタンスの第一コンピュート・インスタンスで、第一アイデンティティ・クエリを受信し、
    前記第一アイデンティティ・クエリに応答して、前記第一コンピュート・インスタンスから、第一インスタンス・アイデンティティ名前空間(IIN)内の前記第一コンピュート・インスタンスに割り当てられた第一暗号で検証可能な第一アイデンティティ(CVI)のインディケーションを提供し、前記第一CVIは、暗号鍵ペアと関連し、前記暗号鍵ペアの秘密鍵は、前記秘密鍵のコピーを防止するように設定されたセキュア鍵ストアにより管理され、前記仮想コンピューティング・サービスは、前記第一コンピュート・インスタンスが前記秘密鍵を使用して前記第一CVIの前記インディケーションを提供することを可能にし、
    前記第一コンピュート・インスタンスで、第二アイデンティティ・クエリを受信し、
    前記第二アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、別のIIN内の前記第一コンピュート・インスタンスに割り当てられた、前記第1のCVIとは別の第二CVIのインディケーションを提供する、
    ことを備える、方法。
  6. 前記第一CVIの前記インディケーションは、公開鍵基盤(PKI)標準に従いフォーマットされた第一証明書を含む、請求項5に記載の方法。
  7. 前記第一コンピュート・インスタンスにより、前記インスタンス・ホストの仮想化管理コンポーネントにより実装されたプログラマティック・インタフェースを起動し、前記第一CVIの前記インディケーション内に含まれたアーティファクトの少なくとも部分を取得する、
    ことをさらに備える、請求項5に記載の方法。
  8. 前記第二CVIは、別の暗号鍵ペアと関連する、請求項5に記載の方法。
  9. 前記セキュア鍵ストアは、(a)プロバイダ・ネットワークのセキュリティ・サービスのハードウェア・セキュリティ・モジュール、または(b)前記インスタンス・ホストの通信バスに接続された周辺機器、のうちの1つを備える、請求項5に記載の方法。
  10. 前記第一CVIは、(a)前記第一コンピュート・インスタンスに割り当てられた仮想IP(インターネット・プロトコル)アドレスに少なくとも部分的に基づく前記第一コンピュート・インスタンスのDNS(ドメイン名システム)名、(b)前記第一コンピュート・インスタンスに割り当てられたパブリックIPアドレス、(c)前記第一コンピュート・インスタンスに割り当てられたプライベートIPアドレス、(d)仮想コンピューティング・サービス(VCS)定義の名前空間から前記プロバイダ・ネットワークのVCSにより前記第一コンピュート・インスタンスに割り当てられた一意の名前、(e)前記プロバイダ・ネットワークの顧客により顧客定義の名前空間から選択された一意の名前、(f)前記プロバイダ・ネットワークの顧客によりVCS定義の名前空間から選択された名前、(g)前記プロバイダ・ネットワークの顧客により選択されたDNS名、または(h)第三者により定義された名前空間内の前記第一コンピュート・インスタンスに割り当てられた名前、のうちの1つ以上を備える、請求項5に記載の方法。
  11. 前記第一CVIの前記インディケーションは、(a)公的認証局(CA)、(b)前記プロバイダ・ネットワーク内に実装された検証局、(c)前記第一コンピュート・インスタンスを割り当てる前記プロバイダ・ネットワークの顧客により所有された顧客ネットワーク内に実装された検証局、または(d)第三者検証局、のうちの1つ以上を備えるアイデンティティ・バリデータを含む、請求項5に記載の方法。
  12. 前記第一アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、前記第一CVIの第一有効期間のインディケーションを提供し、
    前記第二アイデンティティ・クエリに応答して前記第一コンピュート・インスタンスから、前記第二CVIの第二有効期間のインディケーションを提供し、前記第二有効期間は、前記第一有効期間と異なる、
    ことをさらに備える、請求項5に記載の方法。
  13. 前記プロバイダ・ネットワークのコントロール・プレーン・コンポーネントで、前記第一コンピュート・インスタンスが前記第一IIN内にアイデンティティを割り当てられることを示すインスタンス設定要求を受信し、
    前記インスタンス設定要求に応答して前記コントロール・プレーン・コンポーネントにより、前記第一IIN内に前記第一コンピュート・インスタンスへのアイデンティティの割り当てを開始する、
    ことをさらに備える、請求項5に記載の方法。
  14. 前記第一アイデンティティ・クエリは、第一アプリケーションと関連したライセンス・マネージャから前記第一コンピュート・インスタンスで受信され、前記第一CVIは、前記ライセンス・マネージャにより使用され、前記第一コンピュート・インスタンスが前記第一アプリケーションを利用するライセンスを供与されることを検証する、請求項5に記載の方法。
  15. 前記プロバイダ・ネットワークで実装された特定のサービスのサービス・マネージャにより、第二コンピュート・インスタンス、及び第三コンピュート・インスタンスを含むインスタンス・フェイルオーバー・グループを確立し、前記第二コンピュート・インスタンスで障害の場合には、前記第二コンピュート・インスタンスで実行していたアプリケーションは、前記第三コンピュート・インスタンスにフェイルオーバーされ、
    前記サービス・マネージャにより、(a)前記第二コンピュート・インスタンスへ共有されたCVIの割り当て、及び(b)前記第三コンピュート・インスタンスへ前記共有されたCVIの割り当て、を開始し、前記共有されたCVIを使用して、前記第二コンピュート・インスタンスで、及び前記第三コンピュート・インスタンスで前記アプリケーションを実行可能であることを検証する、
    ことをさらに備える、請求項5に記載の方法。
JP2017531524A 2014-12-19 2015-12-18 マルチファセット・コンピュート・インスタンス・アイデンティティ Active JP6521337B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/577,232 US9525672B2 (en) 2014-12-19 2014-12-19 Multi-faceted compute instance identity
US14/577,232 2014-12-19
PCT/US2015/066875 WO2016100918A1 (en) 2014-12-19 2015-12-18 Multi-faceted compute instance identity

Publications (2)

Publication Number Publication Date
JP2018501565A JP2018501565A (ja) 2018-01-18
JP6521337B2 true JP6521337B2 (ja) 2019-05-29

Family

ID=55080226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017531524A Active JP6521337B2 (ja) 2014-12-19 2015-12-18 マルチファセット・コンピュート・インスタンス・アイデンティティ

Country Status (9)

Country Link
US (1) US9525672B2 (ja)
EP (1) EP3234846B1 (ja)
JP (1) JP6521337B2 (ja)
KR (1) KR101957076B1 (ja)
CN (1) CN107113300B (ja)
AU (1) AU2015364339B2 (ja)
RU (1) RU2679188C2 (ja)
SG (1) SG11201704703UA (ja)
WO (1) WO2016100918A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303879B1 (en) * 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
US9847992B2 (en) * 2015-08-20 2017-12-19 Verizon Digital Media Services Inc. End-to-end certificate pinning
EP3403432B1 (en) 2016-01-15 2020-11-18 Microsoft Technology Licensing, LLC Database based redundancy in a telecommunications network
US10320572B2 (en) * 2016-08-04 2019-06-11 Microsoft Technology Licensing, Llc Scope-based certificate deployment
US10425417B2 (en) 2017-03-08 2019-09-24 Bank Of America Corporation Certificate system for verifying authorized and unauthorized secure sessions
US10432595B2 (en) 2017-03-08 2019-10-01 Bank Of America Corporation Secure session creation system utililizing multiple keys
US10374808B2 (en) * 2017-03-08 2019-08-06 Bank Of America Corporation Verification system for creating a secure link
US10361852B2 (en) * 2017-03-08 2019-07-23 Bank Of America Corporation Secure verification system
US10511651B2 (en) * 2017-04-25 2019-12-17 General Electric Company Infinite micro-services architecture
US10659222B2 (en) * 2017-04-28 2020-05-19 IronCore Labs, Inc. Orthogonal access control for groups via multi-hop transform encryption
US11151253B1 (en) * 2017-05-18 2021-10-19 Wells Fargo Bank, N.A. Credentialing cloud-based applications
US10615971B2 (en) * 2017-05-22 2020-04-07 Microsoft Technology Licensing, Llc High integrity logs for distributed software services
GB2565282B (en) * 2017-08-02 2021-12-22 Vnc Automotive Ltd Remote control of a computing device
US10860336B2 (en) 2017-10-27 2020-12-08 Google Llc Managing multi-single-tenant SaaS services
US11616686B1 (en) * 2017-11-21 2023-03-28 Amazon Technologies, Inc. Cluster management
US10742412B2 (en) 2018-01-29 2020-08-11 Micro Focus Llc Separate cryptographic keys for multiple modes
US11140020B1 (en) * 2018-03-01 2021-10-05 Amazon Technologies, Inc. Availability-enhancing gateways for network traffic in virtualized computing environments
RU2684483C1 (ru) * 2018-05-23 2019-04-09 Олег Викторович Пушкин Устройство для защиты от несанкционированного доступа к данным, хранимым на компьютере
US11121921B2 (en) 2019-01-15 2021-09-14 Microsoft Technology Licensing, Llc Dynamic auto-configuration of multi-tenant PaaS components
EP3694173B1 (en) 2019-02-08 2022-09-21 Palantir Technologies Inc. Isolating applications associated with multiple tenants within a computing platform
US11494214B2 (en) * 2019-03-28 2022-11-08 Amazon Technologies, Inc. Verified isolated run-time environments for enhanced security computations within compute instances
US20210073736A1 (en) * 2019-09-10 2021-03-11 Alawi Holdings LLC Computer implemented system and associated methods for management of workplace incident reporting
US11979302B2 (en) * 2019-12-03 2024-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Discovery of a service-providing network function
US11442960B2 (en) * 2019-12-17 2022-09-13 Verizon Patent And Licensing Inc. Edge key value store for a distributed platform
DE102019135121A1 (de) * 2019-12-19 2021-06-24 Infineon Technologies Ag Verfahren und vorrichtung zum bereitstellen einer zusätzlichen autorisierung für die verarbeitung eines kryptographisch gesicherten datensatzes für eine teilmenge einer gruppe vertrauenswürdiger module

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10026326B4 (de) * 2000-05-26 2016-02-04 Ipcom Gmbh & Co. Kg Verfahren zur kryptografisch prüfbaren Identifikation einer physikalischen Einheit in einem offenen drahtlosen Telekommunikationsnetzwerk
US7703128B2 (en) 2003-02-13 2010-04-20 Microsoft Corporation Digital identity management
US8621078B1 (en) * 2005-08-15 2013-12-31 F5 Networks, Inc. Certificate selection for virtual host servers
US7802092B1 (en) * 2005-09-30 2010-09-21 Blue Coat Systems, Inc. Method and system for automatic secure delivery of appliance updates
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US8522018B2 (en) 2006-08-18 2013-08-27 Fujitsu Limited Method and system for implementing a mobile trusted platform module
US8341625B2 (en) 2008-05-29 2012-12-25 Red Hat, Inc. Systems and methods for identification and management of cloud-based virtual machines
US20100174811A1 (en) 2009-01-05 2010-07-08 Microsoft Corporation Network isolation and identity management of cloned virtual machines
US8327434B2 (en) 2009-08-14 2012-12-04 Novell, Inc. System and method for implementing a proxy authentication server to provide authentication for resources not located behind the proxy authentication server
US8122282B2 (en) * 2010-03-12 2012-02-21 International Business Machines Corporation Starting virtual instances within a cloud computing environment
US10482254B2 (en) * 2010-07-14 2019-11-19 Intel Corporation Domain-authenticated control of platform resources
MY167494A (en) 2010-10-05 2018-08-30 Mimos Berhad A MIGRATION SYSTEM OF VIRTUAL TRUSTED PLATFORM MODULE (vTPM) INSTANCE AND METHODS OF MIGRATING THEREOF
US8924715B2 (en) * 2010-10-28 2014-12-30 Stephan V. Schell Methods and apparatus for storage and execution of access control clients
US8625788B2 (en) * 2011-01-05 2014-01-07 Intel Corporation Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform
US8495219B2 (en) 2011-01-13 2013-07-23 International Business Machines Corporation Identity management method and system
US9344282B2 (en) 2011-03-22 2016-05-17 Microsoft Technology Licensing, Llc Central and implicit certificate management
US8751306B2 (en) * 2011-06-20 2014-06-10 Microsoft Corporation Virtual identity manager
US8375221B1 (en) 2011-07-29 2013-02-12 Microsoft Corporation Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
US9413538B2 (en) * 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9218490B2 (en) 2011-12-30 2015-12-22 Intel Corporation Using a trusted platform module for boot policy and secure firmware
US8738902B2 (en) * 2012-01-27 2014-05-27 Microsoft Corporation Implicit SSL certificate management without server name indication (SNI)
JP5137221B1 (ja) * 2012-02-21 2013-02-06 テック・パワー株式会社 収納ボックス及び机
US9210162B2 (en) * 2012-05-02 2015-12-08 Microsoft Technology Licensing, Llc Certificate based connection to cloud virtual machine
US20140007087A1 (en) 2012-06-29 2014-01-02 Mark Scott-Nash Virtual trusted platform module
US20140006776A1 (en) 2012-06-29 2014-01-02 Mark Scott-Nash Certification of a virtual trusted platform module
US9027087B2 (en) * 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines

Also Published As

Publication number Publication date
RU2017120215A (ru) 2019-01-22
RU2017120215A3 (ja) 2019-01-22
US9525672B2 (en) 2016-12-20
EP3234846B1 (en) 2021-02-03
KR20170089901A (ko) 2017-08-04
EP3234846A1 (en) 2017-10-25
KR101957076B1 (ko) 2019-03-11
CN107113300B (zh) 2020-08-25
AU2015364339A1 (en) 2017-06-29
AU2015364339B2 (en) 2018-05-17
CN107113300A (zh) 2017-08-29
SG11201704703UA (en) 2017-07-28
JP2018501565A (ja) 2018-01-18
RU2679188C2 (ru) 2019-02-06
WO2016100918A1 (en) 2016-06-23
US20160182473A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
JP6521337B2 (ja) マルチファセット・コンピュート・インスタンス・アイデンティティ
US11075952B2 (en) Access control policy management in a computing environment
US9800669B2 (en) Connection leasing for hosted services
US10803027B1 (en) Method and system for managing file system access and interaction
JP6403789B2 (ja) デジタル証明書の提供方法及びマルチテナントサービス装置
CA2939925C (en) Securing client-specified credentials at cryptographically attested resources
US8583920B1 (en) Secure administration of virtual machines
US8943319B2 (en) Managing security for computer services
US8948399B2 (en) Dynamic key management
US10318747B1 (en) Block chain based authentication
EP2429146B1 (en) Method and apparatus for authenticating access by a service
US20220385454A1 (en) Causal total order broadcast protocols using trusted execution environments
US11647020B2 (en) Satellite service for machine authentication in hybrid environments
CN113330435A (zh) 跟踪被污染的连接代理
US20240095338A1 (en) Isolated runtime environments for securing secrets used to access remote resources from compute instances
US20220309143A1 (en) Method and system for service image deployment in a cloud computing system based on distributed ledger technology
WO2024064425A1 (en) Managing unique secrets in distributed systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181003

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190417

R150 Certificate of patent or registration of utility model

Ref document number: 6521337

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250