(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-12
(54)【発明の名称】許可ブローカリング
(51)【国際特許分類】
G06F 21/62 20130101AFI20250204BHJP
G06F 21/31 20130101ALI20250204BHJP
【FI】
G06F21/62 318
G06F21/31
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024540910
(86)(22)【出願日】2022-11-16
(85)【翻訳文提出日】2024-09-03
(86)【国際出願番号】 US2022079919
(87)【国際公開番号】W WO2023132999
(87)【国際公開日】2023-07-13
(32)【優先日】2022-01-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】フォーゲル,ダニエル・エム
(72)【発明者】
【氏名】ステイスカル,ダン・ローレン
(57)【要約】
本明細書では、インフラストラクチャサービスのセキュアエンティティへのアクセス用のクレデンシャルを管理するためのフレームワークについて記載されている。たとえば、コンピューティングシステムが、顧客デバイスからアクションの実行を求める要求を受信することと、顧客デバイスに対応する加入者を判定することと、加入者が顧客デバイスにアクションの実行の許可を与えていると判定することと、顧客デバイスに代わってセキュアエンティティにアクセスするためのクレデンシャルを生成することと、クレデンシャルを顧客デバイスから分離して維持することと、顧客デバイスに代わってアクションの実行のためにクレデンシャルを使用することとを含む動作を実行する。
【特許請求の範囲】
【請求項1】
命令が記録された1つまたは複数の非一時的なコンピュータ可読媒体であって、前記命令はコンピューティングシステムによって実行されると前記コンピューティングシステムに、
顧客デバイスから、前記顧客デバイスの識別子とセキュアエンティティによって実行されるアクションとを含む、前記アクションの実行を求める要求を受信することと、
前記顧客デバイスの前記識別子に少なくとも部分的に基づいて前記顧客デバイスに対応する加入者を判定することと、
前記加入者が前記顧客デバイスに前記アクションの実行の許可を与えていると判定することと、
前記顧客デバイスが前記アクションの実行の許可を有するとの判定に少なくとも部分的に基づいて、前記顧客デバイスに代わって前記セキュアエンティティへのアクセスのためのクレデンシャルを生成することと、
前記顧客デバイスから分離して前記クレデンシャルを維持することと、
前記顧客デバイスに代わって前記アクションの実行のために前記クレデンシャルを使用することとを行わせる、1つまたは複数の非一時的なコンピュータ可読媒体。
【請求項2】
前記コンピューティングシステムおよび前記セキュアエンティティは信頼できる環境内に位置し、前記クレデンシャルを前記顧客デバイスから分離して維持することは、前記クレデンシャルを前記信頼できる環境内で維持することを含む、請求項1に記載の1つまたは複数の非一時的なコンピュータ可読媒体。
【請求項3】
前記加入者が前記アクションの実行の許可を与えていると判定することは、
前記加入者が前記顧客デバイスに許可を与えた1つまたは複数のアクションを判定することと、
前記要求によって示された前記アクションが前記1つまたは複数のアクションに含まれると判定することとを含む、請求項1または請求項2に記載の1つまたは複数の非一時的なコンピュータ可読媒体。
【請求項4】
前記クレデンシャルを生成することは、前記クレデンシャルを生成するために前記セキュアエンティティに対応する鍵を使用することを含む、先行する請求項のいずれか1項に記載の1つまたは複数の非一時的なコンピュータ可読媒体。
【請求項5】
前記命令は、前記コンピューティングシステムによって実行されると前記コンピューティングシステムにさらに、
前記鍵の有効期間が満了したと判定することと、
前記鍵の前記有効期間が満了したとの前記判定に少なくとも部分的に基づいて、前記セキュアエンティティにより前記鍵をリフレッシュすることと、
リフレッシュされた前記鍵を前記顧客デバイスから分離して維持することとを行わせる、請求項4に記載の1つまたは複数の非一時的なコンピュータ可読媒体。
【請求項6】
前記命令は、前記コンピューティングシステムによって実行されると前記コンピューティングシステムにさらに、前記セキュアエンティティの境界においてブローカーを実装させ、前記コンピューティングシステムの前記ブローカーは、前記クレデンシャルを生成し、前記クレデンシャルを前記顧客デバイスから分離して維持し、前記顧客デバイスに代わって前記アクションの実行のために前記クレデンシャルを使用することになる、先行する請求項のいずれか1項に記載の1つまたは複数の非一時的なコンピュータ可読媒体。
【請求項7】
前記セキュアエンティティは、前記コンピューティングシステムのエンクレーブである、請求項6に記載の1つまたは複数の非一時的なコンピュータ可読媒体。
【請求項8】
前記クレデンシャルを前記アクションの実行のために使用することは、
前記セキュアエンティティへのアクセスを取得するために前記クレデンシャルを前記セキュアエンティティに提供することと、
前記セキュアエンティティに前記アクションの実行を要求することとを含む、先行する請求項のいずれか1項に記載の1つまたは複数の非一時的なコンピュータ可読媒体。
【請求項9】
1つまたは複数のクレデンシャルを記憶するメモリと、
前記メモリに結合された1つまたは複数のプロセッサとを含み、前記1つまたは複数のプロセッサは、
セキュアエンティティによるアクションの実行を求める要求を受信し、前記要求は顧客デバイスから受信され、
前記1つまたは複数のプロセッサは、
前記顧客デバイスの識別子に少なくとも部分的に基づいて前記顧客デバイスに対応する加入者を判定し、
前記加入者が前記顧客デバイスに前記アクションの実行の許可を与えていると判定し、
前記加入者が前記顧客デバイスに前記アクションの実行の許可を与えているとの前記判定に少なくとも部分的に基づいて、前記セキュアエンティティへのアクセスのためのクレデンシャルを生成し、
前記クレデンシャルを前記メモリに記憶し、前記クレデンシャルは前記顧客デバイスから分離して記憶され、
前記1つまたは複数のプロセッサは、
前記顧客デバイスに代わって前記アクションの実行のために前記クレデンシャルを使用する、コンピューティングシステム。
【請求項10】
前記1つまたは複数のプロセッサはさらに、前記セキュアエンティティから鍵を取り出し、前記クレデンシャルを生成することは、前記鍵に少なくとも部分的に基づいて前記クレデンシャルを生成することを含む、請求項9に記載のコンピューティングシステム。
【請求項11】
前記1つまたは複数のプロセッサはさらに、
前記鍵の有効期間が満了したと判定し、
前記鍵の前記有効期間が満了したとの前記判定に少なくとも部分的に基づいて前記セキュアエンティティにより前記鍵をリフレッシュする、請求項10に記載のコンピューティングシステム。
【請求項12】
前記加入者が前記顧客デバイスに前記アクションの実行の許可を与えていると判定することは、
前記加入者が前記顧客デバイスに許可を与えた1つまたは複数のアクションを判定することと、
前記アクションが前記1つまたは複数のアクションに含まれると判定することとを含む、請求項9~請求項11のいずれか1項に記載のコンピューティングシステム。
【請求項13】
前記クレデンシャルは前記1つまたは複数のアクションに関連付けられている、請求項12に記載のコンピューティングシステム。
【請求項14】
前記アクションは対価請求記録の入力を含み、前記クレデンシャルを前記アクションの実行のために使用することは、
前記セキュアエンティティへのアクセスを取得するために前記クレデンシャルを前記セキュアエンティティに提供することと、
前記セキュアエンティティに前記対価請求記録を入力させることとを含む、請求項9~請求項13のいずれか1項に記載のコンピューティングシステム。
【請求項15】
前記コンピューティングシステムは、クラウドインフラストラクチャサービスを含み、前記セキュアエンティティは、前記クラウドインフラストラクチャサービス内のエンクレーブを含み、前記1つまたは複数のプロセッサはさらに、前記エンクレーブの境界においてブローカーを実装し、前記コンピューティングシステムの前記ブローカーは、前記セキュアエンティティへのアクセスのための前記クレデンシャルを生成し、前記アクションの実行のために前記クレデンシャルを使用することとなる、請求項9~請求項14のいずれか1項に記載のコンピューティングシステム。
【請求項16】
セキュアエンティティによりアクションを実行する方法であって、
ブローカーが、顧客デバイスから前記セキュアエンティティによるアクションの実行を求める要求を受信することと、
前記ブローカーが、前記顧客デバイスが前記アクションの実行を許可されていると判定することと、
前記ブローカーが、前記顧客デバイスが前記アクションの実行を許可されているとの前記判定に少なくとも部分的に基づいて、前記セキュアエンティティへのアクセスのためのクレデンシャルを生成することと、
前記ブローカーが、前記顧客デバイスに代わって前記セキュアエンティティに前記アクションを実行させるために前記クレデンシャルを使用することとを含む、方法。
【請求項17】
前記セキュアエンティティおよび前記ブローカーは、信頼できる環境内に位置し、前記顧客デバイスは前記信頼できる環境の外部に位置し、前記方法は、前記ブローカーが前記クレデンシャルを前記信頼できる環境内で維持することをさらに含む、請求項16に記載の方法。
【請求項18】
前記セキュアエンティティは、コンピューティングシステムのエンクレーブを含み、前記アクションの実行を求める前記要求を受信することは、前記ブローカーが前記エンクレーブの境界において前記アクションの実行を求める前記要求を受信することを含む、請求項16または請求項17に記載の方法。
【請求項19】
前記ブローカーが前記セキュアエンティティから鍵を取り出すことをさらに含み、前記クレデンシャルは前記鍵に少なくとも部分的に基づいて生成される、請求項16~請求項18のいずれか1項に記載の方法。
【請求項20】
前記ブローカーが前記鍵の有効期間が満了したと判定することと、
前記ブローカーが、前記鍵の前記有効期間が満了したとの前記判定に少なくとも部分的に基づいて前記セキュアエンティティにより前記鍵をリフレッシュすることとをさらに含む、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年1月7日に出願された「Authorization Brokering」という名称の米国非仮特許出願第17/571,338号の優先権を主張し、その開示全体があらゆる目的のために参照により本明細書に組み込まれる。
【0002】
分野
本開示は、インフラストラクチャサービスのセキュアエンティティにアクセスするために使用されるクレデンシャルを管理するためのフレームワークに関する。
【背景技術】
【0003】
背景
クラウドサービスプロバイダ(CSP:cloud service provider)は、異なるシステムおよびインフラストラクチャサービスを使用して、オンデマンドでユーザまたは顧客に様々なサービスを提供する。CSPは、顧客が自分のネットワークを構築し、顧客リソースをデプロイするために使用することができる、インフラストラクチャサービスを提供する。顧客がCSPへのアクセスを与えられるために、顧客は顧客アクセスを認めるクレデンシャルをCSPに提供する必要がある場合がある。
【0004】
CSPにアクセスするためのクレデンシャルの従来の手法は、CSPが顧客にクレデンシャルを提供することを必要とし、そのクレデンシャルはさらに、CSPへのアクセスを取得するためにサービスの要求時に顧客によってCSPに提供されることになる。顧客に提供されるクレデンシャルは、CSPに対して無許可のアクションを行うために不正行為者によって使用される可能性がある。したがって、顧客と共有されるクレデンシャルはCSP内の弱点になり得る。
【発明の概要】
【課題を解決するための手段】
【0005】
概要
本開示は、一般に、クラウドインフラストラクチャサービスなど、コンピューティングシステムへのアクセスのためのクレデンシャルを管理するためのフレームワークに関する。本明細書では、方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コードもしくは命令を記憶する非一時的なコンピュータ可読記憶媒体などを含む、様々な実施形態について説明する。これらの例示の実施形態は、本開示を限定または定義するためではなく、本開示の理解を助けるための実施例を示すために言及されている。追加の実施形態について詳細な説明の項で説明し、そこでさらなる説明を示す。
【0006】
本開示の一態様は、命令が記憶された1つまたは複数の非一時的なコンピュータ可読媒体を対象とし、命令はコンピューティングシステムによって実行されるとコンピューティングシステムに、顧客デバイスからのアクションの実行の要求を受信させることができ、要求は顧客デバイスの識別子と、セキュアエンティティによって実行されるアクションとを含む。命令はさらに、コンピューティングシステムに、顧客デバイスの識別子に少なくとも部分的に基づいて顧客デバイスに対応する加入者を判定させ、加入者がアクションの実行の許可を顧客デバイスに与えていると判定させることができる。また、命令は、コンピューティングシステムに、顧客デバイスがアクションの実行の許可を有するとの判定に少なくとも部分的に基づいて、顧客デバイスに代わってセキュアエンティティへのアクセスのためのクレデンシャルを生成させ、クレデンシャルを顧客デバイスから分離して維持させ、顧客デバイスに代わってアクションの実行のためにクレデンシャルを使用させることができる。
【0007】
本開示の一態様は、1つまたは複数のクレデンシャルを記憶するためのメモリと、メモリに結合された1つまたは複数のプロセッサとを含むコンピューティングシステムを対象とし、1つまたは複数のプロセッサは、セキュアエンティティによるアクションの実行を求める要求を受信することができ、要求は顧客デバイスから受信される。1つまたは複数のプロセッサはさらに、顧客デバイスの識別子に少なくとも部分的に基づいて、顧客デバイスに対応する加入者を判定し、加入者が顧客デバイスにアクションの実行の許可を与えていると判定することができる。1つまたは複数のプロセッサはさらに、加入者が顧客デバイスにアクションの実行の許可を与えているとの判定に少なくとも部分的に基づいて、セキュアエンティティへのアクセスのためのクレデンシャルを生成し、クレデンシャルをメモリに記憶することができ、クレデンシャルは顧客デバイスから分離して記憶され、1つまたは複数のプロセッサはクレデンシャルを顧客デバイスに代わってアクションを実行するために使用することができる。
【0008】
本開示の一態様は、セキュアエンティティによりアクションを実行する方法であって、ブローカーが、顧客デバイスからセキュアエンティティによるアクションの実行を求める要求を受信することと、ブローカーが、顧客デバイスがアクションの実行を許可されていると判定することとを含む方法を対象とする。方法はさらに、ブローカーが、顧客デバイスがアクションの実行を許可されているとの判定に少なくとも部分的に基づいて、セキュアエンティティへのアクセスのためのクレデンシャルを生成することと、ブローカーが、セキュアエンティティに顧客デバイスに代わってアクションを実行させるためにクレデンシャルを使用することとを含むことができる。
【0009】
上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲および添付図面を参照すればより明らかになるであろう。
【0010】
本開示の特徴、実施形態および利点は、以下の「詳細な説明」を、添付図面を参照しながら読めばよりよくわかる。
【図面の簡単な説明】
【0011】
【
図1】ある実施形態による、例示のインフラストラクチャサービス構成を示す図である。
【
図2】ある実施形態による、例示のアクセス構成を示す図である。
【
図3】ある実施形態による、顧客デバイス登録のための例示の手順フローを示す図である。
【
図4】ある実施形態による、アクション実行のための例示の手順フローを示す図である。
【
図5】ある実施形態による、鍵リフレッシュのための例示の手順フローを示す図である。
【
図6】ある実施形態による、アクションの実行のための例示の手順を示す図である。
【
図7】ある実施形態による、アクションの実行のための別の例示の手順を示す図である。
【
図8】ある実施形態による、アクションの実行のための別の例示の手順を示す図である。
【
図9】少なくとも1つの実施形態による、クラウドインフラストラクチャアズアサービスシステムを実装するための一パターンを示すブロック図である。
【
図10】少なくとも1つの実施形態による、クラウドインフラストラクチャアズアサービスシステムを実装するための別のパターンを示すブロック図である。
【
図11】少なくとも1つの実施形態による、クラウドインフラストラクチャアズアサービスシステムを実装するための別のパターンを示すブロック図である。
【
図12】少なくとも1つの実施形態による、クラウドインフラストラクチャアズアサービスシステムを実装するための別のパターンを示すブロック図である。
【
図13】少なくとも1つの実施形態による、例示のコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0012】
詳細な説明
以下の説明では、説明を目的として、ある実施形態を十分に理解することができるように特定の詳細が記載されている。しかし、これらの特定の詳細がなくても様々な実施形態を実施可能であることはわかるであろう。図および説明は、制限的であることは意図されていない。本明細書では「例示の」という用語は、「実施例、事例または例示となる」という意味で使用されている。本明細書において「例示の」として説明されているいずれの実施形態または設計も、必ずしも他の実施形態または設計より好ましいかまたは有利であるものと解釈されるべきではない。
【0013】
本開示は、クラウドサービスプロバイダ(CSP)によって提供されるインフラストラクチャサービス(クラウドインフラストラクチャサービス、たとえば
図9のクラウドインフラストラクチャ、
図10のクラウドインフラストラクチャ、
図11のクラウドインフラストラクチャ、および/または
図12のクラウドインフラストラクチャ)へのアクセスのため、および/またはインフラストラクチャサービスによるアクションの実行のための、クレデンシャルを管理する技術について説明する。より具体的には、インフラストラクチャサービス内のセキュアエンティティへのアクセスを認められるために、セキュアエンティティは、行為者がセキュアエンティティによりアクションを行うことが許可されているか否かを判定するためにクレデンシャルを調べることができる。インフラストラクチャサービスまたはその一部は、顧客デバイスのクレデンシャルを生成するためにセキュアエンティティおよび顧客デバイスと協調することができる。インフラストラクチャサービスまたはその一部は、クレデンシャルを顧客デバイスに提供するのではなく、クレデンシャルを維持することができる。インフラストラクチャサービスまたはその一部は、顧客デバイスがクレデンシャルへのアクセスを有することなく、顧客デバイスに代わって顧客デバイスによって要求されたアクションを行うためにクレデンシャルを使用することができる。したがって、クレデンシャルは、顧客デバイスなどの信頼できない環境に提供されずに信頼できる環境内に留まることができる。クレデンシャルを信頼できる環境において維持することによって、無許可の行為者がクレデンシャルを取得および/またはセキュアエンティティへのアクセスのために使用する可能性が少ない。
【0014】
CSPは、異なるシステムおよびインフラストラクチャサービス(本明細書ではクラウドインフラストラクチャサービスと呼ぶ)を使用してオンデマンドで顧客に様々なサービスを提供することができる。ある実施形態では、CSPはインフラストラクチャアズアサービス(IaaS:Infrastructure-as-a-Service)モデル下でサービスを提供することができ、CSPは顧客が自分のネットワークを構築し、顧客リソースをデプロイするために使用することができるインフラストラクチャサービスを提供する。CSP提供インフラストラクチャは、サブストレートネットワークまたはアンダーレイネットワークと呼ばれる物理ネットワークを形成する、様々なホストマシン(ホストとも呼ぶ)とメモリリソースとネットワークリソースとを含む、相互接続された高パフォーマンスコンピュータリソースを含むことができる。CSP提供インフラストラクチャは、1つまたは複数のリージョンにわたって地理的に散在し得る1つまたは複数のデータセンターにわたって散在することができる。
【0015】
様々なホストマシン、メモリリソースおよび/またはネットワークリソースを含み得るCSPの物理ネットワークは、物理ネットワークの上に1つまたは複数の仮想またはオーバーレイネットワークを作成するための基礎を提供することができる。これらの仮想またはオーバーレイネットワーク(ソフトウェアベースまたはソフトウェア定義ネットワークとも呼ぶ)は、物理ネットワークの上で稼働させることができるネットワーク抽象化の層を作成するためにソフトウェア仮想化技術を使用して実装可能である。オーバーレイネットワークは、多くの形態をとることができる。オーバーレイネットワークは、それらのネットワークの仮想IPアドレスによって指定されるエンドポイントを有するレイヤ3IPアドレッシングを使用することができる。このオーバーレイネットワーキングの方法は、しばしば仮想レイヤ3ネットワーキングと呼ばれる。
【0016】
顧客がCSPによって提供されるIaaSサービスに加入または登録すると、その顧客のためにテナンシーが作成可能であり、この場合、テナンシーは顧客がそこで自分のクラウドリソースを作成、編成および管理することができるCSPのインフラストラクチャサービス内のセキュアな分離された区分である。たとえば、顧客は、顧客のテナンシー内で仮想クラウドネットワーク(VCN:virtual cloud network)と呼ばれる1つまたは複数のカスタマイズ可能なプライベート仮想ネットワークを構築するために、CSPによって提供されるリソースを使用することができる。計算インスタンスなどの1つまたは複数の顧客リソース(たとえば仮想マシン、ベアメタルインスタンスなど)を、これらの顧客VCN上にデプロイすることができる。
【0017】
顧客が、テナンシーを設定するためまたは他のアクションを行うためにインフラストラクチャサービスにアクセスを試みるとき、顧客は、テナンシーの設定または他のアクションを行う要求をインフラストラクチャサービスに送信することができる。インフラストラクチャサービスは、その要求を受信し、顧客が、インフラストラクチャサービスに、インフラストラクチャサービス内のセキュアエンティティによってアクションを行うことを要求していると判定することができる。アクションに基づいて、インフラストラクチャサービスは、セキュアエンティティへのアクセスを与える、顧客に関連付けられたクレデンシャルを生成することができる。インフラストラクチャサービスは、クレデンシャルを顧客に提供せずに、顧客に代わって要求されたアクションを行うためにクレデンシャルを使用することができる。したがって、クレデンシャルは、クレデンシャルに保護を与えるインフラストラクチャサービス内に留まることができる。
【0018】
図1に、ある実施形態による例示のインフラストラクチャサービス構成100を示す。具体的には、インフラストラクチャサービス構成100は、本開示全体を通して説明されているクレデンシャルを維持するための手法のうちの1つまたは複数の手法を実施することができるインフラストラクチャサービスの一部を示す。ある実施形態では、インフラストラクチャサービスは、
図9のクラウドインフラストラクチャ、
図10のクラウドインフラストラクチャ、
図11のクラウドインフラストラクチャおよび/または
図12のクラウドインフラストラクチャの特徴のうちの1つまたは複数の特徴を含むことができる。インフラストラクチャサービスは、コンピューティングシステムを含むことができる。ある実施形態では、インフラストラクチャサービスは、クラウドコンピューティングシステムを含むことができる。インフラストラクチャサービスは、顧客にサービスを提供することができるインフラストラクチャのハードウェアおよび/またはソフトウェアを含むことができる。
【0019】
インフラストラクチャサービスは、インフラストラクチャサービスの一部を提供するように通信可能に結合された1つまたは複数のデバイス102を含むことができる。たとえば、図の実施形態では、インフラストラクチャサービス構成100は、第1のデバイス102aと、第2のデバイス102bと、第3のデバイス102cとを含む。デバイス102は、コンピュータ端末、サーバ、その他のコンピュータデバイスまたはこれらの何らかの組合せなどのコンピューティングデバイスを含むことができる。デバイス102は、インフラストラクチャサービスの一部を形成するように、互いに通信することができ、この場合、インフラストラクチャサービスは、クラウドインフラストラクチャサービスなどのインフラストラクチャサービスを提供することができる。
【0020】
デバイス102は、異なるエンクレーブにグループ化することができる。たとえば、第1のデバイス102aと第2のデバイス102bと第3のデバイス102cとが、インフラストラクチャサービスのエンクレーブ104の一部を形成することができる。インフラストラクチャサービスのエンクレーブの各々はそれ自体のセキュアエンティティを形成することができ、または複数のエンクレーブを含むセキュアエンティティの一部であってもよい。エンクレーブ104は、特定の処理を行うことができる。たとえば、エンクレーブ104は、管理処理を提供する管理エンクレーブ、サービス処理を提供するサービスエンクレーブ、または顧客に顧客処理を提供する顧客エンクレーブを含むことができる。エンクレーブ104は、保護されたIaaSインスタンスを作成するためにソフトウェア定義ペリメータ(SDP:software-defined perimeter)セキュリティモデルを実装することができる。エンクレーブ104は、1つまたは複数のデバイス(第1のデバイス102a、第2のデバイス102bおよび第3のデバイス102cなど)および/またはあるソフトウェアを含む定義されたSDPを有することができ、エンクレーブ104の境界が、エンクレーブ104の外部の要素からのデバイスおよび/またはソフトウェアの分離によって画定される。エンクレーブ104は、インフラストラクチャサービスにおける異なるエンクレーブの他の通信プロファイルとは異なり得る固有の通信プロファイルを有することができる。エンクレーブ104内へのアクセスとエンクレーブ104からのアクセスは、制御され、監視され、および/またはポリシー主導とすることができる。たとえば、エンクレーブ104へのアクセスは、許可に基づくことができ、その場合、エンクレーブ104へのアクセスは許可された顧客に限定可能である。エンクレーブ104は、エンクレーブ104に提供される1つまたは複数のクレデンシャルに基づいてエンクレーブ104へのアクセスの許可を判定することができる。
【0021】
インフラストラクチャサービスは、ブローカー106などの1つまたは複数のセキュリティブローカーを含むことができる。ブローカー106は、デバイス、ソフトウェア、またはこれらの何らかの組合せを含むことができる。ブローカー106は、エンクレーブ104の境界に位置することができる。たとえば、ブローカー106は、エンクレーブ104のセキュアな部分にアクセスせずにブローカー106との通信を可能にするように、エンクレーブ104の境界に位置することができる。
【0022】
ブローカー106は、顧客から登録要求を受信することができる。登録要求は、顧客の識別子を含むことができ、この場合、ブローカー106は、今後に受信される要求が顧客からのものであると判定するためにその識別子を使用することができる。ある実施形態では、識別子は顧客に対応する鍵(公開鍵など)を含むことができる。ブローカー106は、顧客から受け取った識別子を、今後に顧客を識別するために使用するために記憶することができる。
【0023】
場合によっては、登録要求はさらに、顧客が関連付けを要求している加入者の標識を含むことができる。たとえば、インフラストラクチャサービスへの加入者が、事前にインフラストラクチャサービス内でテナンシーを設定している場合がある。顧客は、その加入者に関連付けられるべきであり、加入者によって生成されたテナンシーで動作するべきであることを示すことができる。ブローカー106は、顧客が加入者と関連連付けられることおよび加入者によって生成されたテナンシーで動作することを許可されていることを検証するために、認証および/または許可手順を行うことができる。ブローカー106が、顧客が加入者に関連付けられることを許可されていると判定した場合、ブローカー106は顧客が加入者に関連付けられたテナンシーで動作することを可能にすることができる。ある他の事例では、ブローカー106は、登録要求に基づいて顧客のテナンシーを生成するために、インフラストラクチャサービスの別の部分を使用して動作することができる。ブローカー106が登録要求に基づいて顧客のテナンシーを生成する事例では、顧客はインフラストラクチャサービスへの加入者として行動することができる。
【0024】
顧客の登録後、または顧客の登録に加えて、顧客は、インフラストラクチャサービスにアクションを行うことを求める要求を送信することができる。ブローカー106は、要求を受信し、要求に含まれている顧客の識別子に基づいて、顧客がアクションを要求していると判定することができる。ブローカー106は、顧客がインフラストラクチャサービスによるアクションの実行を許可されているか否かを判定することができる。たとえば、ブローカー106またはインフラストラクチャサービスの別の部分が、加入者がインフラストラクチャサービスによって行うことを許可されている1つまたは複数のアクションまたはアクションの種類のグループ、または顧客がインフラストラクチャサービスによって実行することを加入者が許可している1つまたは複数のアクションまたはアクションの種類のグループを維持することができる。ブローカー106は、要求されたアクションを、要求されたアクションが許可されたアクションまたはアクションの種類に対応するか否かを判定するために、顧客のために許可されたアクションまたはアクションの種類と比較することができる。ブローカー106が、要求されたアクションが許可されたアクションまたはアクションの種類に対応しないと判定した場合、ブローカー106は、アクションが顧客のために実行されるのを防止することができる。ブローカー106が、要求されたアクションが許可されたアクションまたはアクションの種類に対応すると判定した場合、ブローカー106は動作の実行に向けて進むことができる。
【0025】
アクションに基づいて、ブローカー106は、顧客のために要求されたアクションを実行するために、インフラストラクチャサービスのどのサービスを使用すべきかを判定することができる。たとえば、ブローカー106は、アクションがエンクレーブ104内のサービスによって行われるべきであると判定することができる。ブローカー106は、エンクレーブ104へのアクセスのためのクレデンシャルを生成するためにエンクレーブ104と協調することができる。ある実施形態では、クレデンシャルは、トークン、鍵またはこれらの何らかの組合せとすることができる。また、クレデンシャルは、ある実施形態では、エンクレーブ104によって署名されてもよい。クレデンシャルは、エンクレーブ104が、要求者にアクセスを与えるか否かを判定するように、エンクレーブ104に提示されてもよい。ある実施形態では、ブローカー106は、クレデンシャルの生成を求める要求をエンクレーブ104に送信することができる。クレデンシャルの生成を求める要求は、ある実施形態では顧客の識別子を含むことができる。エンクレーブ104は、この要求に対して、ブローカー106がクレデンシャルの生成のために使用する鍵(本明細書で「プルーフ鍵」と呼ぶ場合がある)で応答することができる。ブローカー106は、プルーフ鍵を、エンクレーブ104へのアクセスのためのクレデンシャルを生成するために使用することができる。たとえば、ある実施形態では、ブローカー106は、プルーフ鍵と顧客の識別子とに基づいてクレデンシャルを生成することができる。場合によっては、ブローカー106は、要求時にプルーフ鍵を要求するのではなく、エンクレーブ104からプルーフ鍵を事前に受信しており、事前に受信したプルーフ鍵を使用してクレデンシャルを生成することができる。
【0026】
生成された後、ブローカー106はクレデンシャルを記憶することができる。たとえば、クレデンシャルがブローカー106によって顧客の識別子との関連付けとともに記憶されるなど、ブローカー106はクレデンシャルを顧客と関連付けて記憶することができる。従来の手法とは異なり、ブローカー106は、クレデンシャルを顧客から分離して維持することができる。具体的には、ブローカー106は、クレデンシャルを顧客に提供しない可能性がある。したがって、クレデンシャルは、記憶のために顧客に提供されるのではなく、ブローカー106によって記憶されたままとすることができる。ブローカー106とエンクレーブ104は、信頼できる環境の一部とすることができ、そこでインフラストラクチャサービスの運用者が、信頼できる環境のセキュリティを管理することができ、信頼できる環境において管理されるデータのセキュリティにより高い信頼を置くことができる。顧客は信頼できる環境から分離されてもよく、その場合、顧客はインフラストラクチャサービスの運用者とは別個の者によって管理可能であり、インフラストラクチャサービスの運用者は顧客のセキュリティを管理しない可能性がある。顧客は信頼できる環境から分離されているため、クレデンシャルが信頼できる環境内で維持される場合よりも、インフラストラクチャサービスによる無許可のアクションの実行のために不正行為者(顧客を含み得る)が顧客に提供されたクレデンシャルを使用し、および/または顧客に提供されたクレデンシャルからプルーフトークンを導き出すことができる確率が高くなる可能性がある。
【0027】
ある実施形態では、ブローカー106は、クレデンシャルを顧客が許可を有しているアクションまたはアクションの種類との関連付けとともに記憶することができる。たとえば、ブローカー106は、対応する加入者が顧客に許可を与えているアクションまたはアクションの種類など、顧客が許可を有しているアクションまたはアクションの種類を識別することができる。ブローカー106は、クレデンシャルを、顧客が許可を有しているアクションまたはアクションの種類の標識とともに記憶することができる。ブローカー106はその場合、クレデンシャルの使用を、顧客が許可を有しているアクションまたはアクションの種類に限定することができる。クレデンシャルの使用を顧客が許可を有しているアクションまたはアクションの種類に限定することは、顧客にクレデンシャルが提供される従来の手法とは対照的であり得る。具体的には、従来の手法において顧客に提供されるクレデンシャルは、顧客がエンクレーブ104により実行することができるアクションを限定せずに、顧客にエンクレーブ104へのアクセスを与えることができることになる。ブローカー106がクレデンシャルの使用をアクションまたはアクションの種類に限定することによって、ブローカー106は、顧客がクレデンシャルを使用してエンクレーブ104により無許可のアクションを実行することを防止することができ、一方、顧客にクレデンシャルを提供する従来の手法は、顧客がクレデンシャルを使用してエンクレーブ104により無許可のアクションを実行することを防止しないことになる。
【0028】
ブローカー106は次に、顧客によって要求されたアクションを実行するためにクレデンシャルを使用することができる。具体的には、顧客がエンクレーブ104によりアクションを実行するのではなく、ブローカー106が顧客に代わってエンクレーブ104によりアクションを実行することができる。たとえば、ブローカー106は、顧客によって要求されたアクションの要求を、エンクレーブ104へのアクセスを与えるクレデンシャルとともにエンクレーブ104に提供することができる。エンクレーブ104内のサービスは、そのアクションを実行し、ブローカー106に対してアクションの結果で応答することができる。ブローカー106は、アクションが実行された後、そのアクションの結果を顧客に転送することができる。顧客がエンクレーブ104によりアクションを実行するのではなく、ブローカー106に顧客に代わってアクションを実行させることによって、顧客によって無許可のアクションが実行されるのを防止することができる。たとえば、顧客がエンクレーブ104によりアクションを実行することができる場合、顧客は、1つのアクションの実行のための許可を受け取ることができ、次に、エンクレーブ104が異なるアクションを実行することを要求することができる。ブローカー106は、同じ要求されたアクションを、アクションの許可とアクションの実行の両方のために維持することができ、それによってアクションが許可と実行との間で変更されるのを防止する。
【0029】
アクションが完了し、および/または、顧客がブローカー106とのセッションを終了した後、ブローカー106は、ある実施形態ではストレージからそのクレデンシャルを削除することができる。たとえば、ブローカー106は、アクションが完了した、および/または、顧客がセッションを終了すると判定することができる。顧客がブローカー106からサインアウトするか、またはブローカー106と顧客との接続が終了するか、またはこれらの何らかの組合せに基づいて、ブローカー106と顧客とのセッションが終了することができる。アクションが完了し、および/または顧客がセッションを終了するとの判定に基づいて、ブローカー106はクレデンシャルを削除することができる。したがって、ある実施形態ではクレデンシャルは一時的なものであり得る。アクションの完了および/または顧客によるセッションの終了の後で不正行為者がブローカーに何とかアクセスすることができたとしても、ブローカー106はもはやクレデンシャルを持っておらず、不正行為者は、エンクレーブ104へのアクセスを与えるクレデンシャルを盗むことができないことになる。
【0030】
インフラストラクチャサービス構成100は、インフラストラクチャサービスの一部の実施形態を示しているが、インフラストラクチャサービス構成100の特徴を有するインフラストラクチャサービスの他の実施形態も、本開示の対象として含まれることを理解されたい。たとえば、エンクレーブ(エンクレーブ104など)は、1つまたは複数のデバイスによって形成可能であり、および/または、1つまたは複数のデバイスが複数のエンクレーブに含まれてもよい。また、インフラストラクチャサービスは、例示されている単一のエンクレーブではなく、複数のエンクレーブを含むことができる。各々のエンクレーブはさらに、複数のセキュリティ要素を含むことができ、その場合、複数のセキュリティ要素の各々が顧客のうちのいずれの顧客によってもアクセス可能であるか、対応する顧客が対応するセキュリティ要素にアクセスすることができるようにセキュリティ要素の各々が対応する顧客専用とすることができるか、あるいはこれらの何らかの組合せとすることができる。
【0031】
また、インフラストラクチャサービス構成100のエンクレーブについて例示の実施形態ではセキュアエンティティとして説明しているが、他の実施形態ではセキュアエンティティがインフラストラクチャサービス構成100の異なる部分であってもよいことを理解されたい。たとえば、インフラストラクチャサービス構成100のセキュアエンティティは、アクセスのためのクレデンシャルを必要とするインフラストラクチャサービス構成100のいずれかの部分とすることができる。さらに、図の実施形態ではブローカー106がスタンドアロン要素として示されているが、他の実施形態ではブローカー106は1つまたは複数の要素に含まれるか、または、セキュリティ要素と組み合わされるなど1つまたは複数の要素と組み合わされてもよいことを理解されたい。
【0032】
図2に、ある実施形態による例示のアクセス構成200を示す。たとえば、アクセス構成200は、ある実施形態による許可ブローカーの手法を示すためのデバイスの例示のレイアウトを示す。アクセス構成200は、この手法を例示するために使用される1つの実施形態であり、この手法の実装形態は図示されている例示のレイアウトには限定されないことを理解されたい。
【0033】
アクセス構成200は、エンクレーブ202を含むことができる。エンクレーブ202は、エンクレーブ104(
図1)の特徴のうちの1つまたは複数の特徴を含むことができる。エンクレーブ202は、
図1に関して説明したインフラストラクチャサービスなどの、インフラストラクチャサービスまたはその一部を含むことができる。インフラストラクチャサービスは、ある実施形態では、クラウドコンピューティングシステムなどのコンピューティングシステムを含むことができる。
【0034】
アクセス構成200はさらに、ブローカー204を含むことができる。ブローカー204は、ブローカー106(
図1)の特徴のうちの1つまたは複数の特徴を含むことができる。ブローカー204は、エンクレーブ202に対応することができ、エンクレーブ202とエンクレーブ202によるアクションの実行にアクセスすることができる。ブローカー204は、エンクレーブ202のセキュア部分へのアクセスを与えずにブローカー204との通信を可能にするように、エンクレーブ202の境界に位置することができる。
【0035】
エンクレーブ202とブローカー204は、信頼できる環境206内で動作させることができる。信頼できる環境206は、インフラストラクチャサービスの運用者が制御することができる環境と定義することができる。たとえば、インフラストラクチャサービスの運用者は、信頼できる環境206の排他的制御を有することができる。運用者は、信頼できる環境206のセキュリティを制御することができ、その場合、セキュリティは運用者および/または選択されたユーザのみが、信頼できる環境206にアクセスすることを可能にすることができる。信頼できる環境206を制御する運用者は、運用者によって明確に示されていないユーザが信頼できる環境206にアクセス可能である場合よりも、信頼できる環境206内に記憶されているデータにより大きな信頼を与えることができる。信頼できる環境206は、特定のハードウェア、特定のソフトウェアまたはこれらの何らかの組合せを含むことができる。信頼できる環境206には限定されたアクセスを与えることができる。
【0036】
アクセス構成200はさらに、顧客デバイス208を含むことができる。顧客デバイス208は、単一のデバイス、別のインフラストラクチャサービス、またはクラウドコンピューティングシステムを含み得る。顧客デバイス208は、信頼できる環境206から分離した運用者によって維持されてもよい。顧客デバイス208は、信頼できる環境206内の要素(ブローカー204など)とインターネットなどのネットワークを介して通信することができる。顧客デバイス208は、エンクレーブ202によってサービスが提供されることを要求することが可能とすることができる。ユーザが、エンクレーブ202にサービスを要求するために、顧客デバイス208にアクセスすることができる。たとえば、ユーザは顧客デバイス208にサインインすることができる個人であってもよく、その場合、顧客デバイス208にサインインするユーザは、ユーザの身元を証明してもよい。
【0037】
顧客デバイス208は、インフラストラクチャサービスおよび/またはエンクレーブ202への登録を要求することができる。たとえば、顧客デバイス208は、顧客デバイス208および/またはユーザの識別子を含む登録要求を送信することができる。登録要求は、場合によっては、顧客デバイス208が関連付けを要求する加入者の標識をさらに含むことができる。ブローカー204は、顧客デバイス208から登録要求を受信することができる。ブローカー204は、顧客デバイス208および/またはユーザの識別子を顧客デバイス208および/またはユーザと関連付けて記憶することができる。登録要求が加入者の標識を含む場合には、ブローカー204はさらに、顧客デバイス208および/またはユーザが加入者のための許可を有するか否かを判定することができる。たとえば、エンクレーブ202は、エンクレーブ202に記憶されている1人または複数の加入者に関連する加入者情報210を有することができる。他の実施形態では、加入者情報210は、ブローカー204内またはインフラストラクチャサービスの別の部分に記憶することができる。ブローカー204は、加入者情報210から登録要求において示されている加入者に関連付けられた加入者情報を取得することができ、加入者が顧客デバイス208および/またはユーザに許可を与えているか否かを判定することができる。ブローカー204が、加入者が顧客デバイス208および/またはユーザに許可を与えていると判定した場合、ブローカー204は顧客デバイス208および/またはユーザの識別子を加入者に関連付けて記憶することができる。
【0038】
他の事例では、顧客デバイス208は加入者として行動することができ、その場合、登録要求は加入者の標識を含まない可能性があり、顧客デバイス208および/またはユーザの加入者情報が加入者情報210に記憶されてもよい。顧客デバイス208および/またはユーザの加入者情報は、加入者に関連付けることができる他の顧客デバイスおよび/またはユーザの標識と、加入者に関連付けて実行可能なアクションまたはアクションの種類とを含むことができる。
【0039】
顧客デバイス208は、インフラストラクチャサービスによって1つまたは複数のアクションが実行されるようにさらに要求することができる。たとえば、顧客デバイス208は、インフラストラクチャサービスにアクションの実行の要求を送信することができ、その場合、要求は顧客デバイス208および/またはユーザの識別子を含むことができる。ブローカー204は、顧客デバイス208から要求を受信することができる。ブローカー204は、要求から、顧客デバイス208および/またはユーザの識別子と顧客デバイス208によって要求されているアクションとを識別することができる。識別子とアクションとに基づいて、ブローカー204は、顧客デバイス208がそのアクションの実行を許可されているか否かを判定することができる。たとえば、ブローカー204は、識別子に基づいて顧客デバイス208が関連付けられている加入者を識別することができる。ブローカー204は次に、加入者によって顧客デバイス208にどのアクションまたはアクションの種類が許可されているかを判定することができる。ブローカー204は、顧客デバイス208によって要求されているアクションが、顧客デバイス208が許可を有するアクションおよび/またはアクションの種類に対応するか否かを判定することができる。ブローカー204が、顧客デバイス208によって要求されているアクションが顧客デバイス208が許可を有するアクションおよび/またはアクションの種類に対応していないと判定した場合、ブローカー204は、インフラストラクチャサービスに関する情報を顧客デバイス208に共有せずに、アクションが実行されるのを防ぐことができる。
【0040】
ブローカー204が、顧客デバイス208によって要求されたアクションが、顧客デバイス208が許可を有するアクションおよび/またはアクションの種類に対応すると判定した場合、ブローカー204はそのアクションの実行に向けて進むことができる。たとえば、ブローカー204は、エンクレーブ202にアクセスするためのクレデンシャルを生成するためにエンクレーブ202と協調することができる。ブローカー204は、クレデンシャルの生成を求める要求をエンクレーブ202に送信することができる。クレデンシャルの生成を求める要求は、ある実施形態では顧客デバイス208および/またはユーザの識別子を含むことができる。エンクレーブ202はこの要求に対して、クレデンシャルの生成のためにブローカー204によって使用される鍵で応答することができる。ブローカー204は、クレデンシャルを生成するためにこの鍵を使用することができる。ある実施形態では、ブローカー204は、鍵と顧客デバイス208および/またはユーザの識別子とに基づいてクレデンシャルを生成することができる。場合によっては、ブローカー204は、エンクレーブ202から事前に鍵を受信していてもよく、ブローカー204は、事前に受信した鍵をクレデンシャルの生成のために使用してもよい。
【0041】
ブローカー204は、クレデンシャルを顧客デバイス208および/またはユーザとの関連付けとともに記憶することができる。たとえば、ブローカー204は、クレデンシャルを顧客デバイス208および/またはユーザの識別子との関連付けとともに記憶することができ、その場合、ブローカー204は、顧客デバイス208および/またはユーザの識別子を含む許可されたアクション要求のためのクレデンシャルを使用すると決定することができる。ブローカー204は、クレデンシャルを顧客デバイス208から分離して維持することができ、その場合、ブローカーはクレデンシャルを顧客デバイス208に提供しない。したがって、ブローカー204は、クレデンシャルを信頼できる環境206内で維持することができ、それによって不正行為者がクレデンシャルにアクセスする、および/または、クレデンシャルからエンクレーブ202に対応する鍵を導き出すことがないように、より高いセキュリティを提供することができる。
【0042】
ある実施形態では、ブローカー204は、クレデンシャルを顧客デバイス208が許可を有するアクションまたはアクションの種類との関連付けとともに記憶することができる。たとえば、ブローカー204は、対応する加入者が顧客に許可を与えたアクションまたはアクションの種類など、顧客デバイス208および/またはユーザが許可を有するアクションまたはアクションの種類を識別することができる。ブローカー204は、クレデンシャルの使用を、顧客が許可を有するアクションまたはアクションの種類に限定することができる。
【0043】
ブローカー204は、顧客デバイス208によって要求されたアクションを実行するためにクレデンシャルを使用することができる。たとえば、顧客デバイス208がエンクレーブ202によりアクションを実行するのではなく、ブローカー204が顧客デバイス208に代わってエンクレーブ202によりアクションを実行することができる。ブローカー204は、顧客デバイス208によって要求されたアクションの要求を、エンクレーブ202へのアクセスを与えるクレデンシャルとともにエンクレーブ202に提供することができる。エンクレーブ202内のサービスは、アクションを求める要求に基づいてアクションを実行することができる。エンクレーブ202は、アクションの結果(アクションが完了したという確認、アクションが何らかの理由で失敗したという標識、および/またはアクションによって生成された1つまたは複数の値)をブローカー204に提供することができる。次にブローカー204は、アクションの結果を顧客デバイス208に提供することができる。
【0044】
ある実施形態では、ブローカー204は、アクションが完了し、および/または顧客デバイス208がブローカー204とのセッションを終了した後、ストレージからクレデンシャルを削除することができる。たとえば、ブローカー204は、アクションが完了および/または顧客がセッションを終了したと判定することができる。ブローカー204と顧客デバイス208とのセッションは、顧客デバイス208がセッションを終了する要求を提供するか、ブローカー204と顧客デバイス208との接続が終了させられるか、またはこれらの何らかの組合せに基づいて、終了することができる。ブローカー204は、アクションが完了および/またはセッションが終了するとの判断に基づいてクレデンシャルを削除することができる。
【0045】
図3に、ある実施形態による顧客デバイス登録のための例示の手順フロー300を示す。たとえば、手順フロー300は、ある実施形態により、顧客デバイス302の登録時に顧客デバイス302とブローカー304とにより実行可能な例示の動作を示す。顧客デバイス302は、顧客デバイス208(
図2)の特徴のうちの1つまたは複数の特徴を含むことができる。ブローカー304は、ブローカー106(
図1)および/またはブローカー204(
図2)の特徴のうちの1つまたは複数の特徴を含むことができる。図の動作は一実施形態の実施例であり、他の実施形態では、動作は異なる順序で行われてもよく、動作のうちの1つまたは複数の動作が同時に行われてもよく、手順フロー300に追加の動作が含まれてもよく、および/または動作のうちの1つまたは複数が手順フロー300から省かれてもよいことを理解されたい。
【0046】
手順フロー300を開始するために、顧客デバイス302のユーザが顧客デバイス302に、ブローカー304を含むインフラストラクチャサービス(
図1および/または
図2に関して説明したインフラストラクチャサービスなど)に登録することを要求することができる。顧客デバイス302は、インフラストラクチャサービスへの登録を求める登録要求306をブローカー304に送信することができる。登録要求306は、顧客デバイス302および/または顧客デバイス302のユーザの識別子を含むことができる。登録要求306は、ブローカー304に、顧客デバイス302および/または顧客デバイス302のユーザがインフラストラクチャサービスに登録したいということを示すことができる。場合によっては、登録要求306は、さらに、顧客デバイス302および/または顧客デバイス302のユーザが関連付けられたい加入者の標識を含むことができる。
【0047】
ブローカー304は、顧客デバイス302から登録要求306を受信することができる。ブローカー304は、登録要求306に基づいて顧客デバイス302のために認証および/または許可手順308を実行することができる。たとえば、登録要求306が、顧客デバイス302および/または顧客デバイス302のユーザが関連付けられたい加入者の標識を含む場合には、ブローカー304は、加入者が関連付けの許可を与える顧客デバイスおよび/またはユーザの標識を含み得る、加入者に関連付けられた情報を識別することができる。ブローカー304は、登録要求において受信した識別子に基づいて、顧客デバイス302および/または顧客デバイス302のユーザが、加入者が許可を与える顧客デバイスおよび/またはユーザに含まれているか否かを判定することができる。場合によっては、加入者は、顧客デバイス302および/または顧客デバイス302のユーザがその身元を証明するために、顧客デバイス302が完了するべき1つまたは複数の認証手順(パスコード検査、トークン認証、多要素認証、またはこれらの何らかの組合せ)を含めることができる。
【0048】
場合によっては、顧客デバイス302は、登録要求306により加入者として動作することができる。たとえば、顧客デバイス302によって送信される登録要求306は、顧客デバイス302がインフラストラクチャサービスに加入する、および/またはインフラストラクチャサービスによるテナンシーを生成する手順の一部とすることができる。これらの事例では、関連付けのための加入者の標識が登録要求306から省かれてもよい。さらに、認証および/または許可手順308は、これらの事例において省かれてもよい。これらの事例では、登録要求306または別のメッセージが、顧客デバイス302が加入に関する許可を認めることになる他の顧客デバイスおよび/またはユーザに関する情報など、加入者に関する情報を含むことができる。
【0049】
ブローカー304が顧客デバイス302を認証する、および/または許可を判定することに基づいて、ブローカー304は識別子310を記憶することができる。たとえば、ブローカー304は、顧客デバイス302および/または顧客デバイス302のユーザに関連付けられた登録要求306において提供された識別子を記憶することができる。ブローカー304は次に、識別子に基づいて顧客デバイス302からの送信を識別するためにその識別子を使用することができる。ブローカー304が顧客デバイス302および/または顧客デバイス302のユーザを加入者に関連付けることができると判定するか、またはブローカー304が加入者として機能する場合には、ブローカー304はさらに、記憶されている識別子を加入者に関連付けることができる。ブローカー304は次に、顧客デバイス302および/または顧客デバイス302のユーザが加入者と関連付けられて行動することができると判定するために識別子を使用することができる。
【0050】
ブローカー304は、顧客デバイス登録の完了時に顧客デバイス302に確認メッセージ312を送信することができる。確認メッセージ312は、顧客デバイス302および/または顧客デバイス302のユーザが成功裏に登録されたか否かを示すことができる。たとえば、確認メッセージ312は、識別子が顧客デバイス302および/または顧客デバイス302のユーザと関連付けて記憶されていることに基づいて、顧客デバイス302および/または顧客デバイス302のユーザが成功裏に登録されたことを示すことができる。確認メッセージ312はさらに、顧客デバイス302および/または顧客デバイス302のユーザが加入者に成功裏に関連付けられたか否かを示すことができる。確認メッセージ312の受信に基づいて、顧客デバイス302は、顧客デバイス登録が成功裏に完了したか否かを示すことができる。
【0051】
図4に、ある実施形態による、アクション実行のための例示の手順フロー400を示す。たとえば、手順フロー400は、顧客デバイス402のためのアクションの実行時に、顧客デバイス402とブローカー404とセキュアエンティティ406とによって実行可能な例示の動作を示す。顧客デバイス402は、顧客デバイス208(
図2)の特徴のうちの1つまたは複数の特徴を含むことができる。ブローカー404は、ブローカー106(
図1)および/またはブローカー204(
図2)の特徴のうちの1つまたは複数の特徴を含むことができる。セキュアエンティティ406は、エンクレーブ104(
図1)、エンクレーブ202(
図2)および/または本開示全体を通して説明されているその他のセキュアエンティティの特徴のうちの1つまたは複数の特徴を含むことができる。図の動作は一実施形態の実施例であり、他の実施形態では動作が異なる順序で行われてもよく、動作のうちの1つまたは複数の動作が同時に行われてもよく、手順フロー400に追加の動作が含まれてもよく、および/または動作のうちの1つまたは複数の動作が手順フロー400から省かれてもよいことを理解されたい。
【0052】
手順フロー400を開始するために、顧客デバイス402は、インフラストラクチャサービスにアクション要求408を送信することができる。アクション要求408は、顧客デバイス402がインフラストラクチャサービスに実行を要求しているアクションを示すことができる。また、アクション要求408は、顧客デバイス402および/または顧客デバイス402のユーザの識別子をさらに含むことができる。ブローカー404は、インフラストラクチャサービスにおいてアクション要求408を受信することができる。ブローカー404は、アクション要求408に基づいて、顧客デバイス402および/または顧客デバイス402の識別子および/または顧客デバイス402のユーザによって要求されたアクションを判定することができる。
【0053】
ブローカー404は、アクション要求408から判定されたアクションと識別子とに基づいてアクション許可410を行うことができる。たとえば、ブローカー404は、識別子に基づいて顧客デバイス402および/または顧客デバイス402のユーザを判定することができる。場合によっては、ブローカー404はさらに、識別子に基づいて顧客デバイス402および/または顧客デバイス402のユーザに関連付けられた加入者を判定することができる。たとえば、ブローカー404は、記憶されている1つまたは複数の識別子を有することができ、記憶されている識別子は、識別子の各々に関連付けられた顧客デバイス、ユーザおよび/または加入者を示すことができる。ブローカー404は、顧客デバイス402および/または顧客デバイス402のユーザが、どのアクションまたはアクションの種類の実行の許可を有しているかを判定することができる。場合によっては、顧客デバイス402および/または顧客デバイス402のユーザが許可されているアクションまたはアクションの種類は、ブローカー404が顧客デバイス402および/または顧客デバイス402のユーザに関連付けられていると判定した加入者によって定義されてもよい。ブローカー404は、アクション要求408において顧客デバイス402によって要求されているアクションを、顧客デバイス402および/または顧客デバイス402のユーザが許可されているアクションおよび/またはアクションの種類と比較して、顧客デバイス402および/または顧客デバイス402のユーザがそのアクションの許可を有しているか否かを判定することができる。ブローカー404が、顧客デバイス402および/または顧客デバイス402のユーザがそのアクションの許可を有していないと判定した場合、ブローカー404はそのアクションの実行を防止することができる。ブローカー404が、顧客デバイス402および/または顧客デバイス402のユーザがそのアクションの許可を有していると判定した場合、ブローカー404はそのアクションの実行に進むことができる。
【0054】
ブローカー404が、顧客デバイス402および/または顧客デバイス402のユーザがアクションの実行の許可を有していると判定するのに基づいて、ブローカー404は、セキュアエンティティ406に鍵要求412を送信することができる。鍵要求412は、セキュアエンティティ406に、セキュアエンティティ406にアクセスするために使用されるクレデンシャルの生成のために使用される鍵を要求することができる。ある実施形態では、鍵要求412は、顧客デバイス402および/または顧客デバイス402のユーザの標識、顧客デバイス402および/または顧客デバイス402のユーザに関連付けられた加入者の標識(加入者に関連付けられたテナンシーの標識など)、またはこれらの何らかの組合せを含むことができる。
【0055】
セキュアエンティティ406は、ブローカー404から鍵要求412を受信することができる。ある実施形態では、セキュアエンティティ406は、顧客デバイス402および/または顧客デバイス402のユーザ、加入者、あるいはこれらの何らかの組合せを検証することができる。たとえば、セキュアエンティティ406は、加入者、顧客デバイス402および/または顧客デバイス402のユーザが、セキュアエンティティ406にアクセスすることを許可されていることを検証することができる。セキュアエンティティ406は、鍵要求412に応答してブローカー404に鍵414を返すことができる。ある実施形態では、セキュアエンティティ406は、セキュアエンティティ406が加入者、顧客デバイス402および/またはユーザがセキュアエンティティ406へのアクセスを許可されていることを検証することにさらに基づいて鍵414を返すことができる。ある実施形態では、セキュアエンティティ406は、鍵がセキュアエンティティ406へのアクセスのための使用のために有効であり得る有効期間を示すことができる。鍵は、セキュアエンティティ406へのアクセスのために使用することができる。場合によっては、セキュアエンティティ406は、鍵を事前にブローカー404に提供していてもよく、その場合、鍵要求412と鍵414の返送は、手順フロー400から省くことができる。
【0056】
ブローカー404は、セキュアエンティティ406から鍵を受信することができる。ブローカー404は、セキュアエンティティ406へのアクセスを与えるクレデンシャルの生成のために鍵を記憶することができる。ブローカー404は、セキュアエンティティへのアクセスのために顧客デバイス402のクレデンシャル416を生成することができる。ある実施形態では、ブローカーは、顧客デバイス402および/または顧客デバイス402のユーザ、加入者(テナンシーなど)、あるいはこれらの何らかの組合せの識別子に基づいて、クレデンシャルを生成することができる。ブローカー404は、顧客デバイス402に関連付けられたアクションの実行のためにセキュアエンティティ406にアクセスするために使用されるように、クレデンシャルを記憶することができる。
【0057】
ブローカー404は、セキュアエンティティ406にアクション要求をクレデンシャルとともに送信する418ことができる。ブローカー404は、アクション要求408において顧客デバイス402によって要求されているアクションを実行するようにセキュアエンティティ406に要求することができる。セキュアエンティティ406は、ブローカー404からアクション要求を受信することができる。セキュアエンティティ406は、クレデンシャルに基づいて、セキュアエンティティ406へのアクセスが許可されるべきであると判定することができる。セキュアエンティティ406は、アクション要求とクレデンシャルとに基づいてアクションを実行することができる。ブローカー404がアクションを要求し、セキュアエンティティ406がブローカー404からの要求に応答してアクションを行うため、ブローカー404が顧客デバイス402に代わってアクションを行わせることができる。顧客デバイス402ではなくブローカー404がセキュアエンティティ406にアクセスするため、アクションの実行のために顧客デバイス402にクレデンシャルを提供する必要なしに、ブローカー404がクレデンシャルを記憶することができる。クレデンシャルが顧客デバイス402から分離して記憶されていることによって、ブローカー404とセキュアエンティティ406とを含む信頼できる環境においてクレデンシャルを維持することができ、それによって、不正行為者がクレデンシャルを取得すること、および/またはクレデンシャルから鍵を導き出すことに対して保護を与えることができる。
【0058】
セキュアエンティティ406は、ブローカー404に確認メッセージ420を提供することができる。セキュアエンティティ406がブローカー404によって要求されたアクションを完了した場合、確認メッセージ420はアクションが実行されたことを示すことができる。場合によっては、確認メッセージ420は、アクションによって生成された値など、アクションの結果をさらに含むことができる。ブローカー404は、セキュアエンティティ406から確認メッセージ420を受信することができ、確認メッセージ420に含まれる情報を記憶することができる。
【0059】
ブローカー404は、顧客デバイス402に確認メッセージ422を提供することができる。セキュアエンティティ406がアクションを完了し、確認メッセージ420を提供する場合、ブローカー404によって顧客デバイス402に送信される確認メッセージ422は、確認メッセージ420からの情報を含むことができ、または顧客デバイス402に転送される確認メッセージ420とすることができる。ブローカー404が、顧客デバイス402がアクションを許可されていないと判定した場合、確認メッセージ422は、アクションが実行されなかったことを顧客デバイス402に示すことができる。
【0060】
図5に、ある実施形態による鍵リフレッシュのための例示の手順フロー500を示す。たとえば、手順フロー500は、ある実施形態による、セキュアエンティティ504にアクセスするためのクレデンシャルを生成するために使用される鍵をリフレッシュするために、ブローカー502とセキュアエンティティ504により実行可能な例示の動作を示す。リフレッシュされる鍵は、手順フロー400(
図4)において提供される鍵など、セキュアエンティティ504によってブローカー502に事前に提供されていてもよい。ブローカー502は、ブローカー108(
図1)および/またはブローカー204(
図2)の特徴のうちの1つまたは複数の特徴を含み得る。セキュアエンティティ504は、エンクレーブ104(
図1)、エンクレーブ202(
図2)および/または本開示全体を通して記載されているその他のセキュアエンティティの特徴のうちの1つまたは複数の特徴を含み得る。図の動作は、一実施形態の実施例であり、他の実施形態では動作は異なる順序で行われてもよく、動作のうちの1つまたは複数の動作が同時に行われてもよく、手順フロー500に追加の動作が含まれてもよく、および/または動作のうちの1つまたは複数の動作が手順フロー500から省かれてもよいことを理解されたい。
【0061】
手順フロー500は、ブローカー502が、鍵の有効期間が満了した506と判定することから開始することができる。たとえば、セキュアエンティティ504がブローカー502に以前に鍵を提供していた場合、セキュアエンティティ504は提供された鍵が満了することになる有効期間、および/または鍵が有効なままである有効期間を示している場合がある。ブローカー502は、セキュアエンティティ504によって示された鍵の有効期間が満了したと判定することができる。
【0062】
ブローカー502が、鍵の有効期間が満了したと判定することに基づいて、ブローカー502はセキュアエンティティ504に鍵リフレッシュ要求508を送信することができる。鍵リフレッシュ要求508は、セキュアエンティティ504にアクセスするために使用される新たな鍵を要求することができる。ある実施形態では、鍵リフレッシュ要求508は、以前に提供された鍵が満了したこと、および/または以前に提供された鍵の値を、さらに示すことができる。鍵リフレッシュ要求508は、要求された鍵が以前に提供された鍵を置き換えることを示すことができる。
【0063】
セキュアエンティティ504は、ブローカー502から鍵リフレッシュ要求508を受信することができる。セキュアエンティティ504は、鍵リフレッシュ要求508に基づいて、セキュアエンティティにアクセスするための新たな鍵を生成することができる。鍵は、セキュアエンティティ504によって生成可能であり、セキュアエンティティ504にアクセスするための1つまたは複数のクレデンシャルを生成するために使用可能である。セキュアエンティティ504は、ブローカー502に鍵510を返すことができる。ある実施形態では、セキュアエンティティ504は、鍵の返送とともに新たな鍵の有効期間をさらに示すことができる。ブローカー502は、セキュアエンティティ504によって提供された鍵および/または鍵の有効期間を記憶することができる。ブローカー502は、鍵をセキュアエンティティ504にアクセスするための1つまたは複数のクレデンシャルを生成するために使用することができる。
【0064】
図6に、ある実施形態による、アクションの実行のための例示の手順600を示す。このプロセス(たとえば手順600)は、その各動作がハードウェア、コンピュータ命令またはこれらの組合せで実施可能な論理フロー図として示されている。コンピュータ命令の文脈では、動作は、1つまたは複数のプロセッサによって実行されると、記載されている動作を行う、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表し得る。一般に、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記載されている順序は、限定と解釈されることは意図されておらず、プロセスを実施するために、任意の数の記載されている動作を任意の順序でおよび/または並行して組み合わせることができる。
【0065】
手順600は、ブローカー(ブローカー106(
図1)および/またはブローカー204(
図2)など)またはインフラストラクチャサービス(コンピューティングシステムおよび/またはクラウドコンピューティングシステムを含み得る、
図1に関して説明したインフラストラクチャサービス、
図10のクラウドインフラストラクチャ、
図11のクラウドインフラストラクチャ、
図12のクラウドインフラストラクチャおよび/または
図13のクラウドインフラストラクチャなど)の別の部分によって実行可能である。手順600は、顧客デバイス(顧客デバイス208(
図2)など)によって要求されたアクションの実行のために実行することができる。
【0066】
簡潔にするために、本明細書では手順600についてコンピューティングシステムによって実行されるものとして説明するが、手順600はインフラストラクチャサービス、ブローカー、またはこれらの何らかの組合せによって実行可能であることを理解されたい。ある実施形態では、コンピューティングシステムは、クラウドインフラストラクチャサービスを含み得る。
【0067】
602において、コンピューティングシステムはブローカーを実装することができる。たとえば、コンピューティングシステムは、セキュアエンティティの境界においてブローカーを実装することができる。ある実施形態では、セキュアエンティティは、コンピューティングシステムのエンクレーブ(エンクレーブ104(
図1)および/またはエンクレーブ202(
図2)など)とすることができる。コンピューティングシステムは、ある実施形態ではエンクレーブの境界においてブローカーを実装することができる。実施形態によっては、602は省かれてもよい。
【0068】
604において、コンピューティングシステムは、アクションの実行を求める要求を受信することができる。たとえば、コンピューティングシステムは、顧客デバイスからアクションの実行の要求を受信することができる。要求は、顧客デバイスおよび/または顧客デバイスのユーザの識別子と、セキュアエンティティによって実行されるアクションとを含むことができる。ある実施形態では、アクションは、加入者の対価請求記録を書き込む要求とすることができ、対価請求記録は消費されたいくつかのリソースを示すことができる。
【0069】
606において、コンピューティングシステムは加入者を判定することができる。たとえば、コンピューティングシステムは、顧客デバイスの識別子に少なくとも部分的に基づいて顧客デバイスに対応する加入者を判定することができる。コンピューティングシステムは、1つまたは複数の識別子と、それらの識別子の加入者との関連付けとを記憶することができる。コンピューティングシステムは、顧客デバイスから受信した識別子を記憶されている識別子と比較し、その比較に基づいて顧客デバイスに関連付けられた加入者を判定することができる。
【0070】
608において、コンピューティングシステムは、加入者がアクションの実行の許可を与えていると判定することができる。たとえば、コンピューティングシステムは、加入者が、アクションの実行の許可を顧客デバイスに与えていると判定することができる。ある実施形態では、加入者がアクションの実行の許可を顧客デバイスに与えていると判定することは、加入者が顧客デバイスに許可を与えた1つまたは複数のアクションを判定することを含み得る。コンピューティングシステムは、要求によって示されたアクションが、上記1つまたは複数のアクションに含まれていると判定することができる。
【0071】
610において、コンピューティングシステムはクレデンシャルを生成することができる。たとえば、コンピューティングシステムは、顧客デバイスがそのアクションの実行の許可を有しているとの判定に少なくとも部分的に基づいて、顧客デバイスに代わってセキュアエンティティにアクセスするためのクレデンシャルを生成することができる。ある実施形態では、クレデンシャルの生成は、クレデンシャルを生成するためにセキュアエンティティに対応する鍵を使用することを含み得る。コンピューティングシステムは、セキュアエンティティから鍵を受信していてもよい。ある実施形態では、クレデンシャルは602で実装されたブローカーによって生成可能である。
【0072】
612において、コンピューティングシステムはクレデンシャルを維持することができる。たとえば、クレデンシャルは、顧客デバイスから分離してクレデンシャルを維持することができる。ある実施形態では、コンピューティングシステムとセキュアエンティティは、信頼できる環境(信頼できる環境206(
図2)など)内に位置することができる。クレデンシャルを顧客デバイスから分離して維持することは、クレデンシャルを信頼できる環境内で維持することを含み得る。ある実施形態では、602で実装されたブローカーがクレデンシャルを顧客デバイスから分離して維持することができる。
【0073】
614において、コンピューティングシステムは、アクションの実行のためにクレデンシャルを使用することができる。たとえば、コンピューティングシステムは、顧客デバイスに代わってアクションの実行のためにクレデンシャルを使用することができる。ある実施形態では、コンピューティングシステムは、セキュアエンティティへのアクセスを取得するためにセキュアエンティティにクレデンシャルを提供することができる。また、コンピューティングシステムは、セキュアエンティティにアクションを実行するように要求することができる。セキュアエンティティは、コンピューティングシステムからの要求に基づいてアクションを実行することができる。ある実施形態では、602で実装されたブローカーが、顧客デバイスに代わってアクションの実行のためにクレデンシャルを使用することができる。
【0074】
616において、コンピューティングシステムは、鍵の有効期間が満了したと判定することができる。たとえば、コンピューティングシステムは、セキュアエンティティから受け取った鍵の有効期間が満了したと判定することができる。セキュアエンティティは、鍵を提供するときに、クレデンシャルを生成するために鍵を使用することができる有効期間を示すことができる。実施形態によっては、616は省かれてもよい。
【0075】
618において、コンピューティングシステムは鍵をリフレッシュすることができる。たとえば、コンピューティングシステムは、鍵の有効期間が満了したとの判定に少なくとも部分的に基づいて、セキュアエンティティにより鍵をリフレッシュすることができる。コンピューティングシステムは、鍵をリフレッシュするためにセキュアエンティティに新たな鍵を求める要求を提供することができる。実施形態によっては、618は省かれてもよい。
【0076】
620において、コンピューティングシステムは、リフレッシュされた鍵を維持することができる。たとえば、コンピューティングシステムは、リフレッシュされた鍵を顧客デバイスから分離して維持することができる。コンピューティングシステムは、セキュアエンティティから新たな鍵を受信し、新たな鍵をリフレッシュされた鍵として記憶することができる。コンピューティングシステムは、クレデンシャルを信頼できる環境内で維持することによってクレデンシャルを顧客デバイスから分離して維持することができる。
【0077】
図7に、ある実施形態による、アクションの実行のための別の例示の手順700を示す。このプロセス(たとえば手順700)は、その各動作がハードウェア、コンピュータ命令またはこれらの組合せで実施可能な論理フロー図として示されている。コンピュータ命令の文脈では、動作は、1つまたは複数のプロセッサによって実行されると、記載されている動作を行う、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表し得る。一般に、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記載されている順序は、限定と解釈されることは意図されておらず、プロセスを実施するために、任意の数の記載されている動作を任意の順序でおよび/または並行して組み合わせることができる。
【0078】
手順700は、ブローカー(ブローカー106(
図1)および/またはブローカー204(
図2)など)またはインフラストラクチャサービス(コンピューティングシステムおよび/またはクラウドコンピューティングシステムを含み得る、
図1に関して説明したインフラストラクチャサービス、
図10のクラウドインフラストラクチャ、
図11のクラウドインフラストラクチャ、
図12のクラウドインフラストラクチャおよび/または
図13のクラウドインフラストラクチャなど)の別の部分によって実行可能である。手順700は、顧客デバイス(顧客デバイス208(
図2)など)によって要求されたアクションの実行のために実行することができる。
【0079】
簡潔にするために、本明細書では手順700についてコンピューティングシステムによって実行されるものとして説明するが、手順700はインフラストラクチャサービス、ブローカー、またはこれらの何らかの組合せによって実行可能であることを理解されたい。ある実施形態では、コンピューティングシステムは、クラウドインフラストラクチャサービスを含み得る。
【0080】
702において、コンピューティングシステムはブローカーを実装することができる。たとえば、コンピューティングシステムは、クラウドインフラストラクチャサービスを含むことができる。クラウドインフラストラクチャサービスは、セキュアエンティティを含むことができる。ある実施形態では、セキュアエンティティはクラウドインフラストラクチャサービス内のエンクレーブとすることができる。コンピューティングシステムは、セキュアエンティティの境界においてブローカーを実装することができる。実施形態によっては、702が省かれてもよい。
【0081】
704において、コンピューティングシステムは、アクションの実行を求める要求を受信することができる。たとえば、コンピューティングシステムは、セキュアエンティティによるアクションの実行を求める要求を受信することができ、要求は顧客デバイスから受信することができる。要求は、顧客デバイスおよび/または顧客デバイスのユーザの識別子と、セキュアエンティティによって実行されるアクションとを含むことができる。ある実施形態では、アクションは、加入者の対価請求記録を書き込む要求であってもよく、対価請求記録は消費されたいくつかのリソースを示してもよい。
【0082】
706において、コンピューティングシステムは加入者を判定することができる。たとえば、コンピューティングシステムは、顧客デバイスの識別子に少なくとも部分的に基づいて顧客デバイスに対応する加入者を判定することができる。コンピューティングシステムは、1つまたは複数の識別子と、それらの識別子の加入者との関連付けとを記憶することができる。コンピューティングシステムは、コンピューティングシステムは、顧客デバイスから受信した識別子を記憶されている識別子と比較し、その比較に基づいて顧客デバイスに関連付けられた加入者を判定することができる。
【0083】
708において、コンピューティングシステムは、加入者がアクションの実行の許可を与えていると判定することができる。たとえば、コンピューティングシステムは、加入者が顧客デバイスにアクションの実行の許可を与えていると判定することができる。ある実施形態では、加入者が顧客デバイスにアクションの実行の許可を与えていると判定することは、加入者が顧客デバイスに許可を与えた1つまたは複数のアクションを判定することを含み得る。コンピューティングシステムは、要求によって示されたアクションが上記1つまたは複数のアクションに含まれていると判定することができる。
【0084】
710において、コンピューティングシステムは鍵を取り出すことができる。たとえば、コンピューティングシステムは、セキュアエンティティから鍵を取り出すことができる。コンピューティングシステムは、加入者がアクションの実行のための許可を顧客デバイスに与えているとの判定に少なくとも部分的に基づいて、セキュアエンティティに鍵を要求することができる。実施形態によっては、710は省かれてもよい。
【0085】
712において、コンピューティングシステムはクレデンシャルを生成することができる。たとえば、コンピューティングシステムは、加入者がアクションの実行の許可を顧客デバイスに与えているとの判定に少なくとも部分的に基づいて、セキュアエンティティへのアクセスのためのクレデンシャルを生成することができる。ある実施形態では、クレデンシャルの生成は、鍵に少なくとも部分的に基づいてクレデンシャルを生成することを含み得る。ある実施形態では、702において実装されたブローカーが、セキュアエンティティへのアクセスのためのクレデンシャルを生成することができる。
【0086】
714において、コンピューティングシステムはクレデンシャルを記憶することができる。たとえば、コンピューティングシステムは、クレデンシャルをメモリに記憶することができる。クレデンシャルは、顧客デバイスから分離して記憶することができる。コンピューティングシステムとセキュアエンティティは、ある実施形態では信頼できる環境(信頼できる環境206(
図2)など)内に位置することができる。クレデンシャルを顧客デバイスから分離して記憶することは、クレデンシャルを信頼できる環境内で維持することを含み得る。
【0087】
716において、コンピューティングシステムは、アクションの実行のためにクレデンシャルを使用することができる。たとえば、コンピューティングシステムは、顧客デバイスに代わってアクションの実行のためにクレデンシャルを使用することができる。コンピューティングシステムは、セキュアエンティティへのアクセスを取得するためにセキュアエンティティにクレデンシャルを提供することができ、セキュアエンティティにアクションを実行させることができる。アクションが対価請求記録の入力である場合、コンピューティングシステムは、セキュアエンティティに対価請求記録を入力させることができる。ある実施形態では、702で実装されたブローカーが、アクションの実行のためにクレデンシャルを使用することができる。
【0088】
718において、コンピューティングシステムは、鍵の有効期間が満了したと判定することができる。たとえば、コンピューティングシステムは、セキュアエンティティから受信した鍵の有効期間が満了したと判定することができる。セキュアエンティティは、鍵を提供するときに、鍵をクレデンシャルの生成のために使用することができる有効期間を示すことができる。実施形態によっては、718は省かれてもよい。
【0089】
720において、コンピューティングシステムは鍵をリフレッシュすることができる。たとえば、コンピューティングシステムは、鍵の有効期間が満了したとの判定に少なくとも部分的に基づいて、セキュアエンティティによって鍵をリフレッシュすることができる。コンピューティングシステムは、鍵をリフレッシュするためにセキュアエンティティに新たな鍵を求める要求を提供することができる。実施形態によっては、720は省かれてもよい。
【0090】
図8に、ある実施形態による、アクションの実行のための別の例示の手順800を示す。このプロセス(たとえば手順800)は、その各動作がハードウェア、コンピュータ命令またはこれらの組合せで実施可能な論理フロー図として示されている。コンピュータ命令の文脈では、動作は、1つまたは複数のプロセッサによって実行されると、記載されている動作を行う、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表し得る。一般に、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記載されている順序は、限定と解釈されることは意図されておらず、プロセスを実施するために、任意の数の記載されている動作を任意の順序でおよび/または並行して組み合わせることができる。
【0091】
手順800は、ブローカー(ブローカー106(
図1)および/またはブローカー204(
図2)など)またはインフラストラクチャサービス(コンピューティングシステムおよび/またはクラウドコンピューティングシステムを含み得る、
図1に関して説明したインフラストラクチャサービス、
図10のクラウドインフラストラクチャ、
図11のクラウドインフラストラクチャ、
図12のクラウドインフラストラクチャおよび/または
図13のクラウドインフラストラクチャなど)の別の部分によって実行可能である。手順800は、顧客デバイス(顧客デバイス208(
図2)など)によって要求されたアクションの実行のために実行することができる。
【0092】
簡潔にするために、本明細書では手順800についてブローカーによって実行されるものとして説明するが、手順800はインフラストラクチャサービス、ブローカー、またはこれらの何らかの組合せによって実行可能であることを理解されたい。ある実施形態では、コンピューティングシステムは、クラウドインフラストラクチャサービスを含み得る。
【0093】
802において、ブローカーはアクションの実行を求める要求を受信することができる。たとえば、ブローカーは、顧客デバイスから、セキュアエンティティによるアクションの実行を求める要求を受信することができる。要求は、顧客デバイスの識別子と、セキュアエンティティによって実行されるアクションとを含むことができる。ある実施形態では、アクションは、加入者の対価請求記録を書き込む要求とすることができ、対価請求記録は消費されたいくつかのリソースを示すことができる。ある実施形態では、セキュアエンティティはエンクレーブとすることができる。ブローカーは、アクションの実行を求める要求をエンクレーブの境界において受信することができる。
【0094】
804において、ブローカーは、顧客デバイスがそのアクションの実行を許可されていると判定することができる。ある実施形態では、顧客デバイスがアクションの実行を許可されているとの判定は、加入者が顧客デバイスに許可を与えている1つまたは複数のアクションを判定することを含み得る。コンピューティングシステムは、要求によって示されたアクションが、上記1つまたは複数のアクションに含まれていると判定することができる。
【0095】
806において、ブローカーは鍵を取り出すことができる。たとえば、ブローカーは、セキュアエンティティから鍵を取り出すことができる。コンピューティングシステムは、加入者が顧客デバイスにそのアクションの実行の許可を与えているとの判定に少なくとも部分的に基づいて、セキュアエンティティに鍵を要求することができる。実施形態によっては、806は省かれてもよい。
【0096】
808において、ブローカーはクレデンシャルを生成することができる。たとえば、ブローカーは、顧客デバイスがそのアクションの実行を許可されているとの判定に少なくとも部分的に基づいて、セキュアエンティティへのアクセスのためのクレデンシャルを生成することができる。ある実施形態では、クレデンシャルの生成は鍵に少なくとも部分的に基づいてクレデンシャルを生成することを含み得る。
【0097】
810において、ブローカーは、クレデンシャルを信頼できる環境内で維持することができる。たとえば、セキュアエンティティとブローカーは信頼できる環境内に位置することができる。顧客デバイスは、信頼できる環境の外部に位置していてもよい。ブローカーは、クレデンシャルをセキュアエンティティとブローカーとを含む信頼できる環境内で維持することができる。
【0098】
812において、ブローカーは、セキュアエンティティにアクションを実行させるためにクレデンシャルを使用することができる。たとえば、ブローカーは、顧客デバイスに代わってセキュアエンティティにアクションを実行させるためにクレデンシャルを使用することができる。ブローカーは、セキュアエンティティへのアクセスを取得するためにセキュアエンティティにクレデンシャルを提供することができ、セキュアエンティティにアクションを実行させることができる。アクションが対価請求記録の入力である場合、ブローカーはセキュアエンティティに対価請求記録を入力させることができる。
【0099】
814において、ブローカーは、鍵の有効期間が満了したと判定することができる。たとえば、ブローカーは、セキュアエンティティから受信した鍵の有効期間が満了したと判定することができる。セキュアエンティティは、鍵を提供するときに、クレデンシャルの生成のために鍵を使用することができる有効期間を示すことができる。実施形態によっては、814は省かれてもよい。
【0100】
816において、ブローカーは鍵をリフレッシュすることができる。たとえば、ブローカーは、鍵の有効期間が満了したとの判定に少なくとも部分的に基づいて、セキュアエンティティにより鍵をリフレッシュすることができる。ブローカーは、鍵をリフレッシュするためにセキュアエンティティに新たな鍵を求める要求を提供することができ、新たな鍵を求める要求に基づいて新たな鍵を受信することができる。実施形態によっては、816は省かれてもよい。
【0101】
上述のように、インフラストラクチャアズアサービス(IaaS)は、1つの特定の種類のクラウドコンピューティングである。IaaSは、パブリックネットワーク(たとえばインターネット)を介して仮想化コンピューティングリソースを提供するように構成可能である。IaaSモデルにおいて、クラウドコンピューティングプロバイダがインフラストラクチャコンポーネント(たとえば、サーバ、ストレージデバイス、ネットワークノード(たとえばハードウェア)、デプロイメントソフトウェア、プラットフォーム仮想化(たとえばハイパーバイザ層)など)をホストすることができる。場合によっては、IaaSプロバイダが、それらのインフラストラクチャコンポーネントに付随する様々なサービス(たとえば、対価請求、モニタリング、ロギング、負荷バランシングおよびクラスタ化など)も提供することができる。したがって、これらのサービスはポリシー主導型とすることができるため、IaaSユーザは、アプリケーションの可用性およびパフォーマンスを維持するように負荷バランシングを駆動するために、ポリシーを実施することができるようにし得る。
【0102】
場合によっては、IaaS顧客は、インターネットなどのワイドエリアネットワーク(WAN)を介してリソースおよびサービスにアクセスすることができ、アプリケーションスタックの残りの要素をインストールするためにクラウドプロバイダのサービスを使用することができる。たとえば、ユーザは、仮想マシン(VM)の作成、各VMへのオペレーティングシステム(OS)のインストール、データベースなどのミドルウェアのデプロイメント、作業負荷およびバックアップのためのストレージバケットの作成、さらにそのVMへの企業ソフトウェアのインストールのために、IaaSプラットフォームにログインすることができる。顧客は次に、ネットワークトラフィックのバランシング、アプリケーションの問題のトラブルシューティング、パフォーマンスの監視、障害復旧の管理などを含む、様々な機能を実行するために、プロバイダのサービスを使用することができる。
【0103】
ほとんどの場合、クラウドコンピューティングモデルはクラウドプロバイダの関与を必要とすることになる。クラウドプロバイダは、IaaSの提供(たとえばオファリング、レンタル、販売)を専門に扱うサードパーティサービスとすることができるが、必ずしもこれには限らない。エンティティは、プライベートクラウドをデプロイすることを選択してもよく、それによってインフラストラクチャサービスの自己プロバイダとなってもよい。
【0104】
ある実施例では、IaaSデプロイメントは、準備されたアプリケーションサーバなどに新たなアプリケーションまたはアプリケーションの新たなバージョンを配置するプロセスである。これは、サーバを準備する(たとえばライブラリ、デーモンなどをインストールする)プロセスも含み得る。これは、ハイパーバイザ層より下(たとえばサーバ、ストレージ、ネットワークハードウェア、および仮想化)でクラウドプロバイダによって管理されることが多い。したがって、顧客は、ハンドリング(OS)、ミドルウェアおよび/またはアプリケーションのデプロイメント(たとえばセルフサービス仮想マシン(たとえばオンデマンドでスピンアップすることができる)など)を担うことができる。
【0105】
ある実施例では、IaaSプロビジョニングは、使用のためにコンピュータまたは仮想ホストを取得することと、さらにその上に必要なライブラリまたはサービスをインストールすることを指すことができる。多くの場合、デプロイメントはプロビジョニングを含まず、先にプロビジョニングが行われる必要がある場合がある。
【0106】
場合によっては、IaaSプロビジョニングには2つの異なる課題がある。第1に、いかなるものでもそれを稼働させる前にインフラストラクチャの初期セットをプロビジョニングするという初期課題がある。第2に、すべてがプロビジョニングされた後で、既存のインフラストラクチャを進化させる(たとえば新しいサービスを追加する、サービスを変更する、サービスを削除するなど)という課題がある。場合によっては、これら2つの課題には、インフラストラクチャの構成を宣言的に定義することを可能にすることによって対処することができる。言い換えると、1つまたは複数の構成ファイルによって、インフラストラクチャ(たとえばどのようなコンポーネントが必要であり、それらがどのように相互作用するか)を定義することができる。したがって、インフラストラクチャの全体的トポロジ(たとえば、どのようなリソースがどのリソースに依存しているか、およびそれらの各々がどのように協働するか)を、宣言的に記述することができる。場合によっては、トポロジが定義された後、構成ファイルで記述されている異なるコンポーネントを作成および/または管理するワークフローを生成することができる。
【0107】
ある実施例では、インフラストラクチャが多くの相互接続された要素を有することができる。たとえば、コアネットワークとも呼ばれる、1つまたは複数の仮想プライベートクラウド(VPC)(たとえば、構成可能および/または共用コンピューティングリソースの潜在的オンデマンドのプール)があってもよい。ある実施例では、ネットワークのインバウンドおよび/またはアウトバウンドトラフィックがどのように設定されるか、および1つまたは複数の仮想マシン(VM)を定義するためにプロビジョニングされる、1つまたは複数のインバウンド/アウトバウンドトラフィックグループ規則もあってもよい。負荷バランサ、データベースなど、他のインフラストラクチャ要素もプロビジョニング可能である。ますます多くのインフラストラクチャ要素が求められ、および/または追加されるにつれて、インフラストラクチャは徐々に進化することができる。
【0108】
場合によっては、様々な仮想コンピューティング環境にわたるインフラストラクチャコードのデプロイメントを可能にするために、連続デプロイメント技術を採用することができる。さらに、記載の技術は、これらの環境内でのインフラストラクチャ管理を可能にすることができる。ある実施例では、サービスチームが、1つまたは複数の、大抵は多くの異なる(たとえば様々な異なる地理的場所にわたる、時には世界中に広がる)実働環境にデプロイされることが求められるコードを書くことができる。しかし、実施例によっては、コードがデプロイされるインフラストラクチャがまず設定される必要がある。場合によっては、プロビジョニングを手動で行うことができ、リソースをプロビジョニングするためにプロビジョニングツールを使用することができ、および/または、インフラストラクチャがプロビジョニングされた後はコードをデプロイするためにデプロイメントツールを使用することができる。
【0109】
図9は、少なくとも1つの実施形態による、IaaSアーキテクチャの例示のパターンを示すブロック
図900である。サービス運用者902が、仮想クラウドネットワーク(VCN)906とセキュアホストサブネット908とを含むことができるセキュアホストテナンシー904に通信可能に結合可能である。ある実施例では、サービス運用者902は、Microsoft Windows Mobile(登録商標)などのソフトウェア、および/または、iOS、Windows Phone、Android、BlackBerry 8、Palm OSなどの様々なモバイルオペレーティングシステムを稼働させ、インターネット、eメール、ショートメッセージサービス(SMS)、Blackberry(登録商標)またはその他の通信プロトコル対応の、携帯型ハンドヘルドデバイス(たとえば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、パーソナルデジタルアシスタント(PDA))またはウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)であってもよい、1つまたは複数の顧客コンピューティングデバイスを使用することができる。あるいは、顧客コンピューティングデバイスは、たとえば、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/またはLinux(登録商標)オペレーティングシステムの様々なバージョンを稼働させる、パーソナルコンピュータおよび/またはラップトップコンピュータを含む、汎用パーソナルコンピュータであってもよい。顧客コンピューティングデバイスは、たとえばGoogle Chrome OSなどの様々なGNU/Linuxオペレーティングシステムを含むがこれらには限定されない様々な市販のUNIX(登録商標)またはUNIXのようなオペレーティングシステムのいずれかを稼働させる、ワークステーションコンピュータとすることができる。上記に代えて、または上記に加えて、顧客コンピューティングデバイスは、シンクライアントコンピュータ、インターネット対応ゲームシステム(たとえば、Kinect(登録商標)ジェスチャー入力デバイスありまたはなしのMicrosoft Xboxゲームコンソール)など、および/または、VCN906および/またはインターネットにアクセス可能なネットワークを介して通信することができるパーソナルメッセージングデバイスなど、任意のその他の電子デバイスであってもよい。
【0110】
VCN906は、SSH VCN912に含まれるLPG910を介してセキュアシェル(SSH:secure shell)VCN912に通信可能に結合可能な、ローカルピアリングゲートウェイ(LPG:local peering gateway)910を含むことができる。SSH VCN912は、SSHサブネット914を含むことができ、SSH VCN912は制御プレーンVCN916に含まれるLPG910を介して制御プレーンVCN916に通信可能に結合することができる。また、SSH VCN912は、LPG910を介してデータプレーンVCN918に通信可能に結合することができる。制御プレーンVCN916とデータプレーンVCN918は、IaaSプロバイダによって所有および/または運用可能なサービステナンシー919に含まれ得る。
【0111】
制御プレーンVCN916は、境界ネットワーク(たとえば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)として機能する、制御プレーン非武装地帯(DMZ:demilitarized zone)層920を含むことができる。DMZベースのサーバは、制限された任務を有し、侵害をくい止めるのに役立ち得る。さらに、DMZ層920は、1つまたは複数の負荷バランサ(LB:load balancer)サブネット922、アプリケーションサブネット926を含み得る制御プレーンアプリケーション層924、データベース(DB)サブネット930(たとえばフロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含み得る制御プレーンデータ層928を含むことができる。制御プレーンDMZ層920に含まれるLBサブネット922は、制御プレーンアプリケーション層924に含まれるアプリケーションサブネット926と制御プレーンVCN916に含まれ得るインターネットゲートウェイ934とに通信可能に結合することができ、アプリケーションサブネット926は、制御プレーンデータ層928に含まれるDBサブネット930とサービスゲートウェイ936およびネットワークアドレス変換(NAT:network address translation)ゲートウェイ938とに通信可能に結合することができる。制御プレーンVCN916は、サービスゲートウェイ936とNATゲートウェイ938とを含むことができる。
【0112】
制御プレーンVCN916は、アプリケーションサブネット926を含み得るデータプレーンミラーアプリケーション層940を含むことができる。データプレーンミラーアプリケーション層940に含まれるアプリケーションサブネット926は、計算インスタンス944を実行可能な仮想ネットワークインターフェースコントローラ(VNIC:virtual network interface controller)942を含むことができる。計算インスタンス944は、データプレーンミラーアプリケーション層940のアプリケーションサブネット926を、データプレーンアプリケーション層946に含まれ得るアプリケーションサブネット926に通信可能に結合することができる。
【0113】
データプレーンVCN918は、データプレーンアプリケーション層946とデータプレーンDMZ層948とデータプレーンデータ層950とを含むことができる。データプレーンDMZ層948は、データプレーンアプリケーション層946のアプリケーションサブネット926とデータプレーンVCN918のインターネットゲートウェイ934とに通信可能に結合することができるLBサブネット922を含むことができる。アプリケーションサブネット926は、データプレーンVCN918のサービスゲートウェイ936とデータプレーンVCN918のNATゲートウェイ938とに通信可能に結合することができる。データプレーンデータ層950は、データプレーンアプリケーション層946のアプリケーションサブネット926に通信可能に結合可能なDBサブネット930も含むことができる。
【0114】
制御プレーンVCN916とデータプレーンVCN918のインターネットゲートウェイ934は、パブリックインターネット954に通信可能に結合可能なメタデータ管理サービス952に通信可能に結合することができる。パブリックインターネット954は、制御プレーンVCN916の、およびデータプレーンVCN918のNATゲートウェイ938に通信可能に結合することができる。制御プレーンVCN916の、およびデータプレーンVCN918のサービスゲートウェイ936は、クラウドサービス956に通信可能に結合することができる。
【0115】
ある実施例では、制御プレーンVCN916の、またはデータプレーンVCN918のサービスゲートウェイ936は、パブリックインターネット954を通ることなくクラウドサービス956にアプリケーションプログラミングインターフェース(API:application programming interface)呼び出しを行うことができる。サービスゲートウェイ936からクラウドサービス956へのAPI呼び出しは、一方向とすることができる。すなわち、サービスゲートウェイ936はクラウドサービス956にAPI呼び出しを行うことができ、クラウドサービス956はサービスゲートウェイ936に要求されたデータを送信することができる。しかし、クラウドサービス956はサービスゲートウェイ936に対してAPI呼び出しを発信しない可能性がある。
【0116】
ある実施例では、セキュアホストテナンシー904が、他の場合には分離可能なサービステナンシー919に、直接接続することができる。セキュアホストサブネット908は、他の場合には分離されているシステムを介して双方向通信を可能にすることができる、LPG910を介してSSHサブネット914と通信することができる。セキュアホストサブネット908をSSHサブネット914に接続することにより、セキュアホストサブネット908にサービステナンシー919内の他のエンティティへのアクセスを与えることができる。
【0117】
制御プレーンVCN916は、サービステナンシー919のユーザが希望のリソースを設定またはその他によりプロビジョニングすることを可能にすることができる。制御プレーンVCN916においてプロビジョニングされた希望のリソースは、データプレーンVCN918においてデプロイまたはその他により使用することができる。ある実施例では、制御プレーンVCN916はデータプレーンVCN918から分離可能であり、制御プレーンVCN916のデータプレーンミラーアプリケーション層940は、データプレーンミラーアプリケーション層940およびデータプレーンアプリケーション層946に含まれ得るVNIC942を介してデータプレーンVCN918のデータプレーンアプリケーション層946と通信することができる。
【0118】
ある実施例では、システムのユーザまたは顧客が、メタデータ管理サービス952に要求を伝達することができるパブリックインターネット954を介して、たとえば作成、読み出し、更新または削除(CRUD:create, read, update or delete)動作の要求を行うことができる。メタデータ管理サービス952は、要求をインターネットゲートウェイ934を介して制御プレーンVCN916に伝達することができる。要求は、制御プレーンDMZ層920に含まれるLBサブネット922によって受信可能である。LBサブネット922は、要求が有効であると判定することができ、この判定に応答して、LBサブネット922は要求を制御プレーンアプリケーション層924に含まれるアプリケーションサブネット926に送信することができる。要求の有効性が検証され、パブリックインターネット954への呼び出しが必要な場合、パブリックインターネット954への呼び出しは、パブリックインターネット954への呼び出しを行うことができるNATゲートウェイ938に送信可能である。要求によって記憶されることが望まれる場合があるメモリを、DBサブネット930に格納することができる。
【0119】
ある実施例では、データプレーンミラーアプリケーション層940が、制御プレーンVCN916とデータプレーンVCN918との間の直接通信を容易にすることができる。たとえば、構成に対する変更、更新またはその他の適切な修正が、データプレーンVCN918に含まれるリソースに適用されることが望まれる場合がある。VNIC942によって、制御プレーンVCN916はデータプレーンVCN918に含まれるリソースと直接通信することができ、それによってそれらのリソースに対する構成の変更、更新またはその他の適切な修正を実行することができる。
【0120】
ある実施形態では、制御プレーンVCN916とデータプレーンVCN918は、サービステナンシー919に含まれ得る。この場合、システムのユーザまたは顧客は、制御プレーンVCN916またはデータプレーンVCN918を所有することも運用することもない可能性がある。その代わりに、IaaSプロバイダが制御プレーンVCN916およびデータプレーンVCN918を所有または運用することができ、これらの両方がサービステナンシー919に含まれ得る。この実施形態は、ユーザまたは顧客が他のユーザまたは他の顧客のリソースとインタラクトすることを防止することができる、ネットワークの分離を可能にし得る。また、この実施形態は、システムのユーザまたは顧客が、記憶のために望ましい脅威防止レベルを有していない可能性があるパブリックインターネット954に依存する必要なしに、データベースをプライベートで記憶することを可能にすることができる。
【0121】
他の実施形態では、制御プレーンVCN916に含まれるLBサブネット922を、サービスゲートウェイ936から信号を受信するように構成することができる。この実施形態では、制御プレーンVCN916とデータプレーンVCN918を、パブリックインターネット954を呼び出さずにIaaSプロバイダの顧客によって呼び出されるように構成することができる。顧客が使用するデータベースがIaaSプロバイダによって制御可能であり、パブリックインターネット954から分離可能なサービステナンシー919上に記憶することができるため、IaaSプロバイダの顧客はこの実施形態を望む可能性がある。
【0122】
図10は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示のパターンを示すブロック
図1000である。サービス運用者1002(たとえば
図9のサービス運用者902)を、仮想クラウドネットワーク(VCN)1006(たとえば
図9のVCN906)とセキュアホストサブネット1008(たとえば
図9のセキュアホストサブネット908)とを含むことができるセキュアホストテナンシー1004(たとえば
図9のセキュアホストテナンシー904)に通信可能に結合することができる。VCN1006は、SSH VCN1012に含まれるLPG910を介してセキュアシェル(SSH)VCN1012(たとえば
図9のSSH VCN912)に通信可能に結合することができるローカルピアリングゲートウェイ(LPG)1010(たとえば
図9のLPG910)を含むことができる。SSH VCN1012は、SSHサブネット1014(たとえば
図9のSSHサブネット914)を含むことができ、SSH VCN1012は制御プレーンVCN1016に含まれるLPG1010を介して制御プレーンVCN1016(たとえば
図9の制御プレーンVCN916)に通信可能に結合することができる。制御プレーンVCN1016はサービステナンシー1019(たとえば
図9のサービステナンシー919)に含めることができ、データプレーンVCN1018(たとえば
図9のデータプレーンVCN918)は、システムのユーザもしくは顧客によって所有または運用可能な顧客テナンシー1021に含めることができる。
【0123】
制御プレーンVCN1016は、LBサブネット1022(たとえば
図9のLBサブネット922)を含むことができる制御プレーンDMZ層1020(たとえば
図9の制御プレーンDMZ層920)と、アプリケーションサブネット1026(たとえば
図9のアプリケーションサブネット926)を含むことができる制御プレーンアプリケーション層1024(たとえば
図9の制御プレーンアプリケーション層924)と、データベース(DB)サブネット1030(たとえば
図9のDBサブネット930と類似したもの)を含むことができる制御プレーンデータ層1028(たとえば
図9の制御プレーンデータ層928)とを含むことができる。制御プレーンDMZ層1020に含まれるLBサブネット1022を、制御プレーンアプリケーション層1024に含まれるアプリケーションサブネット1026と、制御プレーンVCN1016に含まれ得るインターネットゲートウェイ1034(たとえば
図9のインターネットゲートウェイ934)とに通信可能に結合することができ、アプリケーションサブネット1026を制御プレーンデータ層1028に含まれるDBサブネット1030と、サービスゲートウェイ1036(たとえば
図9のサービスゲートウェイ636)およびネットワークアドレス変換(NAT)ゲートウェイ1038(たとえば
図9のNATゲートウェイ938)に通信可能に結合することができる。制御プレーンVCN1016は、サービスゲートウェイ1036とNATゲートウェイ1038を含むことができる。
【0124】
制御プレーンVCN1016は、アプリケーションサブネット1026を含むことができるデータプレーンミラーアプリケーション層1040(たとえば
図9のデータプレーンミラーアプリケーション層940)を含むことができる。データプレーンミラーアプリケーション層1040に含まれるアプリケーションサブネット1026は、計算インスタンス1044(たとえば
図9の計算インスタンス944に類似したもの)を実行することができる仮想ネットワークインターフェースコントローラ(VNIC)1042(たとえば
図9のVNIC942)を含むことができる。計算インスタンス1044は、データプレーンミラーアプリケーション層1040のアプリケーションサブネット1026とデータプレーンアプリケーション層1046(たとえば
図9のデータプレーンアプリケーション層946)に含まれ得るアプリケーションサブネット1026との間の、データプレーンミラーアプリケーション層1040に含まれるVNIC1042とデータプレーンアプリケーション層1046に含まれるVNIC1042とを介した通信を容易にすることができる。
【0125】
制御プレーンVCN1016に含まれるインターネットゲートウェイ1034は、パブリックインターネット1054(たとえば
図9のパブリックインターネット954)に通信可能に結合することができるメタデータ管理サービス1052(たとえば
図9のメタデータ管理サービス952)に通信可能に結合することができる。パブリックインターネット1054は、制御プレーンVCN1016に含まれるNATゲートウェイ1038に通信可能に結合することができる。制御プレーンVCN1016に含まれるサービスゲートウェイ1036を、クラウドサービス1056(たとえば
図9のクラウドサービス956)に通信可能に結合することができる。
【0126】
ある実施例では、データプレーンVCN1018は顧客テナンシー1021に含まれ得る。この場合、IaaSプロバイダは、各顧客に制御プレーンVCN1016を提供することができ、IaaSプロバイダは各顧客のためにサービステナンシー1019に含まれる固有計算インスタンス1044を設定することができる。各計算インスタンス1044は、サービステナンシー1019に含まれる制御プレーンVCN1016と顧客テナンシー1021に含まれるデータプレーンVCN1018との間の通信を可能にすることができる。計算インスタンス1044は、サービステナンシー1019に含まれる制御プレーンVCN1016においてプロビジョニングされているリソースを、顧客テナンシー1021に含まれるデータプレーンVCN1018においてデプロイまたはその他により使用することを可能にすることができる。
【0127】
他の実施例では、IaaSプロバイダの顧客は顧客テナンシー1021内にあるデータベースを有することができる。この実施例では、制御プレーンVCN1016は、アプリケーションサブネット1026を含むことができるデータプレーンミラーアプリケーション層1040を含むことができる。データプレーンミラーアプリケーション層1040は、データプレーンVCN1018に存在することができるが、データプレーンミラーアプリケーション層1040はデータプレーンVCN1018に存在しない可能性がある。すなわち、データプレーンミラーアプリケーション層1040は、顧客テナンシー1021にアクセスすることができるが、データプレーンミラーアプリケーション層1040はデータプレーンVCN1018に存在しない可能性があり、または、IaaSプロバイダの顧客によって所有されることも運用されることもない可能性がある。データプレーンミラーアプリケーション層1040は、データプレーンVCN1018への呼び出しを行うように構成することができるが、制御プレーンVCN1016に含まれるいずれのエンティティにも呼び出しを行うように構成されない可能性がある。顧客は、制御プレーンVCN1016においてプロビジョニングされているデータプレーンVCN1018におけるリソースをデプロイまたはその他により使用することを希望することができ、データプレーンミラーアプリケーション層1040は顧客のリソースの希望するデプロイメントまたはその他による使用を容易にすることができる。
【0128】
ある実施形態では、IaaSプロバイダの顧客はデータプレーンVCN1018にフィルタをかけることができる。この実施形態では、顧客はデータプレーンVCN1018が何にアクセス可能であるかを決定することができ、顧客はデータプレーンVCN1018からのパブリックインターネット1054へのアクセスを制限することができる。IaaSプロバイダは、外部ネットワークまたはデータベースへのデータプレーンVCN1018のアクセスにフィルタをかけるかまたはその他により制御することができない可能性がある。顧客テナンシー1021に含まれるデータプレーンVCN1018への顧客によるフィルタおよび制御の適用は、データプレーンVCN1018を他の顧客からとパブリックインターネット1054から分離しやすくすることができる。
【0129】
ある実施形態では、パブリックインターネット1054上、制御プレーンVCN1016上またはデータプレーンVCN1018上には存在しない可能性があるサービスにアクセスするために、クラウドサービス1056をサービスゲートウェイ1036によって呼び出すことができる。クラウドサービス1056と制御プレーンVCN1016またはデータプレーンVCN1018との間の接続は、ライブまたは連続ではない可能性がある。クラウドサービス1056は、IaaSプロバイダによって所有または運用されている異なるネットワーク上に存在することができる。クラウドサービス1056は、サービスゲートウェイ1036から呼び出しを受け取るように構成可能であり、パブリックインターネット1054から呼び出しを受け取らないように構成可能である。一部のクラウドサービス1056は、他のクラウドサービス1056から分離することができ、制御プレーンVCN1016を、制御プレーンVCN1016と同じリージョンにない可能性があるクラウドサービス1056から分離することができる。たとえば、制御プレーンVCN1016が「リージョン1」に位置してもよく、クラウドサービス「デプロイメント9」がリージョン1と「リージョン2」とに位置してもよい。リージョン1内に位置する制御プレーンVCN1016に含まれるサービスゲートウェイ1036によってデプロイメント9への呼び出しが行われた場合、その呼び出しをリージョン1内のデプロイメント9に送信することができる。この実施例では、制御プレーンVCN1016、またはリージョン1内のデプロイメント9は、リージョン2内のデプロイメント9と通信可能に結合されない、またはその他により通信しない可能性がある。
【0130】
図11は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示のパターンを示すブロック
図1100である。サービス運用者1102(たとえば
図9のサービス運用者902)を、仮想クラウドネットワーク(VCN)1106(たとえば
図9のVCN906)を含むことができるセキュアホストテナンシー1104(たとえば
図9のセキュアホストテナンシー904)およびセキュアホストサブネット1108(たとえば
図9のセキュアホストサブネット908)に通信可能に結合することができる。VCN1106は、SSH VCN1112に含まれるLPG1110を介してSSH VCN1112(たとえば
図9のSSH VCN912)に通信可能に結合することができるLPG1110(たとえば
図9のLPG910)を含むことができる。SSH VCN1112は、SSHサブネット1114(たとえば
図9のSSHサブネット914)を含むことができ、SSH VCN1112は、制御プレーンVCN1116に含まれるLPG1110を介して制御プレーンVCN1116(たとえば
図9の制御プレーンVCN916)と、データプレーンVCN1118に含まれるLPG1110を介してデータプレーンVCN1118(たとえば
図9のデータプレーン918)とに通信可能に結合することができる。制御プレーンVCN1116とデータプレーンVCN1118は、サービステナンシー1119(たとえば
図9のサービステナンシー919)に含まれ得る。
【0131】
制御プレーンVCN1116は、負荷バランサ(LB)サブネット1122(たとえば
図9のLBサブネット922)を含むことができる制御プレーンDMZ層1120(たとえば
図9の制御プレーンDMZ層920)と、アプリケーションサブネット1126(たとえば
図9のアプリケーションサブネット926と類似したもの)を含むことができる制御プレーンアプリケーション層1124(たとえば
図9の制御プレーンアプリケーション層924)と、DBサブネット1130を含むことができる制御プレーンデータ層1128(たとえば
図9の制御プレーンデータ層928)とを含むことができる。制御プレーンDMZ層1120に含まれるLBサブネット1122は、制御プレーンアプリケーション層1124に含まれるアプリケーションサブネット1126と、制御プレーンVCN1116に含まれ得るインターネットゲートウェイ1134(たとえば
図9のインターネットゲートウェイ934)とに通信可能に結合することができ、アプリケーションサブネット1126は、制御プレーンデータ層1128に含まれるDBサブネット1130と、サービスゲートウェイ1136(たとえば
図9のサービスゲートウェイ936)およびネットワークアドレス変換(NAT)ゲートウェイ1138(たとえば
図9のNATゲートウェイ938)とに通信可能に結合することができる。制御プレーンVCN1116は、サービスゲートウェイ1136とNATゲートウェイ1138とを含むことができる。
【0132】
データプレーンVCN1118は、データプレーンアプリケーション層1146(たとえば
図9のデータプレーンアプリケーション層946)と、データプレーンDMZ層1148(たとえば
図9のデータプレーンDMZ層948)と、データプレーンデータ層1150(たとえば
図9のデータプレーンデータ層950)とを含むことができる。データプレーンDMZ層1148は、データプレーンアプリケーション層1146の信頼できるアプリケーションサブネット1160と信頼できないアプリケーションサブネット1162と、データプレーンVCN1118に含まれるインターネットゲートウェイ1134とに通信可能に結合可能なLBサブネット1122を含むことができる。信頼できるアプリケーションサブネット1160は、データプレーンVCN1118に含まれるサービスゲートウェイ1136と、データプレーンVCN1118に含まれるNATゲートウェイ1138と、データプレーンデータ層1150に含まれるDBサブネット1130とに通信可能に結合することができる。信頼できないアプリケーションサブネット1162は、データプレーンVCN1118に含まれるサービスゲートウェイ1136と、データプレーンデータ層1150に含まれるDBサブネット1130とに通信可能に結合することができる。データプレーンデータ層1150は、データプレーンVCN1118に含まれるサービスゲートウェイ1136に通信可能に結合可能なDBサブネット1130を含むことができる。
【0133】
信頼できないアプリケーションサブネット1162は、テナント仮想マシン(VM)1166(1)~(N)に通信可能に結合可能な1つまたは複数の一次VNIC1164(1)~(N)を含むことができる。各テナントVM1166(1)~(N)は、それぞれの顧客テナンシー1170(1)~(N)に含まれ得るそれぞれのコンテナエグレスVCN1168(1)~(N)に含まれ得るそれぞれのアプリケーションサブネット1167(1)~(N)に通信可能に結合することができる。それぞれの二次VNIC1172(1)~(N)が、データプレーンVCN1118に含まれる信頼できないアプリケーションサブネット1162とコンテナエグレスVCN1168(1)~(N)に含まれるアプリケーションサブネットとの間の通信を容易にすることができる。各コンテナエグレスVCN1168(1)~(N)は、パブリックインターネット1154(たとえば
図9のパブリックインターネット954)に通信可能に結合可能なNATゲートウェイ1138を含むことができる。
【0134】
制御プレーンVCN1116に含まれ、データプレーンVCN1118に含まれるインターネットゲートウェイ1134を、パブリックインターネット1154に通信可能に結合可能なメタデータ管理サービス1152(たとえば
図9のメタデータ管理システム952)に通信可能に結合することができる。パブリックインターネット1154を、制御プレーンVCN1116に含まれ、データプレーンVCN1118に含まれる、NATゲートウェイ1138に通信可能に結合することができる。制御プレーンVCN1116に含まれ、データプレーンVCN1118に含まれる、サービスゲートウェイ1136をクラウドサービス1156に通信可能に結合することができる。
【0135】
ある実施形態では、データプレーンVCN1118は、顧客テナンシー1170と一体化することができる。この一体化は、コードを実行するときにサポートが望まれる場合など、場合によってはIaaSプロバイダの顧客にとって有用または望ましい可能性がある。顧客は、破壊的である可能性があるか、他の顧客リソースと通信する可能性があるか、またはその他により望ましくない影響を生じさせる可能性があるコードを実行のために提供する可能性がある。これに応答して、IaaSプロバイダは、顧客によってIaaSプロバイダに与えられたコードを実行するか否かを判定することができる。
【0136】
ある実施例では、IaaSプロバイダの顧客は、IaaSプロバイダへの一時的なネットワークアクセスを認めることができ、データプレーンアプリケーション層1146に機能を付加することを要求することができる。その機能を実行するコードはVM1166(1)~(N)において実行可能であり、このコードはデータプレーンVCN1118上の他の場所で実行するように構成されない可能性がある。各VM1166(1)~(N)は、1つの顧客テナンシー1170に接続することができる。VM1166(1)~(N)に含まれるそれぞれのコンテナ1171(1)~(N)を、このコードを実行するように構成することができる。この場合、二重分離(たとえば、コンテナ1171(1)~(N)がコードを実行し、コンテナ1171(1)~(N)は、信頼できないアプリケーションサブネット1162に含まれるVM1166(1)~(N)に少なくとも含まれ得る)が存在することができ、これは、不適正またはその他により望ましくないコードがIaaSプロバイダのネットワークに損傷を与えること、または異なる顧客のネットワークに損傷を与えることを防止するのに役立ち得る。コンテナ1171(1)~(N)は、顧客テナンシー1170に通信可能に結合することができ、顧客テナンシー1170との間でデータを送信または受信するように構成することができる。コンテナ1171(1)~(N)は、データプレーンVCN1118におけるいずれの他のエンティティとの間でもデータを送信または受信するように構成されない可能性がある。コードの実行の完了時、IaaSプロバイダはコンテナ1171(1)~(N)を無効化またはその他により廃棄することができる。
【0137】
ある実施形態では、信頼できるアプリケーションサブネット1160が、IaaSプロバイダによって所有または運用可能なコードを実行することができる。この実施形態では、信頼できるアプリケーションサブネット1160はDBサブネット1130に通信可能に結合され、DBサブネット1130においてCRUD動作を実行するように構成可能である。信頼できないアプリケーションサブネット1162は、DBサブネット1130に通信可能に結合することができるが、この実施形態では、信頼できないアプリケーションサブネットをDBサブネット1130において読み出し動作を実行するように構成可能である。各顧客のVM1166(1)~(N)に含めることができ、顧客からのコードを実行することができるコンテナ1171(1)~(N)は、DBサブネット1130に通信可能に結合されない可能性がある。
【0138】
他の実施形態では、制御プレーンVCN1116とデータプレーンVCN1118を、直接通信可能に結合されない可能性がある。この実施形態では、制御プレーンVCN1116とデータプレーンVCN1118との間には直接通信が存在しない可能性がある。しかし、少なくとも1つの方法によって通信を間接的に行うことができる。制御プレーンVCN1116とデータプレーンVCN1118との間の通信を容易にすることができるLPG1110を、IaaSプロバイダが設定することができる。別の実施例では、制御プレーンVCN1116またはデータプレーンVCN1118が、サービスゲートウェイ1136を介してクラウドサービス1156に呼び出しを行うことができる。たとえば、制御プレーンVCN1116からクラウドサービス1156への呼び出しは、データプレーンVCN1118と通信することができるサービスの要求を含み得る。
【0139】
図12は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示のパターンを示すブロック
図1200である。サービス運用者1202(たとえば
図9のサービス運用者902)を、仮想クラウドネットワーク(VCN)1206(たとえば
図9のVCN906)とセキュアホストサブネット1208(たとえば
図9のセキュアホストサブネット908)とを含むことができるセキュアホストテナンシー1204(たとえば
図9のセキュアホストテナンシー904)に通信可能に結合することができる。VCN1206は、SSH VCN1212(たとえば
図9のSSH VCN912)にSSH VCN1212に含まれるLPG1210を介して通信可能に結合することができるLPG1210(たとえば
図9のLPG910)を含むことができる。SSH VCN1212は、SSHサブネット1214(たとえば
図9のSSHサブネット914)を含むことができ、SSH VCN1212は制御プレーンVCN1216に含まれるLPG1210を介して制御プレーンVCN1216(たとえば
図9の制御プレーンVCN916)と、データプレーンVCN1218に含まれるLPG1210を介してデータプレーンVCN1218(たとえば
図9のデータプレーン918)とに通信可能に結合することができる。制御プレーンVCN1216とデータプレーンVCN1218は、サービステナンシー1219(たとえば
図9のサービステナンシー919)に含まれ得る。
【0140】
制御プレーンVCN1216は、LBサブネット1222(たとえば
図9のLBサブネット922)を含むことができる制御プレーンDMZ層1220(たとえば
図9の制御プレーンDMZ層920)と、アプリケーションサブネット1226(たとえば
図9のアプリケーションサブネット926)を含むことができる制御プレーンアプリケーション層1224(たとえば
図9の制御プレーンアプリケーション層924)と、DBサブネット1230(たとえば
図11のDBサブネット1130)を含むことができる制御プレーンデータ層1228(たとえば
図9の制御プレーンデータ層928)とを含むことができる。制御プレーンDMZ層1220に含まれるLBサブネット1222は、制御プレーンアプリケーション層1224に含まれるアプリケーションサブネット1226と、制御プレーンVCN1216に含まれ得るインターネットゲートウェイ1234(たとえば
図9のインターネットゲートウェイ934)とに通信可能に結合することができ、アプリケーションサブネット1226は、制御プレーンデータ層1228に含まれるDBサブネット1230と、サービスゲートウェイ1236(たとえば
図9のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1238(たとえば
図9のNATゲートウェイ938)とに通信可能に結合することができる。制御プレーンVCN1216は、サービスゲートウェイ1236とNATゲートウェイ1238を含むことができる。
【0141】
データプレーンVCN1218は、データプレーンアプリケーション層1246(たとえば
図9のデータプレーンアプリケーション層946)と、データプレーンDMZ層1248(たとえば
図9のデータプレーンDMZ層948)と、データプレーンデータ層1250(たとえば
図9のデータプレーンデータ層950)とを含むことができる。データプレーンDMZ層1248は、信頼できるアプリケーションサブネット1260(たとえば
図11の信頼できるアプリケーションサブネット1160)とデータプレーンアプリケーション層1246の信頼できないアプリケーションサブネット1262(たとえば
図11の信頼できないアプリケーションサブネット1162)とデータプレーンVCN1218に含まれるインターネットゲートウェイ1234とに通信可能に結合することができるLBサブネット1222を含むことができる。信頼できるアプリケーションサブネット1260は、データプレーンVCN1218に含まれるサービスゲートウェイ1236と、データプレーンVCN1218に含まれるNATゲートウェイ1238と、データプレーンデータ層1250に含まれるDBサブネット1230とに通信可能に結合することができる。信頼できないアプリケーションサブネット1262は、データプレーンVCN1218に含まれるサービスゲートウェイ1236と、データプレーンデータ層1250に含まれるDBサブネット1230とに通信可能に結合することができる。データプレーンデータ層1250は、データプレーンVCN1218に含まれるサービスゲートウェイ1236に通信可能に結合することができるDBサブネット1230を含むことができる。
【0142】
信頼できないアプリケーションサブネット1262は、信頼できないアプリケーションサブネット1262内にあるテナント仮想マシン(VM)1266(1)~(N)に通信可能に結合可能な一次VNIC1264(1)~(N)を含むことができる。各テナントVM1266(1)~(N)は、それぞれのコンテナ1267(1)~(N)内のコードを実行することができ、コンテナエグレスVCN1268に含まれ得るデータプレーンアプリケーション層1246に含まれ得るアプリケーションサブネット1226に通信可能に結合することができる。それぞれの二次VNIC1272(1)~(N)が、データプレーンVCN1218に含まれる信頼できないアプリケーションサブネット1262とコンテナエグレスVCN1268に含まれるアプリケーションサブネットとの間の通信を容易にすることができる。コンテナエグレスVCNは、パブリックインターネット1254(たとえば
図9のパブリックインターネット954)に通信可能に結合することができるNATゲートウェイ1238を含むことができる。
【0143】
制御プレーンVCN1216に含まれ、データプレーンVCN1218に含まれるインターネットゲートウェイ1234は、パブリックインターネット1254に通信可能に結合することができるメタデータ管理サービス1252(たとえば
図9のメタデータ管理システム952)に通信可能に結合することができる。パブリックインターネット1254は、制御プレーンVCN1216に含まれ、データプレーンVCN1218に含まれるNATゲートウェイ1238に通信可能に結合することができる。制御プレーンVCN1216に含まれ、データプレーンVCN1218に含まれるサービスゲートウェイ1236をクラウドサービス1256に通信可能に結合することができる。
【0144】
ある実施例では、
図12のブロック
図1200のアーキテクチャによって示されるパターンは、
図11のブロック
図1100のアーキテクチャによって示されるパターンの例外とみなすことができ、IaaSプロバイダの顧客にとって、IaaSプロバイダが顧客と直接通信することができない(たとえば切断されたリージョン)場合に望ましい場合がある。各顧客のためのVM1266(1)~(N)に含まれるそれぞれのコンテナ1267(1)~(N)は、その顧客によってリアルタイムでアクセス可能である。コンテナ1267(1)~(N)は、コンテナエグレスVCN1268に含まれ得るデータプレーンアプリケーション層1246のアプリケーションサブネット1226に含まれるそれぞれの二次VNIC1272(1)~(N)に呼び出しを行うように構成することができる。二次VNIC1272(1)~(N)は、パブリックインターネット1254に呼び出しを送信することができるNATゲートウェイ1238に呼び出しを送信することができる。この実施例では、顧客がリアルタイムでアクセス可能なコンテナ1267(1)~(N)は、制御プレーンVCN1216から分離可能であり、データプレーンVCN1218内に含まれる他のエンティティから分離可能である。コンテナ1267(1)~(N)は他の顧客からのリソースからも分離可能である。
【0145】
他の実施例では、顧客はクラウドサービス1256を呼び出すためにコンテナ1267(1)~(N)を使用することができる。この実施例では、顧客は、クラウドサービス1256にサービスを要求するコンテナ1267(1)~(N)内のコードを実行することができる。コンテナ1267(1)~(N)はこの要求を、要求をパブリックインターネット1254に送信することができるNATゲートウェイに要求を送信することができる二次VNIC1272(1)~(N)に送信することができる。パブリックインターネット1254は、要求をインターネットゲートウェイ1234を介して制御プレーンVCN1216に含まれるLBサブネット1222に送信することができる。要求が有効であるとの判定に応答して、LBサブネットは、要求をサービスゲートウェイ1236を介してクラウドサービス1256に送信することができるアプリケーションサブネット1226に要求を送信することができる。
【0146】
図に示されているIaaSアーキテクチャ900、1000、1100、1200は、図示されている以外のコンポーネントを有することができることを理解されたい。また、図に示されている実施形態は、本開示の実施形態を組み込むことができるクラウドインフラストラクチャシステムのいくつかの例に過ぎない。一部の他の実施形態では、IaaSシステムは、図に示されているよりも多いかまたは少ないコンポーネントを有してもよく、2つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有してもよい。
【0147】
ある実施形態では、本明細書に記載のIaaSシステムは、顧客にセルフサービスの、加入式で、柔軟に拡張可能で信頼性があり、可用性の高いセキュアな方式で配布される、1組のアプリケーション、ミドルウェアおよびデータベースサービス提供品を含むことができる。このようなIaaSシステムの一例は、本出願の譲渡人によって提供されるOracle Cloud Infrastructure(OCI)である。
【0148】
図13に、様々な実施形態を実装可能な例示のコンピュータシステム1300を示す。システム1300は、上述のコンピュータシステムのいずれかを実装するために使用することができる。図に示すように、コンピュータシステム1300は、バスサブシステム1302を介していくつかの周辺サブシステムと通信する処理ユニット1304を含む。これらの周辺サブシステムは、処理アクセラレーションユニット1306とI/Oサブシステム1308とストレージサブシステム1318と通信サブシステム1324とを含むことができる。ストレージサブシステム1318は、有形のコンピュータ可読記憶媒体1322とシステムメモリ1310を含む。
【0149】
バスサブシステム1302は、コンピュータシステム1300の様々なコンポーネントおよびサブシステムを目的通りに互いに通信させるための機構を提供する。バスサブシステム1302は単一のバスとして概略的に示されているが、バスサブシステムの別の実施形態は複数のバスを使用してもよい。バスサブシステム1302は、様々なバスアーキテクチャのいずれかを使用した、メモリバスまたはメモリコントローラ、ペリフェラルバスおよびローカルバスを含む、数種類のバス構造のうちのいずれでもよい。たとえば、そのようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダードアソシエーション(VESA)ローカルバス、およびIEEE P1386.1標準に従って製造されたメザニンバスとして実装可能なペリフェラルコンポーネントインターコネクト(PCI)バスが含まれ得る。
【0150】
1つまたは複数の集積回路(たとえば従来のマイクロプロセッサまたはマイクロコントローラ)として実装可能な処理ユニット1304が、コンピュータシステム1300の動作を制御する。処理ユニット1304には1つまたは複数のプロセッサが含まれ得る。これらのプロセッサには、シングルコアまたはマルチコアプロセッサが含まれ得る。ある実施形態では、処理ユニット1304は、各処理ユニットにシングルコアプロセッサまたはマルチコアプロセッサが含まれた、1つまたは複数の独立した処理ユニット1332および/または1334として実装可能である。他の実施形態では、処理ユニット1304は、2つのデュアルコアプロセッサを単一のチップに集積することによって形成されたクワッドコア処理ユニットとして実装することもできる。
【0151】
様々な実施形態において、処理ユニット1304は、プログラムコードに応答して様々なプログラムを実行することができ、複数の並列実行プログラムまたはプロセスを維持することができる。任意の時点で、実行されるプログラムコードの一部または全部がプロセッサ1304内および/またはストレージサブシステム1318内に存在することができる。適切なプログラミングにより、プロセッサ1304は上述の様々な機能を提供することができる。コンピュータシステム1300は、デジタルシグナルプロセッサ(DSP)、特殊目的プロセッサおよび/または同様のものなどを含み得る処理アクセラレーションユニット1306をさらに含むことができる。
【0152】
I/Oサブシステム1308は、ユーザインターフェース入力デバイスとユーザインターフェース出力デバイスを含むことができる。ユーザインターフェース入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを有する音声入力デバイス、マイクロフォン、およびその他の種類の入力デバイスを含み得る。ユーザインターフェース入力デバイスは、たとえば、ユーザが、ジェスチャーと発話コマンドを使用してナチュラルユーザインターフェースを介してMicrosoft Xbox(登録商標)360ゲームコントローラなどの入力デバイスを制御し、対話することを可能にするMicrosoft Kinect(登録商標)モーションセンサーなどの、モーションセンシングおよび/またはジェスチャー認識デバイスを含み得る。ユーザインターフェース入力デバイスには、ユーザからの眼球活動(たとえば写真撮影および/またはメニュー選択時の「まばたき」)を検出し、眼球ジェスチャーを入力デバイス(たとえばGoogle Glass(登録商標))への入力として変換する、Google Glass(登録商標)まばたき検出器などの眼球ジェスチャー認識デバイスも含まれ得る。さらに、ユーザインターフェース入力デバイスには、ユーザが音声コマンドにより音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスが含まれ得る。
【0153】
ユーザインターフェース入力デバイスには、これらには限定されないが3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドならびにグラフィックタブレット、および、スピーカ、デジタルカメラ、デジタルカムコーダ、携帯型メディアプレイヤー、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダー3Dスキャナ、3Dプリンタ、レーザ距離測定器および視線追跡デバイスなどの音声/視覚デバイスも含まれ得る。さらに、ユーザインターフェース入力デバイスには、たとえば、コンピュータ断層撮影、磁気共鳴撮影、陽電子放出断層撮影、医療超音波検査デバイスなどの医療用撮像入力デバイスが含まれ得る。ユーザインターフェース入力デバイスには、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスも含まれ得る。
【0154】
ユーザインターフェース出力デバイスには、ディスプレイサブシステム、表示灯または音声出力デバイスなどの非視覚ディスプレイが含まれ得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイなどのフラットパネルデバイス、プロジェクションデバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という用語の使用は、コンピュータシステム1300からユーザまたは他のコンピュータに情報を出力するための可能なあらゆる種類のデバイスおよび機構を含むことが意図されている。たとえば、ユーザインターフェース出力デバイスは、これらには限定されないが、モニター、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなど、テキスト、グラフィックスおよび音声/ビデオ情報を視覚的に伝達する様々なディスプレイデバイスを含み得る。
【0155】
コンピュータシステム1300は、現在システムメモリ1310内にあるものとして示されているソフトウェア要素を含むストレージサブシステム1318を含むことができる。システムメモリ1310は、処理ユニット1304にロード可能であり、実行可能なプログラム命令と、これらのプログラムの実行時に生成されたデータとを記憶することができる。
【0156】
コンピュータシステム1300の構成および種類に応じて、システムメモリ1310は揮発性(ランダムアクセスメモリ(RAM)など)、および/または不揮発性(読み出し専用メモリ(ROM)、フラッシュメモリなど)とすることができる。RAMは、典型的には、処理ユニット1304によって即時にアクセス可能であり、および/もしくは、現在操作および実行されているデータならびに/またはプログラムモジュールを含む。実装形態によっては、システムメモリ1310は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの複数の異なる種類のメモリを含むことができる。実装形態によっては、一般的に、スタートアップ時などにコンピュータシステム1300内の要素間で情報を転送するのを助ける基本ルーチンを含む、基本入出力システム(BIOS)をROMに記憶することができる。たとえば、これらには限定されないが、システムメモリ1310は、顧客アプリケーション、ウェブブラウザ、中層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム1321、プログラムデータ1314、およびオペレーティングシステム1316も示している。たとえば、オペレーティングシステム1316には、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/またはLinuxオペレーティングシステムの様々なバージョン、様々な市販のUNIX(登録商標)またはUNIXのようなオペレーティングシステム(これらには限らないがGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSの種類などを含む)および/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)OSおよびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムが含まれ得る。
【0157】
ストレージサブシステム1318は、一部の実施形態の機能を提供する基本プログラミングおよびデータ構造を記憶するための有形のコンピュータ可読記憶媒体も提供することができる。プロセッサによって実行されると上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)を、ストレージサブシステム1318に記憶することができる。これらのソフトウェアモジュールまたは命令は、処理ユニット1304によって実行可能である。ストレージサブシステム1318は、本開示に従って使用されるデータを記憶するためのリポジトリを提供することもできる。
【0158】
ストレージサブシステム1300は、さらにコンピュータ可読記憶媒体1322に接続可能なコンピュータ可読記憶媒体リーダー1320も含むことができる。システムメモリ1310とともに、および任意により、システムメモリ1310と組み合わせて、コンピュータ可読記憶媒体1322は、リモート、ローカル、固定および/または取り外し型ストレージデバイスと、コンピュータ可読情報を一時的におよび/またはより永続的に含み、記憶し、送信し、取り出すための記憶媒体を包括的に表し得る。
【0159】
コードまたはコードの一部を含むコンピュータ可読記憶媒体1322は、情報の記憶および/または伝送のための任意の方法または技術で実装された、揮発性および不揮発性、取り外し型および非取り外し型媒体などであるがこれらには限定されない記憶媒体および通信媒体を含む、当技術分野で知られているかまたは使用されている任意の適切な媒体も含み得る。これには、RAM、ROM、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリもしくはその他のメモリ技術、CD-ROM、デジタルバーサタイルディスク(DVD)もしくはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、またはその他の有形なコンピュータ可読媒体などの、有形のコンピュータ可読記憶媒体が含まれる。これには、データ信号、データ伝送、または所望の情報を伝送するために使用可能であり、コンピューティングシステム1300がアクセス可能な任意のその他の媒体などの、非有形のコンピュータ可読媒体も含まれ得る。
【0160】
たとえば、コンピュータ可読記憶媒体1322は、非取り外し型不揮発性磁気媒体の読み出しまたは書き込みを行うハードディスクドライブ、取り外し型不揮発性磁気ディスクの読み出しまたは書き込みを行う磁気ディスクドライブ、およびCD ROM、DVDおよびBlu-Ray(登録商標)ディスクまたはその他の光媒体などの取り外し型不揮発性光ディスクの読み出しまたは書き込みを行う光ディスクドライブを含み得る。コンピュータ可読記憶媒体1322は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、これらには限定されない。コンピュータ可読記憶媒体1322は、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなど、不揮発性メモリに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗型RAM(MRAM)SSDなどの揮発性メモリに基づくSSD、およびDRAMとフラッシュメモリベースのSSDの組合せを使用するハイブリッドSSDも含み得る。ディスクドライブとそれに関連付けられたコンピュータ可読媒体は、コンピュータシステム1300にコンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータの不揮発性ストレージを提供することができる。
【0161】
通信サブシステム1324は、他のコンピュータシステムおよびネットワークへのインターフェースを提供する。通信サブシステム1324は、コンピュータシステム1300以外のシステムとの間でデータを受信し、送信するためのインターフェースとして機能する。たとえば、通信サブシステム1324は、コンピュータシステム1300がインターネットを介して1つまたは複数のデバイスに接続することを可能にすることができる。実施形態によっては、通信サブシステム1324は、(たとえば、携帯電話技術、3G、4GまたはEDGE(グローバルエボリューション向け進化型高速データレート)、WiFi(IEEE802.11ファミリー標準、またはその他のモバイル通信技術などの先進データネットワーク技術あるいはこれらの任意の組合せを使用した)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)送受信器コンポーネント、グローバルポジショニングシステム(GPS)受信器コンポーネントおよび/またはその他のコンポーネントを含むことができる。実施形態によっては、通信サブシステム1324は、無線インターフェースに加えてまたはその代わりに、有線ネットワーク接続(たとえばEthernet(登録商標))を提供することができる。
【0162】
実施形態によっては、通信サブシステム1324は、コンピュータシステム1300を使用可能な1人または複数のユーザに代わって、構造化および/または非構造化データフィード1326、イベントストリーム1328、イベント更新1330などの形態の入力通信も受信することができる。
【0163】
たとえば、通信サブシステム1324は、Twitter(登録商標)フィード、Facebook(登録商標)更新、リッチサイトサマリー(RSS:Rich Site Summary)フィード、および/または1つまたは複数のサードパーティ情報源からのリアルタイム更新などの、ウェブフィードなどのソーシャルネットワークおよび/またはその他の通信サービスのユーザからリアルタイムでデータフィード1326を受信するように構成可能である。
【0164】
さらに、通信サブシステム1324は、明確な終わりのない連続的または際限のない性質の場合があるリアルタイムイベントのイベントストリーム1328および/またはイベント更新1330を含み得る、連続データストリームの形態のデータを受信するように構成することも可能である。連続データを生成するアプリケーションの例には、たとえば、センサーデータアプリケーション、金融ティッカー、ネットワークパフォーマンス測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通量モニタリングなどが含まれ得る。
【0165】
通信サブシステム1324は、コンピュータシステム1300に結合された1つまたは複数のストリーミングデータソースコンピュータと通信可能な1つまたは複数のデータベースに、構造化および/または非構造化データフィード1326、イベントストリーム1328、イベント更新1330などを出力するように構成することも可能である。
【0166】
コンピュータシステム1300は、ハンドヘルド携帯型デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意のその他のデータ処理システムを含む、様々な種類のうちの1つとすることができる。
【0167】
コンピュータとネットワークの絶えず変化する性質のため、図に示されているコンピュータシステム1300の説明は具体例として意図されているに過ぎない。図に示されているシステムより多いかまたはより少ないコンポーネントを有する多くの他の構成も可能である。たとえば、カスタマイズされたハードウェアも使用されてもよく、および/または特定の要素がハードウェア、ファームウェア、ソフトウェア(アプレットを含む)またはこれらの組合せで実装されてもよい。また、ネットワーク入力/出力デバイスなど、他のコンピューティングデバイスへの接続を採用することができる。本開示および本明細書で示されている教示に基づいて、当業者には様々な実施形態を実装する他の方式および/または方法もわかるであろう。
【0168】
特定の実施形態について説明したが、様々な修正、変更、代替構造および同等物も本開示の範囲内に包含される。実施形態は、ある特定のデータ処理環境内での動作には限定されず、複数のデータ処理環境内で自由に動作することができる。さらに、実施形態について特定の一連のトランザクションおよびステップを使用して説明したが、本開示の範囲は記載されている一連のトランザクションおよびステップには限定されないことが当業者には明らかであろう。上述の実施形態の様々な特徴および態様は、個別にまたは組み合わせて使用することができる。
【0169】
また、実施形態についてハードウェアおよびソフトウェアの特定の組合せを使用して説明したが、ハードウェアとソフトウェアの他の組合せも本開示の範囲内に含まれるものと理解されたい。実施形態は、ハードウェアでのみ、またはソフトウェアでのみ、あるいはこれらの組合せを使用して実装可能である。実施形態は、プロセッサによって実行されるとプロセッサに本開示に記載の方法のいずれかを実行させるコンピュータプログラム/命令を含むコンピュータプログラム製品を使用して実装されてもよい。本明細書に記載の様々なプロセスは、同じプロセッサ上または任意の組合せの異なるプロセッサ上で実施可能である。したがって、コンポーネントまたはモジュールについてある動作を行うように構成されているものとして説明されている場合、そのような構成は、たとえば、その動作を行うように電子回路を設計することによって、または、その動作を行うようにプログラマブル電子回路(マイクロプロセッサなど)をプログラムすることによって、あるいはこれらの任意の組合せによって実現可能である。プロセスは、プロセス間通信のための従来の技術を含むがこれらには限らない様々な技術を使用して通信することができ、プロセスの異なる対が異なる技術を使用してもよく、またはプロセスの同じ対が異なる時点で異なる技術を使用してもよい。
【0170】
したがって、本明細書および図面は、制限的な意味ではなく例示的な意味で捉えられるべきである。しかし、特許請求の範囲に記載されているより広い思想および範囲から逸脱することなくこれらに対する追加、控除、削除ならびにその他の修正および変更を加えることができることは明らかであろう。したがって、特定の開示の実施形態について説明したが、これらは限定的であることは意図されていない。様々な修正および同等物も以下の特許請求の範囲に含まれる。
【0171】
本開示の実施形態の説明の文脈(特に以下の特許請求の範囲の文脈)における「a」、「an」、「the」という用語および類似の指示物の使用は、本明細書で別に示されているかまたは文脈によって明確に否定されない限り、単数と複数の両方を対象として含むものと解釈されるべきである。「含む(comprising)」、「有する(having)」、「含む(including)」および「含む(containing)」という用語は、別に明記されていない限りオープンエンド用語(すなわち「含むが、それには限定されない」ことを意味する)と解釈されるべきである。「接続される」という用語は、介在するものがある場合でも、一部もしくは全体が中に含まれるか、取り付けられるかまたは互いに接合されていると解釈されるべきである。本明細書における値の範囲の記載は、本明細書において別に示されていない限り、単にその範囲に入る各々別個の値を個別に指す省略された方法の役割を果たすように意図されているに過ぎず、各々別個の値は本明細書において個別に記載されているかのように本明細書に組み込まれる。本明細書に記載のすべての方法は、本明細書で別に示されているかまたは文脈によって明確に否定されない限り、任意の適切な順序で実行可能である。あらゆる例の使用または本明細書に記載されている例示の表現(たとえば「など」)は、別に要求されていない限り、単に実施形態をよりよく理解することができるようにすることが意図されているに過ぎず、本開示の範囲を限定しない。本明細書における表現は、いかなる非特許請求要素であっても、本開示の実施にとって不可欠なものとして示すものと解釈されるべきではない。
【0172】
「X、YまたはZのうちの少なくとも1つ」という語句などの離接表現は、具体的に別に明記されていない限り、文脈内で項目、用語などがX、YまたはZあるいはこれらの任意の組合せのいずれか(たとえば、X、Yおよび/またはZ)であり得ることを示すために一般的に使用されているものと解釈されることが意図されている。したがって、このような離接表現は、ある実施形態がXのうちの少なくとも1つ、Yのうちの少なくとも1つ、またはZのうちの少なくとも1つが、各々存在することを必要としていることを含意することが一般に意図されておらず、含意すべきではない。
【0173】
本明細書では、本開示を実施するための知られている最良の形態を含む、本開示の好ましい実施形態について説明している。以上の説明を読めば、当業者にはそれらの好ましい実施形態の変形が明らかになるであろう。当業者は、そのような変形を適宜に採用することができるはずであり、本開示は本明細書に具体的に記載されているものとは異なる方式で実施されてもよい。したがって、本開示は、本明細書に添付されている特許請求の範囲に記載されている主題のすべての修正および均等物を、適用法により認められているものとして含む。また、本明細書で別に示されていない限り、上述の要素の任意の組合せがその可能なすべての変形において本開示に包含される。
【0174】
本明細書で引用されている公開文献、特許出願および特許を含むすべての参照文献は、参照により各々の参照文献が個別に具体的に組み込まれ、その全体が本明細書に記載されているかのように、同程度まで参照により本明細書に組み込まれる。
【0175】
以上の本明細書では、本開示の態様をその特定の実施形態を参照しながら説明しているが、当業者は本開示がそれらには限定されないことがわかるであろう。上記の開示の様々な特徴および態様は、個別にまたは組み合わせて使用可能である。また、実施形態は、本明細書のより広い思想および範囲から逸脱することなく本明細書に記載されているもの以外の任意の数の環境および用途において使用可能である。したがって、本明細書および図面は制限的なものではなく例示であるものとみなされるべきである。
【国際調査報告】