(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-24
(54)【発明の名称】クラウドインフラストラクチャシステム内のコンピューティングノードの認可のためのエッジアテステーション
(51)【国際特許分類】
G06F 21/57 20130101AFI20241217BHJP
【FI】
G06F21/57 350
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024527433
(86)(22)【出願日】2022-10-05
(85)【翻訳文提出日】2024-07-02
(86)【国際出願番号】 US2022077605
(87)【国際公開番号】W WO2023086712
(87)【国際公開日】2023-05-19
(32)【優先日】2021-11-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ペイン,ブライアン・スペンサー
(57)【要約】
本実施形態は、クラウドインフラストラクチャ環境にアクセスするためのホストノードのエッジアテステーションに関する。認証データのセットは、ホストノードの認可のためにコンソールから取得され得る。認証データのセットは、第1の保証キー、およびホストノードの特徴を識別する認証ポリシを含み得る。ホストノードは、クラウドインフラストラクチャ環境に接続するためにネットワークアドレスの要求を送信し得る。ホストノードは、第2の保証キー、およびコンソールから受信される認証データのセットに対応するものとして検証され得る認証データを生成し得る。第2の保証キーおよび受信したホストノード認証データを検証することに応答して、ネットワークアドレスは、ネットワークアドレスを使用してクラウドインフラストラクチャ環境に接続するために使用され得るホストノードに提供され得る。
【特許請求の範囲】
【請求項1】
クラウドインフラストラクチャ環境にアクセスするためのホストノードのアテステーションのための方法であって、
前記ホストノードの認可のためにコンソールから認証データのセットを取得することを含み、前記認証データのセットは、第1の保証キー、および前記ホストノードの特徴を識別する認証ポリシを含み、前記認証ポリシは、第1のプラットフォーム構成レジスタ値を含み、
前記方法は、
前記ホストノードから、前記クラウドインフラストラクチャ環境に接続するためにネットワークアドレスの要求を取得することと、
前記ホストノードから第2の保証キーを受信することと、
前記第2の保証キーを検証するために、前記認証データのセット内で受信した前記第1の保証キーと前記第2の保証キーとを比較することと、
前記ホストノードからホストノード認証データのセットを受信することとをさらに含み、前記ホストノード認証データのセットは、前記ホストノードのブートプロシージャ中にハッシュ化レジスタ値を含む第2のプラットフォーム構成レジスタ値を含み、
前記方法は、
前記第1のプラットフォーム構成レジスタ値が前記第2のプラットフォーム構成レジスタ値に一致するかどうかを決定することによって、前記受信したホストノード認証データのセットを検証するために、前記認証データのセット内で受信した前記認証ポリシと前記受信したホストノード認証データのセットとを比較することと、
前記第2の保証キーおよび前記受信したホストノード認証データのセットを検証することに応答して、前記ホストノードに前記ネットワークアドレスを提供することとをさらに含み、前記ホストノードは、前記ネットワークアドレスを使用して前記クラウドインフラストラクチャ環境に接続するように構成される、方法。
【請求項2】
前記第1の保証キーおよび前記第2の保証キーは、公開アテステーションアイデンティティキーである、請求項1に記載の方法。
【請求項3】
前記クラウドインフラストラクチャノードは、データセンタに配置されるエッジノードである、請求項1または請求項2に記載の方法。
【請求項4】
前記第2の保証キーを検証するために、前記認証データのセット内で受信した前記第1の保証キーと前記第2の保証キーとを比較することは、前記第2の保証キー内の少なくとも1つの値が前記第1の保証キー内の対応する値に一致することを決定することをさらに含む、先行する請求項のいずれかに記載の方法。
【請求項5】
前記方法は、
前記ホストノードからプリブート実行環境クライアントの要求を受信することと、
前記ホストノードにプリブート実行環境クライアントを提供することとをさらに含み、前記ホストノードは、前記プリブート実行環境クライアントを使用してブートプロシージャを実行するように構成される、先行する請求項のいずれかに記載の方法。
【請求項6】
前記方法は、
前記ホストノードに前記ネットワークアドレスを提供することに応答して、ストレージモジュールにブートパーティションをマウントすることをさらに含み、前記ブートパーティションは、前記ホストノードおよび前記ネットワークアドレスを指定する、先行する請求項のいずれかに記載の方法。
【請求項7】
前記ネットワークアドレスの前記要求は、前記クラウドインフラストラクチャ環境を実装する1つまたは複数のコンピューティングデバイスを備えるデータセンタ環境に接続する前記ホストノードに応答して、前記ホストノードから取得される、先行する請求項のいずれかに記載の方法。
【請求項8】
クラウドインフラストラクチャノードであって、
プロセッサと、
命令を含む非一時的なコンピュータ可読媒体とを備え、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
ホストノードの認可のためにコンソールから認証データのセットを取得することを行わせ、前記認証データのセットは、第1の保証キー、および前記ホストノードの特徴を識別する認証ポリシを含み、
前記ホストノードから、前記クラウドインフラストラクチャ環境に接続するためにネットワークアドレスの要求を取得することと、
第2の保証キーの要求を前記ホストノードに伝送することと、
前記ホストノードから前記第2の保証キーを受信することと、
前記第2の保証キーを検証するために、前記認証データのセット内で受信した前記第1の保証キーと前記第2の保証キーとを比較することと、
ホストノード認証データの要求を前記ホストノードに伝送することと、
前記ホストノードから前記ホストノード認証データを受信することと、
前記受信したホストノード認証データを検証するために、前記受信したホストノード認証データと前記認証データのセット内で受信した前記認証ポリシとを比較することと、
前記第2の保証キーおよび前記受信したホストノード認証データを検証することに応答して、前記ホストノードに前記ネットワークアドレスを提供することと、をさらに行わせ、前記ホストノードは、前記ネットワークアドレスを使用して前記クラウドインフラストラクチャ環境に接続するように構成される、クラウドインフラストラクチャノード。
【請求項9】
前記第2の保証キーは、公開アテステーションアイデンティティキーである、請求項8に記載のクラウドインフラストラクチャノード。
【請求項10】
前記第2の保証キーを検証するために、前記認証データのセット内で受信した前記第1の保証キーと前記第2の保証キーとを比較することは、前記第2の保証キー内の少なくとも1つの値が前記第1の保証キー内の対応する値に一致することを決定することをさらに含む、請求項8または請求項9に記載のクラウドインフラストラクチャノード。
【請求項11】
前記非一時的なコンピュータ可読媒体は、前記プロセッサに、
前記ホストノードからプリブート実行環境クライアントの要求を受信することと、
前記ホストノードにプリブート実行環境クライアントを提供することをさらに行わせる命令を含み、前記ホストノードは、前記プリブート実行環境クライアントを使用してブートプロシージャを実行するように構成される、請求項8~請求項10のいずれかに記載のクラウドインフラストラクチャノード。
【請求項12】
前記受信した認証データを検証するために、前記認証データのセット内で受信した前記認証ポリシと前記受信したホストノード認証データとを比較することは、
前記認証ポリシ内に含まれる第1のプラットフォーム構成レジスタ値および前記受信したホストノード認証データ内に提供される第2のプラットフォーム構成レジスタ値を識別することをさらに含み、前記第2のプラットフォーム構成レジスタ値は、前記ブートプロシージャ後の前記ホストノードの状態を示す前記ホストノードのブートプロシージャ中のハッシュ化レジスタ値を含み、
前記第1のプラットフォーム構成レジスタ値が前記第2のプラットフォーム構成レジスタ値に一致するかどうかを決定することをさらに含み、前記受信したホストノード認証データは、前記第1のプラットフォーム構成レジスタ値が前記第2のプラットフォーム構成レジスタ値に一致することを決定することに応答して検証される、請求項8~請求項11のいずれかに記載のクラウドインフラストラクチャノード。
【請求項13】
前記非一時的なコンピュータ可読媒体は、前記プロセッサに、
前記ホストノードに前記ネットワークアドレスを提供することに応答して、ストレージモジュールにブートパーティションをマウントすることをさらに行わせる命令を含み、前記ブートパーティションは、前記ホストノードおよび前記ネットワークアドレスを指定する、請求項8~請求項12のいずれかに記載のクラウドインフラストラクチャノード。
【請求項14】
前記ネットワークアドレスの前記要求は、前記クラウドインフラストラクチャ環境を実装する1つまたは複数のコンピューティングデバイスを備えるデータセンタ環境に接続する前記ホストノードに応答して、前記ホストノードから取得される、請求項8~請求項13のいずれかに記載のクラウドインフラストラクチャノード。
【請求項15】
プロセッサによって実行されると、前記プロセッサにプロセスを実行させる命令のシーケンスが格納されている非一時的なコンピュータ可読媒体であって、前記プロセスは、
前記ホストノードの認可のためにコンソールから認証データのセットを取得することを含み、前記認証データのセットは、第1の保証キー、および前記ホストノードの特徴を識別する認証ポリシを含み、
前記ホストノードから、クラウドインフラストラクチャ環境に接続するためにネットワークアドレスの要求を取得することと、
前記ホストノードからプリブート実行環境クライアントの要求を受信することと、
前記ホストノードにプリブート実行環境クライアントを提供することをさらに含み、前記ホストノードは、前記プリブート実行環境クライアントを使用してブートプロシージャを実行するように構成され、
前記ホストノードから第2の保証キーを受信することと、
前記第2の保証キーを検証するために、前記認証データのセット内で受信した前記第1の保証キーと前記第2の保証キーとを比較することと、
前記プリブート実行環境クライアントを使用して前記ブートプロシージャ中に導出される前記ホストノードからのホストノード認証データのセットを受信することと、
前記受信したホストノード認証データのセットを検証するために、前記認証データのセット内で受信した前記認証ポリシと前記受信したホストノード認証データのセットとを比較することと、
前記第2の保証キーおよび前記受信したホストノード認証データのセットを検証することに応答して、前記ホストノードに前記ネットワークアドレスを提供することとをさらに含み、前記ホストノードは、前記ネットワークアドレスを使用して前記クラウドインフラストラクチャ環境に接続するように構成される、非一時的なコンピュータ可読媒体。
【請求項16】
前記第2の保証キーは、公開アテステーションアイデンティティキーである、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項17】
前記第2の保証キーを検証するために、前記認証データのセット内で受信した前記第1の保証キーと前記第2の保証キーとを比較することは、前記第2の保証キー内の少なくとも1つの値が前記第1の保証キー内の対応する値に一致することを決定することをさらに含む、請求項15または請求項16に記載の非一時的なコンピュータ可読媒体。
【請求項18】
前記受信した認証データを検証するために、前記認証データのセット内で受信した前記認証ポリシと前記受信したホストノード認証データのセットとを比較することは、
前記認証ポリシ内に含まれる第1のプラットフォーム構成レジスタ値および前記受信したホストノード認証データのセット内に提供される第2のプラットフォーム構成レジスタ値を識別することをさらに含み、前記第2のプラットフォーム構成レジスタ値は、前記ブートプロシージャ後の前記ホストノードの状態を示す前記ホストノードの前記ブートプロシージャ中のハッシュ化レジスタ値を含み、
前記第1のプラットフォーム構成レジスタ値が前記第2のプラットフォーム構成レジスタ値に一致するかどうかを決定することをさらに含み、前記受信したホストノード認証データのセットは、前記第1のプラットフォーム構成レジスタ値が前記第2のプラットフォーム構成レジスタ値に一致することを決定することに応答して検証される、請求項15~請求項17のいずれかに記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記プロセスは、
前記ホストノードに前記ネットワークアドレスを提供することに応答して、ストレージモジュールにブートパーティションをマウントすることをさらに含み、前記ブートパーティションは、前記ホストノードおよび前記ネットワークアドレスを指定する、請求項15~請求項18のいずれかに記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記ネットワークアドレスの前記要求は、前記クラウドインフラストラクチャ環境を実装する1つまたは複数のコンピューティングデバイスを備えるデータセンタ環境に接続する前記ホストノードに応答して、前記ホストノードから取得される、請求項15~請求項19のいずれかに記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、「Edge Attestation for Authorization of a Computing Node in a Cloud Infrastructure System」という表題の2021年11月10日に出願された米国特許出願第17/523,789号に対する優先権を主張するものであり、その開示は、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。
【0002】
分野
開示した技術は、クラウドコンピューティング認証に関する。より詳細には、開示した技術は、例えば、新規ホストノードへのネットワークアクセスを付与する前に、クラウドコンピューティング環境にとって新規であるホストノードの認証のためにクラウドコンピューティング環境のエッジコンポーネントを利用することに関する。
【背景技術】
【0003】
背景
データセンタ環境において、新規コンポーネント(例えば、サーバ)は、新規ホストデバイスとして追加され得る。新規コンポーネントは、クラウド環境内のコンピューティングリソースを増加させるため、またはクラウド環境内のコンポーネント上で実行するアプリケーション/サービスに追加の機能性を提供するために、クラウドコンピューティング環境に追加され得る。新規コンポーネントは、クラウドコンピューティング環境を実装する複数のデバイスを接続するデータセンタ環境内の他のデバイスに物理的に接続され得る。例えば、コロケーションセンタは、クラウドコンピューティング環境を実装するコンポーネントを収容するデータセンタ環境を提供し得る。
【0004】
しかしながら、多くの場合において、データセンタ環境(例えば、コロケーションセンタ)は、他のエンティティのためのコンピューティングデバイス/データセンタを収容し得る。そのような場合、別のエンティティは、クラウドコンピューティング環境を実装するコンポーネントを収容するデータセンタ環境の近くのエリアへのアクセスを有し得る。例えば、別のエンティティは、悪意を持って認可なしにデータセンタ環境にデバイスを接続し得る。いかなる検証プロセスもなしに、接続されたデバイスは、クラウドコンピューティング環境内でプライベートに管理されるデータおよび/またはサービスへのアクセスを入手し得る。
【発明の概要】
【課題を解決するための手段】
【0005】
概要
本実施形態は、クラウドインフラストラクチャ環境にアクセスするためのホストノードのエッジアテステーションに関する。第1の例示的な実施形態は、クラウドインフラストラクチャ環境にアクセスするためのホストノードのアテステーションのための方法を提供する。本方法は、ホストノードの認可のためにコンソールから認証データのセットを取得することを含み得る。認証データのセットは、第1の保証キー、およびホストノードの特徴を識別する認証ポリシを含み得る。認証ポリシは、第1のプラットフォーム構成レジスタ(PCR)値を含み得る。
【0006】
本方法はまた、ホストノードから、クラウドインフラストラクチャ環境に接続するためにネットワークアドレスの要求を取得することを含み得る。本方法はまた、ホストノードから第2の保証キーを受信することを含み得る。本方法はまた、第2の保証キーを検証するために、認証データのセット内で受信した第1の保証キーと第2の保証キーとを比較することを含み得る。
【0007】
本方法はまた、ホストノードからホストノード認証データのセットを受信することを含み得る。ホストノード認証データのセットは、ホストノードのブートプロシージャ中のハッシュ化レジスタ値を含む第2のPCR値を含み得る。本方法はまた、第1のPCR値が第2のPCR値に一致するかどうかを決定することによって、受信したホストノード認証データを検証するために、認証データのセット内で受信した認証ポリシと受信したホストノード認証データとを比較することを含み得る。本方法はまた、第2の保証キーおよび受信したホストノード認証データを検証することに応答して、ホストノードにネットワークアドレスを提供することを含み得る。ホストノードは、ネットワークアドレスを使用してクラウドインフラストラクチャ環境に接続するように構成され得る。
【0008】
第2の例示的な実施形態は、クラウドインフラストラクチャノードに関する。クラウドインフラストラクチャノードは、プロセッサおよび非一時的なコンピュータ可読媒体を含み得る。非一時的なコンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、ホストノードの認可のためにコンソールから認証データのセットを取得することを行わせる命令を含み得る。認証データのセットは、第1の保証キー、およびホストノードの特徴を識別する認証ポリシを含み得る。命令は、プロセッサに、ホストノードから、クラウドインフラストラクチャ環境に接続するためにネットワークアドレスの要求を取得することをさらに行わせ得る。
【0009】
命令は、プロセッサに、第2の保証キーの要求をホストノードに伝送することをさらに行わせ得る。命令は、プロセッサに、ホストノードから第2の保証キーを受信することをさらに行わせ得る。命令は、プロセッサに、第2の保証キーを検証するために、認証データのセット内で受信した第1の保証キーと第2の保証キーとを比較することをさらに行わせ得る。命令は、プロセッサに、ホストノード認証データの要求をホストノードに伝送することをさらに行わせ得る。命令は、プロセッサに、ホストノードからホストノード認証データを受信することをさらに行わせ得る。
【0010】
命令は、プロセッサに、受信したホストノード認証データを検証するために、認証データのセット内で受信した認証ポリシと受信したホストノード認証データとを比較することをさらに行わせ得る。命令は、プロセッサに、第2の保証キーおよび受信したホストノード認証データを検証することに応答して、ホストノードにネットワークアドレスを提供することをさらに行わせ得る。ホストノードは、ネットワークアドレスを使用してクラウドインフラストラクチャ環境に接続するように構成され得る。
【0011】
第3の例示的な実施形態は、非一時的なコンピュータ可読媒体に関する。非一時的なコンピュータ可読媒体は、プロセッサによって実行されると、プロセッサにプロセスを実行させる、格納された命令のシーケンスを含み得る。本プロセスは、ホストノードの認可のためにコンソールから認証データのセットを取得することを含み得る。認証データのセットは、第1の保証キー、およびホストノードの特徴を識別する認証ポリシを含み得る。本プロセスはまた、ホストノードから、クラウドインフラストラクチャ環境に接続するためにネットワークアドレスの要求を取得することを含み得る。
【0012】
本プロセスはまた、ホストノードからプリブート実行環境クライアントの要求を受信することを含み得る。本プロセスはまた、ホストノードにプリブート実行環境クライアントを提供することをさらに含み得、ホストノードは、プリブート実行環境クライアントを使用してブートプロシージャを実行するように構成される。
【0013】
本プロセスはまた、ホストノードから第2の保証キーを受信することを含み得る。本プロセスはまた、第2の保証キーを検証するために、認証データのセット内で受信した第1の保証キーと第2の保証キーとを比較することを含み得る。本プロセスはまた、プリブート実行環境クライアントを使用してブートプロシージャ中に導出されるホストノードからのホストノード認証データのセットを受信することを含み得る。
【0014】
本プロセスはまた、受信したホストノード認証データを検証するために、認証データのセット内で受信した認証ポリシと受信したホストノード認証データとを比較することをさらに含み得る。本プロセスはまた、第2の保証キーおよび受信したホストノード認証データを検証することに応答して、ホストノードにネットワークアドレスを提供することを含み得る。ホストノードは、ネットワークアドレスを使用してクラウドインフラストラクチャ環境に接続するように構成され得る。
【図面の簡単な説明】
【0015】
【
図1】少なくとも1つの実施形態による、例となるネットワーク環境のブロック図である。
【
図2】少なくとも1つの実施形態による、例となるクラウドインフラストラクチャシステムのブロック図である。
【
図3】少なくとも1つの実施形態による、例となるエッジアテステーションプロセスを例証するシグナリングプロセスである。
【
図4】少なくとも1つの実施形態による、エッジアテステーションプロセスを実施するためのSmartNICによって実施される例となる方法を例証するブロック図である。
【
図5】少なくとも1つの実施形態による、エッジアテステーションプロセスを使用して検証されるべきホストノードによって実施される例となる方法を例証するブロック図である。
【
図6】少なくとも1つの実施形態による、サービスシステムとしてクラウドインフラストラクチャを実装するための1つのパターンを例証するブロック図である。
【
図7】少なくとも1つの実施形態による、サービスシステムとしてクラウドインフラストラクチャを実装するための別のパターンを例証するブロック図である。
【
図8】少なくとも1つの実施形態による、サービスシステムとしてクラウドインフラストラクチャを実装するための別のパターンを例証するブロック図である。
【
図9】少なくとも1つの実施形態による、サービスシステムとしてクラウドインフラストラクチャを実装するための別のパターンを例証するブロック図である。
【
図10】少なくとも1つの実施形態による、例となるコンピュータシステムを例証するブロック図である。
【発明を実施するための形態】
【0016】
詳細な説明
多くの場合において、複数のコンピューティングデバイス(例えば、サーバ)および複数のコンピューティングデバイス上で実行するアプリケーション/サービスは、クラウドコンピューティングインフラストラクチャを実装することができる。さらに、新規ホストノードが、クラウドインフラストラクチャのためのコンピューティングリソースまたは機能性を増加させるために複数のコンピューティングデバイスに追加され得る。そのような場合、新規ホストノードは、新規コンピューティングデバイスのアイデンティティおよびセキュリティ特徴を検証することによって管理され得る。そのような検証は、遠隔アテステーションによって実施され得、遠隔アテステーションは、各コンピューティングデバイスのアイデンティティおよび構成を検証するために暗号によって検証可能な情報を提供するコンピューティングデバイスを含み得る。遠隔アテステーションプロシージャは、例えば、ネットワーク内のデバイスのセキュリティを管理し、コンピューティングデバイスの状態を識別するために使用され得る。
【0017】
クラウドインフラストラクチャ内で遠隔アテステーションを集中的に実装するために集中サービスを実装するのではなく、検証サービスは、ホストノード近くのクラウドインフラストラクチャ環境内のエッジノードによって実施され得る。アテステーション検証サービスは、クラウドインフラストラクチャ内のbump-in-the-wireノード(例えば、スマートネットワークインターフェースコントローラ(SmartNIC))の一部として含まれ得る。SmartNICにおいてアテステーション検証サービスを実装することは、クラウドインフラストラクチャの中央コンポーネントから処理タスクをオフロードし得、以て、クラウドインフラストラクチャのデータ処理効率を増加させる。さらに、アテステーション検証サービス内に不具合があった場合、アテステーション検証サービスがクラウドインフラストラクチャのエッジ上のSmartNICで実行されて、少数のデバイス/アプリケーションにだけ影響を及ぼし得る。
【0018】
本実施形態は、ネットワーク環境内のホストノードの認証および認可のためのエッジアテステーションサービスに関連する。新規ホストノードがネットワークへのアクセスを許可される前に、認証プロセスが実施され得る。例えば、コンソールが、クラウドインフラストラクチャ内のエッジコンポーネント(例えば、smartNIC)とインタラクトして、新規ホストノードの検証のために認証データのセット(例えば、公開保証キー、テナンシ認証データ)を取得し得る。
【0019】
いくつかの場合において、SmartNICは、OSがホストノードに先にインストールされていることを必要とせずに、ホストノードがブートプロシージャを実行するために、ホストノードにプリブート実行環境(例えば、iPXE)を提供し得る。例えば、iPXEクライアントが、ホストノードに提供されて、ホストノード上で実行するiPXEクライアントとSmartNIC上で実行するiPXE環境との通信を可能にし得る。
【0020】
SmartNICは、保証キーの要求をホストノードに伝送し得、それに応答して、ホストノードは、(例えば、生成された公開/プライベートキーペアに基づいて)保証キーを生成し得る。SmartNICは、保証キーを取得し、それを認証データのセット内で受信した公開保証キーと比較し、ホストノードから取得した保証キーが認証データのセット内で受信した公開保証キーと対応する(例えば、一致する)ことを検証し得る。受信した保証キーを検証することは、ホストノードのアイデンティティを検証し得る。
【0021】
SmartNICは、認証データの要求をホストノードに伝送し得る。認証データは、ファームウェア構成、デバイス構成、プラットフォーム構成レジスタ(PCR)値など、ホストノードを認証するデータを含み得る。ホストノードは、認証データを生成し得、また生成した認証データをSmartNICに提供し得る。受信した認証データは、受信した認証データを検証するために(例えば、ホストノードによって生成されるPCR値を認証データのセット内で提供される対応するPCR値と一致させることによって)、認証データのセット内で受信した認証ポリシと比較され得る。
【0022】
SmartNICは、受信した保証キーおよびホストノードから受信される認証データを検証することに応答してネットワークアドレスをホストノードに提供し得る。ネットワークアドレス(例えば、インターネットプロトコル(IP)アドレス)をホストノードに提供することにより、ホストノードがクラウドインフラストラクチャ内のコンポーネント/アプリケーション/サービスにアクセスすることを可能にし得る。これは、クラウドインフラストラクチャへのアクセスを提供することにおける増大したセキュリティを可能にし得る。
【0023】
A.システム概要
図1は、例となるネットワーク環境100のブロック図である。ネットワーク環境100は、1つまたは複数のネットワーク(例えば、インターネット)を使用して環境内のデバイス同士のデータ通信を可能にし得る。
図1に示されるように、ネットワーク環境100は、コンソール102、クラウドインフラストラクチャ(CI)システム104(および対応するコンピューティングデバイス106a-c)、およびホストノード108のいずれかを含み得る。
【0024】
コンソール102は、CIシステム104と通信することが可能なコンピューティングデバイス(例えば、ラップトップコンピュータ)を含み得る。例えば、コンソール102は、ホストノード108のためのインスタンス(例えば、認証データのセットを含む)を作成するための命令をCIシステム104に提供し得る。別の例として、コンソール102は、CIシステム104からプリブート実行環境クライアント(例えば、iPXE)をフェッチするように、またはホストノード108とSmartNIC110との間のセッションを開始するように、ホストノード108に命令し得る。
【0025】
本明細書に説明されるようなCIシステム104は、1つまたは複数のクラウドアプリケーションまたはサービスを実装する1つまたは複数の相互接続されたコンピューティングデバイスを含み得る。例えば、CIシステム104は、データベースデータを格納し、そこへのアクセスを(例えば、データベースのクエリを介して)提供し得る。CIシステム104に含まれるコンピューティングデバイス(例えば、106a-c)は、1つまたは複数のデータセンタ環境(例えば、コロケーションセンタ)内に位置し得る。
【0026】
図1に示されるように、コンピューティングデバイス106cは、SmartNIC110を実装し得る。SmartNIC110は、CIシステム104内のエッジコンポーネント(例えば、コンピューティングデバイス106c)上に位置し得る。例えば、SmartNIC110は、CIシステム104へのエッジアクセスポイントとして作用するデータセンタ内に配置されるサーバに常駐し得る。SmartNIC110は、本明細書に説明されるような遠隔アテステーションサービスを実施し得る。
【0027】
ホストノード108は、コンピューティングデバイス(例えば、サーバ)、またはCIシステム104に導入されている一連のコンピューティングデバイスを含み得る。例えば、ホストノードは、データセンタ環境(例えば、コロケーションセンタ)においてCIシステム104に接続され、CIシステム104にアクセスすることを要求しているサーバを含み得る。ホストノード108は、様々な処理タスクを実施するように、または1つもしくは複数のアプリケーション/サービスを実装するように構成され得る。本明細書に説明されるように、ホストノード108は、CIシステム104にアクセスするためのネットワークアドレスを要求し、SmartNIC110がコンソール102およびホストノード108によってそれぞれ提供される保証キーおよび認証データを検証することに応答して、ネットワークアドレスを受信し得る。
【0028】
図2は、例となるクラウドインフラストラクチャシステム104のブロック図である。上に説明されるように、CIシステム104は、様々なアプリケーション/サービスを実装する1つまたは複数の相互接続されたコンピューティングデバイスを含み得る。CIシステム104は、CIシステム104のコア機能を実装する1つまたは複数の中央コンピューティングデバイス、およびSmartNIC110を維持するエッジデバイスを含み得る。SmartNIC110は、本明細書に説明されるように認証データを取得して認証データを検証するために、ホストノード(例えば、108)とインタラクトし得る。
【0029】
CIシステム104は、プリブート実行環境204を含み得る。プリブート実行環境204は、クライアントをホストノードに提供するように構成される環境(例えば、iPXE)を含み得、ホストノード上のインストールされたオペレーティングシステム(OS)なしにホストノードがプリブート実行環境を実行することを可能にする。例えば、ホストノードは、SmartNICからiPXEクライアントを取得し、CIシステム104内で実行するプリブート実行環境204とインタラクトすることによってiPXEクライアントを実行し得る。
【0030】
CIシステム104は、ストレージモジュール206を含み得る。ストレージモジュール206は、CIシステム104内のデバイスにわたって様々なデータタイプ(例えば、検証されたホストノードのためのマウントされたブートパーティション)を格納し得る。
【0031】
CIシステム104は、コンソール認証データ208を含み得る。コンソール認証データ208は、新規ホストノードのエッジアテステーションのためにコンソールから認証データのセット内で取得されるデータを含み得る。コンソール認証データ208は、第1の保証キー(EK)210aおよびテナンシ認可ポリシ212を含み得る。いくつかの場合において、コンソール認証データ208は、CIシステム104に導入される複数のホストノードのための取得した認証データを格納し得る。
【0032】
第1のEK210aは、ホストノードを識別するコンソールによって提供されるキー(例えば、トラステッドプラットフォームモジュール(TPM)RSAキー)を含み得る。テナンシ認可ポリシ212は、ファームウェアバージョン、構成設定、PCR値など、ホストノードの特徴を含み得る。
【0033】
CIシステム104はまた、ホスト認証データ214を含み得る。ホスト認証データ214は、第2のEK210bおよび認証データ(authentication data)(または「認証データ(auth data)」)216など、ホストノードから取得される情報を含み得る。ホスト認証データ214内のデータは、本明細書に説明されるようにホストノードの識別および検証のためにコンソール認証データ208と比較され得る。
【0034】
CIシステム104は、認証データ取得モジュール218を含み得る。認証データ取得モジュール218は、本明細書に説明されるように、認証データ(例えば、コンソール認証データ208)を取得し、ホストノードからホスト認証データ(例えば、214)を受信し得る。いくつかの場合において、認証データ取得モジュール218は、ホストノードにプリブート実行環境クライアントを提供すること、および/またはホストノードからネットワークアドレスの要求を受信することに応答して、ホスト認証データ(例えば、214)を要求し得る。
【0035】
CIシステム104は、キー検証モジュール220を含み得る。キー検証モジュール220は、ホストノードからキーを取得し、そのキーを、コンソール102によって提供されるキーを使用して検証し得る。キーを検証することは、受信したキーがコンソールによって提供されるキーに一致する/対応する(例えば、いくつかの類似性を含む)かどうかを決定することを含み得る。
【0036】
CIシステム104は、認証データ検証モジュール222を含み得る。認証データ検証モジュール222は、認証データを取得/識別し、受信した認証データをコンソールから受信される認証ポリシと比較し得る。例えば、認証データは、ファームウェアバージョン、ホストノード構成、PCR値(例えば、ブートプロシージャ中に識別/作動されるコンポーネントに応答して追加される値のハッシュ化シリーズ)などを指定し得る。この例では、認証データは、ホストノードに特有の値、ファームウェアバージョン、データタイプなどに一致するためにテナンシ認証ポリシと比較され得る。キーおよび認証データが検証されることに応答して、ホストノードは、検証され、(例えば、ホストノードにネットワークアドレスを提供することによって)クラウドインフラストラクチャへのアクセスを許可され得る。
【0037】
B.エッジアテステーションプロシージャを実施するための例となる方法
図3は、例となるエッジアテステーションプロセスを例証するシグナリングプロセス300である。
図3に示されるように、コンソール302およびホストノード308は、SmartNIC306(例えば、CIシステム内のエッジコンピューティングデバイス上で実行される)とインタラクトし得る。
【0038】
310において、コンソール302は、新規ホストインスタンスを作成する要求をSmartNIC306に送信し得る。新規ホストインスタンスを作成する要求は、新規ホストノードを識別し得、またホストノードの検証のために第1の保証キーおよびテナンシ認証ポリシを含み得る。
【0039】
312において、コンソール302は、ホストノードインスタンスを開始する要求をホストノード308に送信し得る。ホストノード308によって受信される要求は、SmartNIC306に接続してブートプロシージャを開始する命令を含み得る。
【0040】
314において、ホストノード308は、プリブート実行環境(例えば、iPXEクライアント)の要求をSmartNIC306に送信し得る。この要求は、SmartNIC306からのiPXEクライアントの要求を含み得る。本明細書に説明されるように、iPXEクライアントは、オペレーティングシステムがホストノード308にロードされることなしに、ブートプロシージャがホストノード308によって実行されることを可能にし得る。
【0041】
316において、SmartNIC306は、プリブート実行環境(例えば、iPXEクライアント)をホストノードに提供し得る。318において、ホストノード308は、プリブート実行環境を実行し得る(例えば、iPXEクライアントが、エッジデバイス上で実行するSmartNIC306と関連付けられたiPXEインスタンスとインタラクトすることによって。プリブート実行環境を実行することは、ブートプロシージャを実行すること、サービス/アプリケーションおよびコンポーネントを開始すること、などを含むブートプロシージャを実行し得る。
【0042】
いくつかの場合において、ブートプロシージャ中、PCR値が計算され得る。PCR値は、ホストノード308によって各々開始したコンポーネント/サービスを示す値のハッシュ化シリーズを含み得る。PCR値は、ブートプロシージャ後のホストノード308の状態を示すものであり得る。
【0043】
320において、ホストノード308は、SmartNIC306からのネットワークアドレスを要求し得る。ネットワークアドレス(例えば、IPアドレス)は、CIシステムへの接続を可能にし得る。SmartNIC306は、本明細書に説明されるようにホストノードを検証することに応答してネットワークアドレスを付与するだけであってもよい。
【0044】
322において、SmartNIC306は、ホストノード308からの公開保証キー(EK)を要求し得る。324において、ホストノード308は、公開/プライベートキーペアを生成し得る。326において、ホストノード308は、キーペアから公開保証キーを生成し得る。328において、ホストノード308は、公開保証キーをSmartNIC306に送信し得る。公開保証キーは、コンソールによって提供されるインスタンス(例えば、310において)を作成するために要求中に提供されるキーと比較され得る。
【0045】
330において、SmartNIC306は、ホストノード308からの認証データのセットを要求し得る。332において、ホストノード308は、認証データのセットの要求において指定されるように、要求された認証データのセット(例えば、ホストノード、ファームウェアバージョン、構成設定、PCR値に関する詳細)を生成し得る。334において、ホストノード308は、認証データの検証のために認証データのセットをSmartNIC306に送信し得る。
【0046】
336において、SmartNICは、受信した公開保証キーおよび認証データのセットを検証し得る。これは、ホストノード308から受信されるデータを、インスタンスを作成する要求内で(例えば、310において)コンソール302から取得されるデータと比較することを含み得る。
【0047】
受信したデータを検証することに応答して、338において、SmartNIC306は、ネットワークアドレスをホストノード308に送信し得る。ネットワークアドレスは、ホストノード308とCIシステムとの間の接続およびデータ通信を可能にし得る。340において、SmartNIC306は、ブロックストレージ304においてホストノードに特有のブートパーティションをマウントし得る。
【0048】
図4は、エッジアテステーションプロセスを実施するためのSmartNICによって実施される例となる方法を例証するブロック
図400である。402において、SmartNICは、ホストノードの認可のためにコンソールから認証データのセットを取得し得る。認証データのセットは、第1の保証キー、およびホストノードの特徴を識別する認証ポリシを含み得る。
【0049】
404において、SmartNICは、プリブート実行環境(例えば、iPXEクライアント)を提供する。SmartNICは、ホストノードからプリブート実行環境クライアントの要求を受信し得る。SmartNICは、プリブート実行環境クライアントをホストノードに提供し得る。ホストノードは、プリブート実行環境クライアントを使用してブートプロシージャを実行するように構成され得る。
【0050】
406において、SmartNICは、ホストノードから、クラウドインフラストラクチャ環境に接続するためにネットワークアドレスの要求を取得し得る。いくつかの場合において、ネットワークアドレスの要求は、クラウドインフラストラクチャ環境を実装する1つまたは複数のコンピューティングデバイスを備えるデータセンタ環境に接続するホストノードに応答して、ホストノードから取得される。
【0051】
408において、SmartNICは、第2の保証キーの要求をホストノードに伝送し得る。410において、SmartNICは、ホストノードから第2の保証キーを受信し得る。第2の保証キーは、公開アテステーションアイデンティティキー(AIK)を含み得る。
【0052】
412において、SmartNICは、第2の保証キーを検証するために、認証データのセット内で受信した第1の保証キーと第2の保証キーを比較し得る。これは、第2の保証キー内の少なくとも1つの値が第1の保証キー内の対応する値に一致することを決定することを含み得る。
【0053】
414において、SmartNICは、ホストノード認証データの要求をホストノードに伝送し得る。416において、SmartNICは、ホストノードからホストノード認証データを受信し得る。
【0054】
418において、SmartNICは、受信したホストノード認証データを検証するために、認証データのセット内で受信した認証ポリシと受信したホストノード認証データを比較し得る。これは、認証ポリシに含まれる第1のプラットフォーム構成レジスタ(PCR)値、および受信したホストノード認証データ(例えば、ブートプロシージャ中に生成される)内に提供される第2のPCR値を識別することを含み得る。第2のPCR値は、ブートプロシージャ後のホストノードの状態を示すホストノードのブートプロシージャ中のハッシュ化レジスタ値を含み得る。これはまた、第1のPCR値が第2のPCR値に一致するかどうかを決定することを含み得る。受信したホストノード認証データは、第1のPCR値が第2のPCR値に一致することを決定することに応答して検証され得る。
【0055】
420において、SmartNICは、ホストノードにネットワークアドレスを提供し得る。ホストノードは、ネットワークアドレスを使用してクラウドインフラストラクチャ環境に接続するように構成され得る。これは、第2の保証キーおよび受信したホストノード認証データを検証することに応答して実施され得る。
【0056】
図5は、エッジアテステーションプロセスを使用して検証されるべきホストノードによって実施される例となる方法を例証するブロック
図500である。502において、ホストノードは、コンソールからインスタンスを開始する要求を受信し得る。インスタンスを開始する要求は、SmartNICと通信せよという命令およびブートプロシージャを実施せよという命令を含み得る。
【0057】
504において、ホストノードは、SmartNICからのプリブート実行環境を要求し得る。506において、ホストノードは、SmartNICからプリブート実行環境を受信し得る。508において、ホストノードは、プリブート実行環境を実行し得る。プリブート実行環境は、SmartNICにおいてiPXEインスタンスとインタラクトすることによってホストノード上のオペレーティングシステムの使用なしにブートプロシージャを実施することが可能なiPXEクライアントを含み得る。
【0058】
510において、ホストノードは、SmartNICからのネットワークアドレス(例えば、IPアドレス)の要求を伝送し得る。512において、ホストノードは、SmartNICから公開保証キー(EK pub)の要求を受信し得る。514において、ホストノードは、EK pubを生成し得る。EK pubは、ホストノードによって生成される公開/プライベートキーペアから生成され得る。516において、ホストノードは、生成したEK pubをSmartNICに伝送し得る。SmartNICは、受信したEK pubをコンソールによって受信されるキーと比較することによって、受信したEK pub(例えば、または第2の保証キー)を検証し得る。
【0059】
518において、ホストノードは、認証データ(例えば、ホストノード認証データ)の要求を受信し得る。520において、ホストノードは、認証データ(例えば、ブートプロシージャに基づいた第2のPCR値)を生成し得る。522において、ホストノードは、生成した認証データをSmartNICに伝送し得る。SmartNICは、受信した認証データを認証ポリシと比較することによって、認証データを検証し得る。
【0060】
524において、ホストノードは、SmartNICからネットワークアドレスを受信し得る。ネットワークアドレスは、ネットワークアドレスを使用したクラウドインフラストラクチャへの接続/データ伝送を可能にし得る。ネットワークアドレスは、SmartNICが認証データを検証することに応答して受信され得る。
【0061】
C.IaaS概要
上に記されるように、Infrastructure as a Service(IaaS)は、クラウドコンピューティングの1つの特定のタイプである。IaaSは、公開ネットワーク(例えば、インターネット)を通じて仮想化コンピューティングリソースを提供するように構成され得る。IaaSモデルにおいて、クラウドコンピューティングプロバイダは、インフラストラクチャコンポーネント(例えば、サーバ、ストレージデバイス、ネットワークノード(例えば、ハードウェア)、デプロイメントソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザ層)、または同様のもの)をホストし得る。場合によっては、IaaSプロバイダはまた、それらのインフラストラクチャコンポーネントに付随する様々なサービス(例えば、料金請求、モニタリング、ロギング、負荷バランシング、およびクラスタリングなど)を供給し得る。故に、これらのサービスがポリシ駆動であり得るため、IaaSユーザは、アプリケーション可用性および性能を維持するために負荷バランシングを駆動するためにポリシを実装することができてもよい。
【0062】
いくつかの場合において、IaaS顧客は、インターネットなどの広域ネットワーク(WAN)を通じてリソースおよびサービスにアクセスし得、またクラウドプロバイダのサービスを使用して、アプリケーションスタックの残りの要素をインストールし得る。例えば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)を作成し、オペレーティングシステム(OS)を各VMにインストールし、データベースなどのミドルウェアをデプロイし、作業負荷およびバックアップのためにストレージバケットを作成し、さらには企業ソフトウェアをそのVMにインストールし得る。顧客は、次いで、プロバイダのサービスを使用して、ネットワークトラフィックのバランスを取ること、アプリケーション問題をトラブルシューティングすること、性能をモニタリングすること、障害復旧を管理することなどを含む、様々な機能を実施し得る。
【0063】
大半の場合、クラウドコンピューティングモデルは、クラウドプロバイダの参加を必要とする。しかしながら、クラウドプロバイダは、IaaSを提供(例えば、用意、賃借、販売)することに特化したサードパーティサービスである必要がない場合がある。エンティティはまた、プライベートクラウドをデプロイすることを選んでもよく、インフラストラクチャサービスの独自のプロバイダになる。
【0064】
いくつかの例において、IaaSデプロイメントは、新規アプリケーション、またはアプリケーションの新規バージョンを、準備されたアプリケーションサーバまたは同様のものに置くプロセスである。それはまた、サーバを準備する(例えば、ライブラリ、デーモンなどをインストールする)プロセスを含み得る。これは、多くの場合、ハイパーバイザ層(例えば、サーバ、ストレージ、ネットワークハードウェア、および仮想化)の下で、クラウドプロバイダによって管理される。故に、顧客は、ハンドリング(OS)、ミドルウェア、および/またはアプリケーションデプロイメント(例えば、セルフサービス仮想マシン(例えば、オンデマンドでスピンアップされ得る)または同様のものに対して責任を負い得る。
【0065】
いくつかの例において、IaaSプロビジョニングは、使用のためにコンピュータまたは仮想ホストを取得すること、さらには、必要とされるライブラリまたはサービスをそれらにインストールすることを指し得る。大半の場合、デプロイメントは、プロビジョニングを含まず、プロビジョニングは、最初に実施される必要があり得る。
【0066】
いくつかの場合において、IaaSプロビジョニングには2つの異なる課題が存在する。第1に、何かを実行する前にインフラストラクチャの初期セットをプロビジョニングするという最初の課題が存在する。第2に、すべてがプロビジョニングされた後に既存のインフラストラクチャを進化させる(例えば、新規サービスを追加する、サービスを変更する、サービスを削除するなど)という課題が存在する。いくつかの場合において、これら2つの課題は、インフラストラクチャの構成が宣言的に規定されることを可能にすることによって解決され得る。言い換えると、インフラストラクチャ(例えば、どのコンポーネントが必要とされるか、それらがどのようにインタラクトするか)は、1つまたは複数の構成ファイルによって規定され得る。故に、インフラストラクチャの全体的なトポロジ(例えば、どのリソースがどれに依存するか、およびそれらが各々どのように協働するか)は、宣言的に説明され得る。いくつかの場合において、一旦トポロジが規定されると、構成ファイル内に説明される異なるコンポーネントを作成および/または管理するワークフローが生成され得る。
【0067】
いくつかの例において、インフラストラクチャは、多くの相互接続された要素を有し得る。例えば、コアネットワークとしても知られる1つまたは複数の仮想プライベートクラウド(VPC)(例えば、おそらくは、構成可能なおよび/または共有のコンピューティングリソースのオンデマンドプール)が存在し得る。いくつかの例において、ネットワークのインバウンドおよび/またはアウトバウンドトラフィックがどのようにセットアップされるかを規定するようにプロビジョニングされる1つまたは複数のインバウンド/アウトバウンドトラフィックグループルール、ならびに1つまたは複数の仮想マシン(VM)も存在し得る。負荷バランサ、データベース、または同様のものなどの他のインフラストラクチャ要素もプロビジョニングされ得る。より多くのインフラストラクチャ要素が所望および/または追加されるほど、インフラストラクチャは、徐々に進化し得る。
【0068】
いくつかの場合において、連続デプロイメント技術が、様々な仮想コンピューティング環境にわたるインフラストラクチャコードのデプロイメントを可能にするために採用され得る。追加的に、説明された技術は、これらの環境内でインフラストラクチャ管理を可能にし得る。いくつかの例において、サービスチームは、1つまたは複数の、しかしながら多くの場合、多くの、異なる生産環境に(例えば、様々な異なる地理的場所にわたって、時として世界全体に及んで)デプロイされることが所望されるコードを書くことができる。しかしながら、いくつかの例において、コードがデプロイされ得るインフラストラクチャがまずセットアップされる必要があり得る。いくつかの場合において、プロビジョニングは、手動で行われ得、プロビジョニングツールが、リソースをプロビジョニングするために利用され得、および/または、デプロイメントツールが、インフラストラクチャがプロビジョニングされた後にコードをデプロイするために利用され得る。
【0069】
図6は、少なくとも1つの実施形態による、IaaSアーキテクチャの例となるパターンを例証するブロック
図600である。サービスオペレータ602は、仮想クラウドネットワーク(VCN)606およびセキュアホストサブネット608を含み得るセキュアホストテナンシ604に通信可能に結合され得る。いくつかの例において、サービスオペレータ602は、携帯型ハンドヘルドデバイス(例えば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、パーソナルデジタルアシスタント(PDA))、またはウェアラブルデバイス(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、Microsoft Windows Mobile(登録商標)などの実行ソフトウェア、ならびに/またはiOS、Windows Phone、Android、BlackBerry8、Palm OS、および同様のものなどの様々なモバイルオペレーティングシステムであり得る、1つまたは複数のクライアントコンピューティングデバイスを使用すること、さらにはインターネット、Eメール、ショートメッセージサービス(SMS)、Blackberry(登録商標)、または他の通信プロトコルが有効にされていてもよい。代替的に、クライアントコンピューティングデバイスは、例として、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステムの様々なバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む、汎用パーソナルコンピュータであり得る。クライアントコンピューティングデバイスは、限定することなく、例えば、Google Chrome OSなど、様々なGNU/Linuxオペレーティングシステムを含む、様々な市販のUNIX(登録商標)またはUNIX様のオペレーティングシステムのいずれかを実行するワークステーションコンピュータであり得る。代替的に、または加えて、クライアントコンピューティングデバイスは、VCN606および/またはインターネットにアクセスし得るネットワークを通じて通信することが可能な、シンクライアントコンピュータ、インターネット対応ゲームシステム(例えば、Kinect(登録商標)ジェスチャ入力デバイスありまたはなしのMicrosoft Xboxゲームコンソール)、および/またはパーソナルメッセージングデバイスなど、任意の他の電子デバイスであり得る。
【0070】
VCN606は、セキュアシェル(SSH)VCN612に含まれるLPG610を介してSSH VCN612に通信可能に結合され得るローカルピアリングゲートウェイ(LPG)610を含み得る。SSH VCN612は、SSHサブネット614を含み得、SSH VCN612は、制御プレーンVCN616に含まれるLPG610を介して制御プレーンVCN616に通信可能に結合され得る。また、SSH VCN612は、LPG610を介してデータプレーンVCN618に通信可能に結合され得る。制御プレーンVCN616およびデータプレーンVCN618は、IaaSプロバイダによって所有および/または動作され得るサービステナンシ619に含まれ得る。
【0071】
制御プレーンVCN616は、境界ネットワーク(例えば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)として作用する制御プレーン非武装化地帯(DMZ)階層620を含み得る。DMZベースのサーバは、制限された責任を有し、違反が阻止され続けるのを助け得る。追加的に、DMZ階層620は、1つもしくは複数の負荷バランサ(LB)サブネット622、アプリサブネット626を含み得る制御プレーンアプリ階層624、データベース(DB)サブネット630(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含み得る制御プレーンデータ階層628を含み得る。制御プレーンDMZ階層620に含まれるLBサブネット622は、制御プレーンアプリ階層624に含まれるアプリサブネット626および制御プレーンVCN616に含まれ得るインターネットゲートウェイ634に通信可能に結合され得、アプリサブネット626は、制御プレーンデータ階層628に含まれるDBサブネット630、およびサービスゲートウェイ636、およびネットワークアドレス変換(NAT)ゲートウェイ638に通信可能に結合され得る。制御プレーンVCN616は、サービスゲートウェイ636およびNATゲートウェイ638を含み得る。
【0072】
制御プレーンVCN616は、アプリサブネット626を含み得るデータプレーンミラーアプリ階層640を含み得る。データプレーンミラーアプリ階層640に含まれるアプリサブネット626は、コンピュートインスタンス644を実行し得る仮想ネットワークインターフェースコントローラ(VNIC)642を含み得る。コンピュートインスタンス644は、データプレーンミラーアプリ階層640のアプリサブネット626を、データプレーンアプリ階層646に含まれ得るアプリサブネット626に通信可能に結合し得る。
【0073】
データプレーンVCN618は、データプレーンアプリ階層646、データプレーンDMZ階層648、およびデータプレーンデータ階層650を含み得る。データプレーンDMZ階層648は、データプレーンアプリ階層646のアプリサブネット626およびデータプレーンVCN618のインターネットゲートウェイ634に通信可能に結合され得るLBサブネット622を含み得る。アプリサブネット626は、データプレーンVCN618のサービスゲートウェイ636およびデータプレーンVCN618のNATゲートウェイ638に通信可能に結合され得る。データプレーンデータ階層650はまた、データプレーンアプリ階層646のアプリサブネット626に通信可能に結合され得るDBサブネット630を含み得る。
【0074】
制御プレーンVCN616のインターネットゲートウェイ634、およびデータプレーンVCN618のインターネットゲートウェイ634は、公開インターネット654に通信可能に結合され得るメタデータ管理サービス652に通信可能に結合され得る。公開インターネット654は、制御プレーンVCN616のNATゲートウェイ638、およびデータプレーンVCN618のNATゲートウェイ638に通信可能に結合され得る。制御プレーンVCN616のサービスゲートウェイ636、およびデータプレーンVCN618のサービスゲートウェイ636は、クラウドサービス656に通信可能に結合され得る。
【0075】
いくつかの例において、制御プレーンVCN616のサービスゲートウェイ636、またはデータプレーンVCN618のサービスゲートウェイ636は、公開インターネット654を通さずにクラウドサービス656に対するアプリケーションプログラミングインターフェース(API)呼び出しを行い得る。サービスゲートウェイ636からのクラウドサービス656に対するAPI呼び出しは、一方向であり得、サービスゲートウェイ636は、クラウドサービス656に対するAPI呼び出しを行うことができ、クラウドサービス656は、要求されたデータをサービスゲートウェイ636に送信し得る。しかしながら、クラウドサービス656は、サービスゲートウェイ636に対するAPI呼び出しを開始しなくてもよい。
【0076】
いくつかの例において、セキュアホストテナンシ604は、サービステナンシ619に直接接続され得、サービステナンシ619はさもなければ隔離され得る。セキュアホストサブネット608は、さもなければ隔離されたシステムを通じて双方向通信を可能にし得るLPG610を通じてSSHサブネット614と通信し得る。セキュアホストサブネット608をSSHサブネット614に接続することは、セキュアホストサブネット608にサービステナンシ619内の他のエンティティへのアクセスを付与し得る。
【0077】
制御プレーンVCN616は、サービステナンシ619のユーザが所望のリソースをセットアップすること、または別途プロビジョニングすることを可能にし得る。制御プレーンVCN616内でプロビジョニングされる所望のリソースは、データプレーンVCN618内でデプロイされ得るか、または別途使用され得る。いくつかの例において、制御プレーンVCN616は、データプレーンVCN618から隔離され得、制御プレーンVCN616のデータプレーンミラーアプリ階層640は、データプレーンミラーアプリ階層640およびデータプレーンアプリ階層646に含まれ得るVNIC642を介して、データプレーンVCN618のデータプレーンアプリ階層646と通信し得る。
【0078】
いくつかの例において、システムのユーザ、または顧客は、メタデータ管理サービス652に要求を通信することができる公開インターネット654を通じて、要求を出すこと、例えば、動作を作成すること、読み出すこと、更新すること、または削除すること(CRUD)ができる。メタデータ管理サービス652は、インターネットゲートウェイ634を通じて制御プレーンVCN616に要求を通信することができる。要求は、制御プレーンDMZ階層620に含まれるLBサブネット622によって受信され得る。LBサブネット622は、要求が有効であることを決定し得、この決定に応答して、LBサブネット622は、制御プレーンアプリ階層624に含まれるアプリサブネット626に要求を伝送し得る。要求が検証され、公開インターネット654に対する呼び出しを必要とする場合、公開インターネット654に対する呼び出しは、NATゲートウェイ638に伝送され得、NATゲートウェイ638が、公開インターネット654に対する呼び出しを行い得る。要求によって格納されることが所望され得るメモリは、DBサブネット630に格納され得る。
【0079】
いくつかの例において、データプレーンミラーアプリ階層640は、制御プレーンVCN616とデータプレーンVCN618との間の直接通信を促進し得る。例えば、構成に対する変更、更新、または他の好適な修正が、データプレーンVCN618に含まれるリソースに適用されることが所望され得る。VNIC642を介して、制御プレーンVCN616は、データプレーンVCN618に含まれるリソースと直接通信することができ、以て、それに対する構成への変更、更新、または他の好適な修正を実行し得る。
【0080】
いくつかの実施形態において、制御プレーンVCN616およびデータプレーンVCN618は、サービステナンシ619に含まれ得る。この場合、システムのユーザまたは顧客は、制御プレーンVCN616またはデータプレーンVCN618のいずれかを所有または動作しなくてもよい。代わりに、IaaSプロバイダが、制御プレーンVCN616およびデータプレーンVCN618を所有または動作し得、それらの両方は、サービステナンシ619内に含まれ得る。この実施形態は、ユーザまたは顧客が他のユーザまたは他の顧客のリソースとインタラクトすることを防ぎ得るネットワークの隔離を可能にし得る。また、この実施形態は、システムのユーザまたは顧客が、格納のため、所望のレベルの脅威防止を有さない場合のある公開インターネット654に依拠する必要なしに、データベースをプライベートに格納することを可能にし得る。
【0081】
他の実施形態において、制御プレーンVCN616に含まれるLBサブネット622は、サービスゲートウェイ636から信号を受信するように構成され得る。この実施形態において、制御プレーンVCN616およびデータプレーンVCN618は、公開インターネット654を呼び出すことなしに、IaaSプロバイダの顧客によって呼び出されるように構成され得る。IaaSプロバイダの顧客は、顧客が使用するデータベースがIaaSプロバイダによって制御され得、公開インターネット654から隔離され得るサービステナンシ619に格納され得ることから、この実施形態を所望し得る。
【0082】
図7は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例となるパターンを例証するブロック
図700である。サービスオペレータ702(例えば、
図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)706(例えば、
図6のVCN606)およびセキュアホストサブネット708(例えば、
図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ704(例えば、
図6のセキュアホストテナンシ604)に通信可能に結合され得る。VCN706は、セキュアシェル(SSH)VCN712に含まれるLPG610を介してSSH VCN712(例えば、
図6のSSH VCN612)に通信可能に結合され得るローカルピアリングゲートウェイ(LPG)710(例えば、
図6のLPG610)を含み得る。SSH VCN712は、SSHサブネット714(例えば、
図6のSSHサブネット614)を含み得、SSH VCN712は、制御プレーンVCN716に含まれるLPG710を介して制御プレーンVCN716(例えば、
図6の制御プレーンVCN616)に通信可能に結合され得る。制御プレーンVCN716は、サービステナンシ719(例えば、
図6のサービステナンシ619)に含まれ得、データプレーンVCN718(例えば、
図6のデータプレーンVCN618)は、システムのユーザまたは顧客によって所有または動作され得る顧客テナンシ721に含まれ得る。
【0083】
制御プレーンVCN716は、LBサブネット722(例えば、
図6のLBサブネット622)を含み得る制御プレーンDMZ階層720(例えば、
図6の制御プレーンDMZ階層620)、アプリサブネット726(例えば、
図6のアプリサブネット626)を含み得る制御プレーンアプリ階層724(例えば、
図6の制御プレーンアプリ階層624)、データベース(DB)サブネット730(例えば、
図6のDBサブネット630と同様)を含み得る制御プレーンデータ階層728(例えば、
図6の制御プレーンデータ階層628)を含み得る。制御プレーンDMZ階層720に含まれるLBサブネット722は、制御プレーンアプリ階層724に含まれるアプリサブネット726、および制御プレーンVCN716に含まれ得るインターネットゲートウェイ734(例えば、
図6のインターネットゲートウェイ634)に通信可能に結合され得、アプリサブネット726は、制御プレーンデータ階層728に含まれるDBサブネット730、およびサービスゲートウェイ736(例えば、
図6のサービスゲートウェイ)、およびネットワークアドレス変換(NAT)ゲートウェイ738(例えば、
図6のNATゲートウェイ638)に通信可能に結合され得る。制御プレーンVCN716は、サービスゲートウェイ736およびNATゲートウェイ738を含み得る。
【0084】
制御プレーンVCN716は、アプリサブネット726を含み得るデータプレーンミラーアプリ階層740(例えば、
図6のデータプレーンミラーアプリ階層640)を含み得る。データプレーンミラーアプリ階層740に含まれるアプリサブネット726は、コンピュートインスタンス744(例えば、
図6のコンピュートインスタンス644と同様)を実行し得る仮想ネットワークインターフェースコントローラ(VNIC)742(例えば、642のVNIC)を含み得る。コンピュートインスタンス744は、データプレーンミラーアプリ階層740に含まれるVNIC742およびデータプレーンアプリ階層746に含まれるVNIC742を介して、データプレーンミラーアプリ階層740のアプリサブネット726と、データプレーンアプリ階層746(例えば、
図6のデータプレーンアプリ階層646)に含まれ得るアプリサブネット726との間の通信を促進し得る。
【0085】
制御プレーンVCN716に含まれるインターネットゲートウェイ734は、公開インターネット754(例えば、
図6の公開インターネット654)に通信可能に結合され得るメタデータ管理サービス752(例えば、
図6のメタデータ管理サービス652)に通信可能に結合され得る。公開インターネット754は、制御プレーンVCN716に含まれるNATゲートウェイ738に通信可能に結合され得る。制御プレーンVCN716に含まれるサービスゲートウェイ736は、クラウドサービス756(例えば、
図6のクラウドサービス656)に通信可能に結合され得る。
【0086】
いくつかの例において、データプレーンVCN718は、顧客テナンシ721に含まれ得る。この場合、IaaSプロバイダは、顧客ごとに制御プレーンVCN716を提供し得、IaaSプロバイダは、顧客ごとに、サービステナンシ719に含まれる固有のコンピュートインスタンス744をセットアップし得る。各コンピュートインスタンス744は、サービステナンシ719に含まれる制御プレーンVCN716と顧客テナンシ721に含まれるデータプレーンVCN718との間の通信を可能にし得る。コンピュートインスタンス744は、サービステナンシ719に含まれる制御プレーンVCN716内でプロビジョニングされるリソースが、顧客テナンシ721に含まれるデータプレーンVCN718内でデプロイされるか、または別途使用されることを可能にし得る。
【0087】
他の例において、IaaSプロバイダの顧客は、顧客テナンシ721内に存在するデータベースを有し得る。この例では、制御プレーンVCN716は、アプリサブネット726を含み得るデータプレーンミラーアプリ階層740を含み得る。データプレーンミラーアプリ階層740は、データプレーンVCN718に常駐し得るが、データプレーンミラーアプリ階層740は、データプレーンVCN718内に存在しなくてもよい。すなわち、データプレーンミラーアプリ階層740は、顧客テナンシ721へのアクセスを有し得るが、データプレーンミラーアプリ階層740は、データプレーンVCN718内に存在しなくてもよく、またはIaaSプロバイダの顧客によって所有もしくは動作されなくてもよい。データプレーンミラーアプリ階層740は、データプレーンVCN718に対する呼び出しを行うように構成され得るが、制御プレーンVCN716に含まれる任意のエンティティに対する呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN716内でプロビジョニングされるデータプレーンVCN718内のリソースをデプロイすること、または別途使用することを所望し得、データプレーンミラーアプリ階層740は、顧客の、所望のデプロイメントまたはリソースの他の使用を促進し得る。
【0088】
いくつかの実施形態において、IaaSプロバイダの顧客は、データプレーンVCN718にフィルタを適用し得る。この実施形態において、顧客は、どのデータプレーンVCN718がアクセスすることができるかを決定し得、顧客は、データプレーンVCN718からの公開インターネット754へのアクセスを制限し得る。IaaSプロバイダは、フィルタを適用すること、またはデータプレーンVCN718のアクセスを任意の外側のネットワークもしくはデータベースへと別途制御することができなくてもよい。顧客テナンシ721に含まれるデータプレーンVCN718に対して顧客によりフィルタおよび制御を適用することは、データプレーンVCN718を他の顧客から、および公開インターネット754から隔離するのを助け得る。
【0089】
いくつかの実施形態において、クラウドサービス756は、公開インターネット754上、制御プレーンVCN716上、またはデータプレーンVCN718上に存在しない場合のあるサービスにアクセスするためにサービスゲートウェイ736によって呼び出され得る。クラウドサービス756と制御プレーンVCN716またはデータプレーンVCN718との間の接続は、ライブまたは連続的でなくてもよい。クラウドサービス756は、IaaSプロバイダによって所有または動作される異なるネットワーク上に存在し得る。クラウドサービス756は、サービスゲートウェイ736からの呼び出しを受信するように構成され得、また公開インターネット754からの呼び出しを受信しないように構成され得る。一部のクラウドサービス756は、他のクラウドサービス756から隔離され得、制御プレーンVCN716は、制御プレーンVCN716と同じ領域内にない場合のあるクラウドサービス756から隔離され得る。例えば、制御プレーンVCN716は、「領域1」に位置し得、クラウドサービス「デプロイメント6」は、領域1および「領域2」に位置し得る。デプロイメント6に対する呼び出しが、領域1に位置する制御プレーンVCN716に含まれるサービスゲートウェイ736によって行われる場合、呼び出しは、領域1内のデプロイメント6へ伝送され得る。この例では、制御プレーンVCN716、または領域1内のデプロイメント6は、領域2内のデプロイメント6に通信可能に結合されなくてもよく、またはこれと別途通信状態になくてもよい。
【0090】
図8は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例となるパターンを例証するブロック
図800である。サービスオペレータ802(例えば、
図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)806(例えば、
図6のVCN606)およびセキュアホストサブネット808(例えば、
図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ804(例えば、
図6のセキュアホストテナンシ604)に通信可能に結合され得る。VCN806は、SSH VCN812に含まれるLPG810を介してSSH VCN812(例えば、
図6のSSH VCN612)に通信可能に結合され得るLPG810(例えば、
図6のLPG610)を含み得る。SSH VCN812は、SSHサブネット814(例えば、
図6のSSHサブネット614)を含み得、SSH VCN812は、制御プレーンVCN816に含まれるLPG810を介して制御プレーンVCN816(例えば、
図6の制御プレーンVCN616)に、およびデータプレーンVCN818に含まれるLPG810を介してデータプレーンVCN818(例えば、
図6のデータプレーン618)に通信可能に結合され得る。制御プレーンVCN816およびデータプレーンVCN818は、サービステナンシ819(例えば、
図6のサービステナンシ619)に含まれ得る。
【0091】
制御プレーンVCN816は、負荷バランサ(LB)サブネット822(例えば、
図6のLBサブネット622)を含み得る制御プレーンDMZ階層820(例えば、
図6の制御プレーンDMZ階層620)、アプリサブネット826(例えば、
図6のアプリサブネット626と同様)を含み得る制御プレーンアプリ階層824(例えば、
図6の制御プレーンアプリ階層624)、DBサブネット830を含み得る制御プレーンデータ階層828(例えば、
図6の制御プレーンデータ階層628)を含み得る。制御プレーンDMZ階層820に含まれるLBサブネット822は、制御プレーンアプリ階層824に含まれるアプリサブネット826に、および制御プレーンVCN816に含まれ得るインターネットゲートウェイ834(例えば、
図6のインターネットゲートウェイ634)に通信可能に結合され得、アプリサブネット826は、制御プレーンデータ階層828に含まれるDBサブネット830に、ならびにサービスゲートウェイ836(例えば、
図6のサービスゲートウェイ)、およびネットワークアドレス変換(NAT)ゲートウェイ838(例えば、
図6のNATゲートウェイ638)に通信可能に結合され得る。制御プレーンVCN816は、サービスゲートウェイ836およびNATゲートウェイ838を含み得る。
【0092】
データプレーンVCN818は、データプレーンアプリ階層846(例えば、
図6のデータプレーンアプリ階層646)、データプレーンDMZ階層848(例えば、
図6のデータプレーンDMZ階層648)、およびデータプレーンデータ階層850(例えば、
図6のデータプレーンデータ階層650)を含み得る。データプレーンDMZ階層848は、データプレーンアプリ階層846の信頼できるアプリサブネット860および信頼できないサブネット862、ならびにデータプレーンVCN818に含まれるインターネットゲートウェイ834に通信可能に結合され得るLBサブネット822を含み得る。信頼できるアプリサブネット860は、データプレーンVCN818に含まれるサービスゲートウェイ836、データプレーンVCN818に含まれるNATゲートウェイ838、およびデータプレーンデータ階層850に含まれるDBサブネット830に通信可能に結合され得る。信頼できないアプリサブネット862は、データプレーンVCN818に含まれるサービスゲートウェイ836およびデータプレーンデータ階層850に含まれるDBサブネット830に通信可能に結合され得る。データプレーンデータ階層850は、データプレーンVCN818に含まれるサービスゲートウェイ836に通信可能に結合され得るDBサブネット830を含み得る。
【0093】
信頼できないアプリサブネット862は、テナント仮想マシン(VM)866(1)-(N)に通信可能に結合され得る1つまたは複数のプライマリVNIC864(1)-(N)を含み得る。各テナントVM866(1)-(N)は、それぞれの顧客テナンシ870(1)-(N)に含まれ得るそれぞれのコンテナイグレスVCN868(1)-(N)に含まれ得るそれぞれのアプリサブネット867(1)-(N)に通信可能に結合され得る。それぞれのセカンダリVNIC872(1)-(N)は、データプレーンVCN818に含まれる信頼できないアプリサブネット862とコンテナイグレスVCN868(1)-(N)に含まれるアプリサブネットとの間の通信を促進し得る。各コンテナイグレスVCN868(1)-(N)は、公開インターネット854(例えば、
図6の公開インターネット654)に通信可能に結合され得るNATゲートウェイ838を含み得る。
【0094】
制御プレーンVCN816に含まれるインターネットゲートウェイ834、およびデータプレーンVCN818に含まれるインターネットゲートウェイ834は、公開インターネット854に通信可能に結合され得るメタデータ管理サービス852(例えば、
図6のメタデータ管理システム652)に通信可能に結合され得る。公開インターネット854は、制御プレーンVCN816に含まれるNATゲートウェイ838、およびデータプレーンVCN818に含まれるNATゲートウェイ838に通信可能に結合され得る。制御プレーンVCN816に含まれるサービスゲートウェイ836、およびデータプレーンVCN818に含まれるサービスゲートウェイ836は、クラウドサービス856に通信可能に結合され得る。
【0095】
いくつかの実施形態において、データプレーンVCN818は、顧客テナンシ870と統合され得る。この統合は、コードを実行するときにサポートを所望し得る場合など、いくつかの場合において、IaaSプロバイダの顧客にとって有用または望ましいものであり得る。顧客は、破壊的であり得る実行すべきコードを提供し得、他の顧客リソースと通信し得、または望ましくない影響を別途引き起こし得る。これに応答して、IaaSプロバイダは、顧客によってIaaSプロバイダに与えられるコードを実行するべきかどうかを決定し得る。
【0096】
いくつかの例において、IaaSプロバイダの顧客は、一時的なネットワークアクセスをIaaSプロバイダに付与し、データプレーン階層アプリ846に付随する関数を要求し得る。関数を実行するためのコードは、VM866(1)-(N)内で実行され得、コードは、データプレーンVCN818の他の場所で実行するようには構成されなくてもよい。各VM866(1)-(N)は、1つの顧客テナンシ870に接続され得る。VM866(1)-(N)に含まれるそれぞれのコンテナ871(1)-(N)は、コードを実行するように構成され得る。この場合、二重隔離(例えば、コードを実行するコンテナ871(1)-(N)、この場合、コンテナ871(1)-(N)は、信頼できないアプリサブネット862に含まれる少なくともVM866(1)-(N)に含まれ得る)が存在し得、これは、正しくない、または別途望ましくないコードが、IaaSプロバイダのネットワークに損傷を及ぼすこと、または異なる顧客のネットワークに損傷を及ぼすことを防ぐのを助け得る。コンテナ871(1)-(N)は、顧客テナンシ870に通信可能に結合され得、データを顧客テナンシ870から伝送または受信するように構成され得る。コンテナ871(1)-(N)は、データプレーンVCN818内の任意の他のエンティティからデータを伝送または受信するように構成されなくてもよい。コードを実行することを完了すると、IaaSプロバイダは、コンテナ871(1)-(N)を抹消または別途処分し得る。
【0097】
いくつかの実施形態において、信頼できるアプリサブネット860は、IaaSプロバイダによって所有または動作され得るコードを実行し得る。この実施形態において、信頼できるアプリサブネット860は、DBサブネット830に通信可能に結合され得、DBサブネット830内でCRUD動作を実行するように構成され得る。信頼できないアプリサブネット862は、DBサブネット830に通信可能に結合され得るが、この実施形態において、信頼できないアプリサブネットは、DBサブネット830内で読み出し動作を実行するように構成され得る。各顧客のVM866(1)-(N)に含まれ得、顧客からのコードを実行し得るコンテナ871(1)-(N)は、DBサブネット830と通信可能に結合されなくてもよい。
【0098】
他の実施形態において、制御プレーンVCN816およびデータプレーンVCN818は、直接的に通信可能に結合されなくてもよい。この実施形態において、制御プレーンVCN816とデータプレーンVCN818との間に直接通信は存在しなくてもよい。しかしながら、通信は、少なくとも1つの方法を通じて間接的に発生し得る。LPG810は、制御プレーンVCN816とデータプレーンVCN818との間の通信を促進し得るIaaSプロバイダによって確立され得る。別の例において、制御プレーンVCN816またはデータプレーンVCN818は、サービスゲートウェイ836を介してクラウドサービス856に対する呼び出しを行い得る。例えば、制御プレーンVCN816からのクラウドサービス856に対する呼び出しは、データプレーンVCN818と通信し得るサービスの要求を含み得る。
【0099】
図9は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例となるパターンを例証するブロック
図900である。サービスオペレータ902(例えば、
図6のサービスオペレータ602)は、仮想クラウドネットワーク(VCN)906(例えば、
図6のVCN606)およびセキュアホストサブネット908(例えば、
図6のセキュアホストサブネット608)を含み得るセキュアホストテナンシ904(例えば、
図6のセキュアホストテナンシ604)に通信可能に結合され得る。VCN906は、SSH VCN912に含まれるLPG910を介してSSH VCN912(例えば、
図6のSSH VCN612)に通信可能に結合され得るLPG910(例えば、
図6のLPG610)を含み得る。SSH VCN912は、SSHサブネット914(例えば、
図6のSSHサブネット614)を含み得、SSH VCN912は、制御プレーンVCN916に含まれるLPG910を介して制御プレーンVCN916(例えば、
図6の制御プレーンVCN616)に、およびデータプレーンVCN918に含まれるLPG910を介してデータプレーンVCN918(例えば、
図6のデータプレーン618)に通信可能に結合され得る。制御プレーンVCN916およびデータプレーンVCN918は、サービステナンシ919(例えば、
図6のサービステナンシ619)に含まれ得る。
【0100】
制御プレーンVCN916は、LBサブネット922(例えば、
図6のLBサブネット622)を含み得る制御プレーンDMZ階層920(例えば、
図6の制御プレーンDMZ階層620)、アプリサブネット926(例えば、
図6のアプリサブネット626)を含み得る制御プレーンアプリ階層924(例えば、
図6の制御プレーンアプリ階層624)、DBサブネット930(例えば、
図8のDBサブネット830)を含み得る制御プレーンデータ階層928(例えば、
図6の制御プレーンデータ階層628)を含み得る。制御プレーンDMZ階層920に含まれるLBサブネット922は、制御プレーンアプリ階層924に含まれるアプリサブネット926に、および制御プレーンVCN916に含まれ得るインターネットゲートウェイ934(例えば、
図6のインターネットゲートウェイ634)に通信可能に結合され得、アプリサブネット926は、制御プレーンデータ階層928に含まれるDBサブネット930に、ならびにサービスゲートウェイ936(例えば、
図6のサービスゲートウェイ)、およびネットワークアドレス変換(NAT)ゲートウェイ938(例えば、
図6のNATゲートウェイ638)に通信可能に結合され得る。制御プレーンVCN916は、サービスゲートウェイ936およびNATゲートウェイ938を含み得る。
【0101】
データプレーンVCN918は、データプレーンアプリ階層946(例えば、
図6のデータプレーンアプリ階層646)、データプレーンDMZ階層948(例えば、
図6のデータプレーンDMZ階層648)、およびデータプレーンデータ階層950(例えば、
図6のデータプレーンデータ階層650)を含み得る。データプレーンDMZ階層948は、データプレーンアプリ階層946の信頼できるアプリサブネット960(例えば、
図8の信頼できるアプリサブネット860)および信頼できないアプリサブネット962(例えば、
図8の信頼できないアプリサブネット862)、ならびにデータプレーンVCN918に含まれるインターネットゲートウェイ934に通信可能に結合され得るLBサブネット922を含み得る。信頼できるアプリサブネット960は、データプレーンVCN918に含まれるサービスゲートウェイ936、データプレーンVCN918に含まれるNATゲートウェイ938、およびデータプレーンデータ階層950に含まれるDBサブネット930に通信可能に結合され得る。信頼できないアプリサブネット962は、データプレーンVCN918に含まれるサービスゲートウェイ936およびデータプレーンデータ階層950に含まれるDBサブネット930に通信可能に結合され得る。データプレーンデータ階層950は、データプレーンVCN918に含まれるサービスゲートウェイ936に通信可能に結合され得るDBサブネット930を含み得る。
【0102】
信頼できないアプリサブネット962は、信頼できないアプリサブネット962に常駐するテナント仮想マシン(VM)966(1)-(N)に通信可能に結合され得るプライマリVNIC964(1)-(N)を含み得る。各テナントVM966(1)-(N)は、それぞれのコンテナ967(1)-(N)内でコードを実行し得、コンテナイグレスVCN968に含まれ得るデータプレーンアプリ階層946に含まれ得るアプリサブネット926に通信可能に結合され得る。それぞれのセカンダリVNIC972(1)-(N)は、データプレーンVCN918に含まれる信頼できないアプリサブネット962とコンテナイグレスVCN968に含まれるアプリサブネットとの間の通信を促進し得る。コンテナイグレスVCNは、公開インターネット954(例えば、
図6の公開インターネット654)に通信可能に結合され得るNATゲートウェイ938を含み得る。
【0103】
制御プレーンVCN916に含まれるインターネットゲートウェイ934、およびデータプレーンVCN918に含まれるインターネットゲートウェイ834は、公開インターネット954に通信可能に結合され得るメタデータ管理サービス952(例えば、
図6のメタデータ管理システム652)に通信可能に結合され得る。公開インターネット954は、制御プレーンVCN916に含まれるNATゲートウェイ938、およびデータプレーンVCN918に含まれるNATゲートウェイ938に通信可能に結合され得る。制御プレーンVCN916に含まれるサービスゲートウェイ936、およびデータプレーンVCN918に含まれるサービスゲートウェイ936は、クラウドサービス956に通信可能に結合され得る。
【0104】
いくつかの例において、
図9のブロック
図900のアーキテクチャによって例証されるパターンは、
図8のブロック
図800のアーキテクチャによって例証されるパターンの例外と見なされ得、IaaSプロバイダが顧客と直接的に通信することができない場合(例えば、切断された領域)、IaaSプロバイダの顧客にとって望ましい場合がある。各顧客のためのVM966(1)-(N)に含まれるそれぞれのコンテナ967(1)-(N)は、顧客によりリアルタイムでアクセスされ得る。コンテナ967(1)-(N)は、コンテナイグレスVCN968に含まれ得るデータプレーンアプリ階層946のアプリサブネット926に含まれるそれぞれのセカンダリVNIC972(1)-(N)に対する呼び出しを行うように構成され得る。セカンダリVNIC972(1)-(N)は、公開インターネット954に対する呼び出しを伝送し得るNATゲートウェイ938に対する呼び出しを伝送し得る。この例では、顧客によりリアルタイムでアクセスされ得るコンテナ967(1)-(N)は、制御プレーンVCN916から隔離され得、データプレーンVCN918に含まれる他のエンティティから隔離され得る。コンテナ967(1)-(N)はまた、他の顧客からのリソースから隔離され得る。
【0105】
他の例では、顧客は、クラウドサービス956を呼び出すためにコンテナ967(1)-(N)を使用し得る。この例では、顧客は、クラウドサービス956からサービスを要求するコンテナ967(1)-(N)内でコードを実行し得る。コンテナ967(1)-(N)は、この要求をセカンダリVNIC972(1)-(N)に伝送し得、このセカンダリVNIC972(1)-(N)がNATゲートウェイに要求を伝送し得、このNATゲートウェイが公開インターネット954に要求を伝送し得る。公開インターネット954は、インターネットゲートウェイ934を介して制御プレーンVCN916に含まれるLBサブネット922に要求を伝送し得る。要求が有効であることを決定することに応答して、LBサブネットは、アプリサブネット926に要求を伝送し得、このアプリサブネット926が、サービスゲートウェイ936を介してクラウドサービス956に要求を伝送し得る。
【0106】
図に描写されるIaaSアーキテクチャ600、700、800、900は、描写されるもの以外のコンポーネントを有し得るということを理解されたい。さらに、図に示される実施形態は、本開示の実施形態を組み込み得るクラウドインフラストラクチャシステムのいくつかの例にすぎない。いくつかの他の実施形態において、IaaSシステムは、図に示されるよりも多くのもしくは少ないコンポーネントを有し得、2つ以上のコンポーネントを組み合わせ得、または異なる構成もしくは配置のコンポーネントを有し得る。
【0107】
特定の実施形態において、本明細書に説明されるIaaSシステムは、セルフサービス、購読ベース、弾力的に拡張可能な、信頼性のある、高可用性の、およびセキュアな様式で顧客に配信される一連のアプリケーション、ミドルウェア、およびデータベースサービスを含み得る。そのようなIaaSシステムの例は、特許譲受人によって提供されるオラクルクラウドインフラストラクチャ(OCI)である。
【0108】
図10は、様々な実施形態が実装され得る例となるコンピュータシステム1000を例証する。システム1000は、上に説明されるコンピュータシステムのいずれかを実装するために使用され得る。図に示されるように、コンピュータシステム1000は、バスサブシステム1002を介していくつかの周辺サブシステムと通信する処理装置1004を含む。これらの周辺サブシステムは、処理加速装置1006、I/Oサブシステム1008、ストレージサブシステム1018、および通信サブシステム1024を含み得る。ストレージサブシステム1018は、有形コンピュータ可読記憶媒体1022およびシステムメモリ1010を含む。
【0109】
バスサブシステム1002は、コンピュータシステム1000の様々なコンポーネントおよびサブシステムに意図したように互いと通信させるための機構を提供する。バスサブシステム1002は、単一のバスとして概略的に示されるが、バスサブシステムの代替の実施形態は、複数のバスを利用し得る。バスサブシステム1002は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造体のいずれかであり得る。例えば、そのようなアーキテクチャは、IEEE P1386.1規格に合わせて製造されるMezzanineバスとして実装され得る、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、および周辺コンポーネント相互接続(PCI)バスを含み得る。
【0110】
1つまたは複数の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実装され得る処理装置1004は、コンピュータシステム1000の動作を制御する。1つまたは複数のプロセッサは、処理装置1004に含まれ得る。これらのプロセッサは、シングルコアまたはマルチコアプロセッサを含み得る。特定の実施形態において、処理装置1004は、各処理装置に含まれるシングルまたはマルチコアプロセッサを伴う1つまたは複数の独立した処理装置1032および/または1034として実装され得る。他の実施形態において、処理装置1004はまた、2つのデュアルコアプロセッサをシングルチップへと統合することによって形成されるクアッドコア処理装置として実装され得る。
【0111】
様々な実施形態において、処理装置1004は、プログラムコードに応答して様々なプログラムを実行し得、複数の同時に実行するプログラムまたはプロセスを維持し得る。任意の所与の時間において、実行されるべきプログラムコードのいくつかまたはすべては、プロセッサ1004および/またはストレージサブシステム1018に常駐し得る。好適なプログラミングを通じて、プロセッサ1004は、上に説明される様々な機能性を提供し得る。コンピュータシステム1000は、追加的に、デジタル信号プロセッサ(DSP)、特殊目的プロセッサ、および/または同様のものを含み得る処理加速装置1006を含み得る。
【0112】
I/Oサブシステム1008は、ユーザインターフェース入力デバイスおよびユーザインターフェース出力デバイスを含み得る。ユーザインターフェース入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれるタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを有する音声入力デバイス、マイク、および他のタイプの入力デバイスを含み得る。ユーザインターフェース入力デバイスは、例えば、ユーザが、ジェスチャおよび発話コマンドを使用した自然ユーザインターフェースを通じて、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力デバイスを制御し、これとインタラクトすることを可能にする、Microsoft Kinect(登録商標)動作センサなどの動作検知および/またはジェスチャ認識デバイスを含み得る。ユーザインターフェース入力デバイスはまた、ユーザから目の活動(例えば、写真を撮っているおよび/またはメニュー選択を行っている間の「瞬き」)を検出し、アイジェスチャを入力デバイス(例えば、Google Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識デバイスを含み得る。追加的に、ユーザインターフェース入力デバイスは、ユーザが音声コマンドを通じて音声認識システム(例えば、Siri(登録商標)ナビゲータ)とインタラクトすることを可能にする音声認識検知デバイスを含み得る。
【0113】
ユーザインターフェース入力デバイスはまた、限定なしに、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレイヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザ距離計、および視線追跡デバイスなどの音声/視覚デバイスを含み得る。追加的に、ユーザインターフェース入力デバイスは、例えば、コンピュータ断層撮影、磁気共鳴撮像、位置エミッション断層撮影、医用超音波診断デバイスなどの医用画像入力デバイスを含み得る。ユーザインターフェース入力デバイスはまた、例えば、MIDIキーボード、デジタル楽器、および同様のものなどの音声入力デバイスを含み得る。
【0114】
ユーザインターフェース出力デバイスは、ディスプレイサブシステム、インジケータ光、または音声出力デバイスなどの非視覚ディスプレイを含み得る。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなどのフラットパネルデバイス、投射デバイス、タッチスクリーン、および同様のものであり得る。一般に、「出力デバイス」という用語の使用は、コンピュータシステム1000からの情報をユーザまたは他のコンピュータに出力するためのすべての可能なタイプのデバイスおよび機構を含むことが意図される。例えば、ユーザインターフェース出力デバイスは、限定なしに、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイス、およびモデムなど、テキスト、図形、および音声/ビデオ情報を視覚的に伝達する様々なディスプレイデバイスを含み得る。
【0115】
コンピュータシステム1000は、現在システムメモリ1010内に位置するものとして示される、ソフトウェア要素を備えるストレージサブシステム1018を備え得る。システムメモリ1010は、処理装置1004上でロード可能および実行可能であるプログラム命令、ならびにこれらのプログラムの実行中に生成されるデータを格納し得る。
【0116】
コンピュータシステム1000の構成およびタイプに応じて、システムメモリ1010は、揮発性(ランダムアクセスメモリ(RAM)など)および/または不揮発性(リードオンリメモリ(ROM)、フラッシュメモリなど)であり得る。RAMは、典型的には、処理装置1004に直ちにアクセス可能であり、ならびに/または処理装置1004によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実装形態において、システムメモリ1010は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実装形態において、スタートアップ中など、コンピュータシステム1000内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入力/出力システム(BIOS)は、典型的には、ROMに格納され得る。例として、および限定ではなく、システムメモリ1010はまた、クライアントアプリケーション、ウェブブラウザ、中間階層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム1012、プログラムデータ1014、およびオペレーティングシステム1016を例証する。例として、オペレーティングシステム1016は、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinuxオペレーティングシステムの様々なバージョン、様々な市販のUNIX(登録商標)またはUNIX様のオペレーティングシステム(限定なしに、様々なGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OS、および同様のものを含む)、ならびに/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)10 OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
【0117】
ストレージサブシステム1018はまた、いくつかの実施形態の機能性を提供する基本プログラミングおよびデータ構造を格納するための有形コンピュータ可読記憶媒体を提供し得る。プロセッサによって実行されると、上に説明される機能性を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム1018に格納され得る。これらのソフトウェアモジュールまたは命令は、処理装置1004によって実行され得る。ストレージサブシステム1018はまた、本開示に従って使用されるデータを格納するためのレポジトリを提供し得る。
【0118】
ストレージサブシステム1000はまた、コンピュータ可読記憶媒体1022にさらに接続され得るコンピュータ可読記憶媒体リーダ1020を含み得る。一緒に、および任意選択的に、システムメモリ1010と組み合わせて、コンピュータ可読記憶媒体1022は、遠隔、ローカル、固定、および/または除去可能ストレージデバイスに加えて、一時的に、および/またはより恒久的に、コンピュータ可読情報を含む、格納する、伝送する、および取得するための記憶媒体を包括的に表し得る。
【0119】
コードまたはコードの部分を含むコンピュータ可読記憶媒体1022はまた、限定されるものではないが、情報の格納および/または伝送のための任意の方法または技術で実装される揮発性および不揮発性、除去可能および除去不可能な媒体など、記憶媒体および通信媒体を含む、当該技術分野において知られている、または使用される任意の適切な媒体を含み得る。これは、RAM、ROM、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または他の有形コンピュータ可読媒体など、有形コンピュータ可読記憶媒体を含み得る。これはまた、所望の情報を伝送するために使用され得、コンピューティングシステム1000によってアクセスされ得る、データ信号、データ伝送、または任意の他の媒体など、非有形コンピュータ可読媒体を含み得る。
【0120】
例として、コンピュータ可読記憶媒体1022は、除去不可能な不揮発性磁気媒体から読み出す、またはこれに書き込むハードディスクドライブ、除去可能な不揮発性磁気ディスクから読み出す、またはこれに書き込む磁気ディスクドライブ、ならびにCD ROM、DVD、およびBlu-Ray(登録商標)ディスク、または他の光学媒体など、除去可能な不揮発性の光学ディスクから読み出す、またはこれに書き込む光学ディスクドライブを含み得る。コンピュータ可読記憶媒体1022は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープ、および同様のものを含み得るが、これらに限定されない。コンピュータ可読記憶媒体1022はまた、不揮発性メモリに基づいたソリッドステートドライブ(SSD)、例えば、フラッシュメモリベースのSSD、企業フラッシュドライブ、ソリッドステートROM、および同様のもの、揮発性メモリに基づいたSSD、例えば、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、ならびにDRAMおよびフラッシュメモリベースのSSDの組合せを使用するハイブリッドSSDを含み得る。ディスクドライブおよびそれらの関連コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータシステム1000のための他のデータの不揮発性ストレージを提供し得る。
【0121】
通信サブシステム1024は、他のコンピュータシステムおよびネットワークへのインターフェースを提供する。通信サブシステム1024は、他のシステムからデータを受信し、またコンピュータシステム1000から他のシステムにデータを伝送するためのインターフェースとしての役割を果たす。例えば、通信サブシステム1024は、コンピュータシステム1000がインターネットを介して1つまたは複数のデバイスに接続することを可能にし得る。いくつかの実施形態において、通信サブシステム1024は、(例えば、携帯電話技術、3G、4G、またはEDGE(Enhanced Data rates for Global Evolution)などの高度なデータネットワーク技術、WiFi(IEEE802.11ファミリ規格、または他のモバイル通信技術、またはそれらの任意の組合せを使用して)ワイヤレス音声および/またはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、全地球測位システム(GPS)受信機コンポーネント、および/または他のコンポーネントを含み得る。いくつかの実施形態において、通信サブシステム1024は、ワイヤレスインターフェースに加えて、またはその代わりに、有線ネットワーク接続(例えば、イーサネット(登録商標))を提供し得る。
【0122】
いくつかの実施形態において、通信サブシステム1024は、コンピュータシステム1000を使用し得る1つまたは複数のユーザに代わって、構造化および/または非構造化データフィード1026、イベントストリーム1028、イベント更新1030、ならびに同様のものの形態で入力通信を受信し得る。
【0123】
例として、通信サブシステム1024は、Twitter(登録商標)フィード、Facebook(登録商標)更新、Rich Site Summary(RSS)フィードなどのウェブフィード、ならびに/または1つもしくは複数のサードパーティ情報源からのリアルタイム更新など、ソーシャルネットワークおよび/または他の通信サービスのユーザからリアルタイムでデータフィード1026を受信するように構成され得る。
【0124】
追加的に、通信サブシステム1024はまた、明白な終わりなしに事実上連続的または無限であり得る、リアルタイムイベントのイベントストリーム1028、および/またはイベント更新1030を含み得る、連続的なデータストリームの形態でデータを受信するように構成され得る。連続的なデータを生成するアプリケーションの例としては、例えば、センサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(例えば、ネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車トラフィックモニタリング、および同様のものを挙げることができる。
【0125】
通信サブシステム1024はまた、構造化および/または非構造化データフィード1026、イベントストリーム1028、イベント更新1030、ならびに同様のものを、コンピュータシステム1000に結合される1つまたは複数のストリーミングデータソースコンピュータと通信状態にあり得る1つまたは複数のデータベースに出力するように構成され得る。
【0126】
コンピュータシステム1000は、ハンドヘルド携帯デバイス(例えば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む様々なタイプのうちの1つであり得る。
【0127】
コンピュータおよびネットワークの絶え間なく変化する性質に起因して、図に描写されるコンピュータシステム1000の説明は、特定の例として意図されるにすぎない。図に描写されるシステムよりも多くのまたは少ないコンポーネントを有する多くの他の構成が可能である。例えば、カスタマイズされたハードウェアもまた使用され得、および/または、特定の要素は、ハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、もしくは組合せにおいて実装され得る。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続が採用され得る。本明細書に提供される開示および教示に基づいて、当業者は、様々な実施形態を実施するための他の手段および/または方法を理解するものとする。
【0128】
特定の実施形態が説明されているが、様々な修正、変更、代替構造、および等価物もまた、本開示の範囲内に包含される。実施形態は、ある特定のデータ処理環境内の動作に限定されず、複数のデータ処理環境内で自由に動作する。追加的に、実施形態は、特定の一連のトランザクションおよびステップを使用して説明されているが、本開示の範囲は、説明した一連のトランザクションおよびステップに限定されないことは当業者にとって明らかであるものとする。上述した実施形態の様々な特徴および態様は、個別にまたは共同で使用され得る。
【0129】
さらに、実施形態は、ハードウェアおよびソフトウェアの特定の組合せを使用して説明されているが、ハードウェアおよびソフトウェアの他の組合せも本開示の範囲内であることを理解されたい。実施形態は、ハードウェアのみ、ソフトウェアのみ、またはそれらの組合せを使用して、実施され得る。本明細書に説明される様々なプロセスは、同じプロセッサ上で、または任意の組合せで異なるプロセッサ上で実施され得る。したがって、コンポーネントまたはモジュールが、ある動作を実施するように構成されるものとして説明される場合、そのような構成は、例えば、その動作を実施するように電子回路を設計することによって、その動作を実施するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラミングすることによって、またはそれらの任意の組合せによって達成され得る。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されない様々な技術を使用して通信することができ、異なる対のプロセスは、異なる技術を使用し得、または同じ対のプロセスは、異なる時間に異なる技術を使用し得る。
【0130】
したがって、明細書および図面は、限定的な意味ではなく例証的な意味で捉えられるべきである。しかしながら、追加、減算、削除、ならびに他の修正および変更が、クレームに明記されるような広範な趣旨および範囲から逸脱することなく、行われ得ることは明白である。故に、特定の開示実施形態が説明されているが、これらは限定することは意図されない。様々な修正および等価物は、以下のクレームの範囲内である。
【0131】
開示した実施形態を説明する文脈における(特に、以下のクレームの文脈における)用語「1つの(a)」および「1つの(an)」および「その(the)」ならびに同様の指示対象の使用は、本明細書に別途示されるか、文脈上明白に矛盾しない限り、単数形および複数形の両方を網羅するように解釈されるものとする。用語「含む(comprising)」、「有する(having)」、「含む(including)」、および「含有する(containing)」は、別途記載のない限り、無制限の用語(すなわち、「含むがこれに限定されない」を意味する)と解釈されるものとする。用語「接続される」は、介在するものが存在するとしても、部分的または全体的に、中に含まれる、取り付けられる、または一緒に接合されると解釈されるものとする。本明細書内の値の範囲の列挙は、本明細書に別途示されない限り、その範囲内に入る各々別個の値を個別に言及する手短な方法としての役割を果たすことが意図されるにすぎず、各々別個の値は、それが本明細書に個々に列挙されるかのように、本明細書に組み込まれる。本明細書に説明されるすべての方法は、本明細書に別途示されない限り、または別途明白に文脈上矛盾のない限り、任意の好適な順序で実施され得る。任意およびすべての例の使用、または本明細書に提供される例示的な言語(例えば、「など」)は、実施形態をより明瞭にすることが意図されるにすぎず、別途特許請求されない限り、本開示の範囲を制限するものではない。本明細書内の言語は、本開示の実践に不可欠な任意の非特許請求要素を示すものと解釈されるべきではない。
【0132】
「X、Y、またはZのうちの少なくとも1つ」という表現などの離接語は、別途具体的に記載のない限り、ある項目、用語などが、X、Y、もしくはZのいずれか、またはそれらの任意の組合せ(例えば、X、Y、および/またはZ)であり得ることを提示するために一般的に使用されるものとして文脈内で理解されることが意図される。故に、そのような離接語は、ある実施形態が、Xの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つが各々存在することを必要とすることを示唆することは概して意図せず、またこれを示唆するべきではない。
【0133】
本開示を実行するために知られている最良の形態を含む、本開示の好ましい実施形態が本明細書に説明される。それらの好ましい実施形態の変異形は、先述の説明を読む際に当業者に明らかになり得る。当業者は、適宜、そのような変異形を採用することができるものとし、本開示は、本明細書に具体的に説明されるものとは別途に実践され得る。したがって、本開示は、適用法によって許可される場合、本明細書に添付されるクレームに列挙される主題のすべての修正形態および等価物を含む。さらには、そのすべての可能な変異形における上述の要素の任意の組合せは、本明細書に別途示されない限り、本開示によって包含される。
【0134】
本明細書に引用される刊行物、特許出願、および特許を含むすべての参考文献は、各参考文献が、参照により組み込まれるように個々および具体的に示され、その全体が本明細書に明記された場合と同じ程度に、本明細書に参照により組み込まれる。
【0135】
先述の明細書において、本開示の態様は、その特定の実施形態を参照して説明されるが、当業者は、本開示がそれに限定されないことを認識するものとする。上述した開示の様々な特徴および態様は、個別にまたは共同で使用され得る。さらに、実施形態は、本明細書の広範な趣旨および範囲から逸脱することなく、本明細書に説明されるものを超える任意の数の環境およびアプリケーションにおいて利用され得る。したがって、明細書および図面は、限定的ではなく例証的であると捉えられるべきである。
【0136】
追加的に、実施形態は、プロセッサによって実行されると、プロセッサに、本明細書内の本開示に説明される方法/技術のいずれかを実施させるコンピュータプログラム/命令を含むコンピュータプログラム製品を使用することによって実施され得る。
【国際調査報告】