(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-08
(54)【発明の名称】準同型暗号化を使用したセキュアなコンピューティング・リソース配置
(51)【国際特許分類】
G09C 1/00 20060101AFI20231201BHJP
【FI】
G09C1/00 650Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023532845
(86)(22)【出願日】2021-10-19
(85)【翻訳文提出日】2023-05-30
(86)【国際出願番号】 CN2021124596
(87)【国際公開番号】W WO2022121511
(87)【国際公開日】2022-06-16
(32)【優先日】2020-12-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】パラメシュワラン、プラディープ
(72)【発明者】
【氏名】パテル、ラシール
(72)【発明者】
【氏名】クワトラ、シカール
(57)【要約】
コンピューティング環境にコンピューティング・リソースを配置するための要求を受信し、準同型に暗号化されたデータ・セットを取得することによって、コンピューティング環境内でセキュアなコンピューティング・リソース配置が促進される。準同型に暗号化されたデータ・セットは、コンピューティング環境に配置されることになるコンピューティング・リソースの所望の構成についての構成関連データを含む。このプロセスは、コンピューティング・リソースの配置のための構成において準同型に暗号化されたデータ・セットを使用することをさらに含み、ここで、コンピューティング・リソースは、準同型に暗号化されたデータ・セットを解読することなく、所望の構成で配置のために構成される。
【特許請求の範囲】
【請求項1】
セキュアなコンピューティング・リソース配置を促進するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
そこで具現化されるプログラム命令を有するコンピュータ可読ストレージ媒体
を備え、
前記プログラム命令が、
コンピューティング環境にコンピューティング・リソースを配置するための要求を受信することと、
準同型に暗号化されたデータ・セットを取得することであって、前記準同型に暗号化されたデータ・セットが、前記コンピューティング環境に配置されることになる前記コンピューティング・リソースの所望の構成についての構成関連データを含む、前記取得することと、
前記コンピューティング・リソースの配置のための構成において前記準同型に暗号化されたデータ・セットを使用することであって、前記コンピューティング・リソースが、前記準同型に暗号化されたデータ・セットを解読することなく、前記所望の構成で配置のために構成される、前記使用することと
を1つまたは複数のプロセッサにさせるように、前記1つまたは複数のプロセッサによって可読である、
コンピュータ・プログラム製品。
【請求項2】
前記準同型に暗号化されたデータ・セットを使用することが、前記準同型に暗号化されたデータ・セットを解読することなく、配置のための前記コンピューティング・リソースの構成において使用するための構成設定を準同型的に識別することを含む、
請求項1に記載のコンピュータ・プログラム製品。
【請求項3】
前記プログラム命令がさらに、前記準同型的に識別された構成設定を使用して前記コンピューティング環境のセキュアなエンクレーブに前記コンピューティング・リソースを配置することを、前記1つまたは複数のプロセッサにさせる、
請求項2に記載のコンピュータ・プログラム製品。
【請求項4】
前記コンピューティング・リソースが、仮想マシンおよびコンテナからなる群から選択される、
請求項3に記載のコンピュータ・プログラム製品。
【請求項5】
前記プログラム命令がさらに、
配置されることになる前記コンピューティング・リソースについての設定テンプレートを定義することと、
受信した準同型に暗号化されたデータ・セットを生成するために使用される準同型暗号化鍵を取得することと、
前記取得した準同型暗号化鍵を使用して、前記設定テンプレートを準同型に暗号化することと
を、前記1つまたは複数のプロセッサにさせ、
構成設定を準同型的に前記識別することが、前記準同型に暗号化されたデータ・セットを解読することなく前記構成設定を識別するために、前記準同型に暗号化された設定テンプレートと、前記受信した準同型に暗号化されたデータ・セットとを比較することを含む、
請求項2に記載のコンピュータ・プログラム製品。
【請求項6】
前記設定テンプレートを定義することが、前記コンピューティング・リソースについての1つまたは複数のデフォルト構成設定を取得することを含み、
前記プログラム命令がさらに、
前記準同型に暗号化された設定テンプレートと、前記受信した準同型に暗号化されたデータ・セットとを比較することから、それぞれの構成設定を識別することに基づいて、前記1つまたは複数のデフォルト構成設定のうちのあるデフォルト構成設定を、前記識別されたそれぞれの構成設定と取り替えること
を、前記1つまたは複数のプロセッサにさせる、
請求項5に記載のコンピュータ・プログラム製品。
【請求項7】
前記プログラム命令がさらに、
前記コンピューティング・リソースを配置するための前記要求を受信することに基づいて、1つまたは複数の配置オペレータを呼び出すこと
を、前記1つまたは複数のプロセッサにさせ、
前記1つまたは複数の配置オペレータが、前記準同型に暗号化されたデータ・セットをリポジトリから取得する、
請求項1に記載のコンピュータ・プログラム製品。
【請求項8】
前記リポジトリから取得した前記準同型に暗号化されたデータ・セットが、完全性検査のためにデジタル署名され、
前記プログラム命令がさらに、
前記取得した準同型に暗号化されたデータ・セットに完全性検査を実施すること
を、前記1つまたは複数のプロセッサにさせる、
請求項7に記載のコンピュータ・プログラム製品。
【請求項9】
前記準同型に暗号化されたデータ・セットが、ブロックチェーンを使用してデジタル署名される、
請求項8に記載のコンピュータ・プログラム製品。
【請求項10】
セキュアなコンピューティング・リソース配置を促進するためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリに動作可能に結合された1つまたは複数のプロセッサと、
プログラム・コードと
を備え、
前記プログラム・コードが、
コンピューティング環境にコンピューティング・リソースを配置するための要求を受信することと、
準同型に暗号化されたデータ・セットを取得することであって、前記準同型に暗号化されたデータ・セットが、前記コンピューティング環境に配置されることになる前記コンピューティング・リソースの所望の構成についての構成関連データを含む、前記取得することと、
前記コンピューティング・リソースの配置のための構成において前記準同型に暗号化されたデータ・セットを使用することであって、前記コンピューティング・リソースが、前記準同型に暗号化されたデータ・セットを解読することなく、前記所望の構成で配置のために構成される、前記使用することと
を含む方法を実施するように、前記メモリを介して前記1つまたは複数のプロセッサによって実行可能である、
コンピュータ・システム。
【請求項11】
前記準同型に暗号化されたデータ・セットを使用することが、前記準同型に暗号化されたデータ・セットを解読することなく、配置のための前記コンピューティング・リソースの構成において使用するための構成設定を準同型的に識別することを含む、
請求項10に記載のコンピュータ・システム。
【請求項12】
前記準同型的に識別された構成設定を使用して前記コンピューティング環境のセキュアなエンクレーブに前記コンピューティング・リソースを配置することをさらに含む、
請求項11に記載のコンピュータ・システム。
【請求項13】
前記コンピューティング・リソースが、仮想マシンおよびコンテナからなる群から選択される、
請求項12に記載のコンピュータ・システム。
【請求項14】
配置されることになる前記コンピューティング・リソースについての設定テンプレートを定義することと、
受信した準同型に暗号化されたデータ・セットを生成するために使用される準同型暗号化鍵を取得することと、
前記取得した準同型暗号化鍵を使用して、前記設定テンプレートを準同型に暗号化することと
をさらに含み、
構成設定を準同型的に前記識別することが、前記準同型に暗号化されたデータ・セットを解読することなく前記構成設定を識別するために、前記準同型に暗号化された設定テンプレートと、前記受信した準同型に暗号化されたデータ・セットとを比較することを含む、
請求項11に記載のコンピュータ・システム。
【請求項15】
前記コンピューティング・リソースを配置するための前記要求を受信することに基づいて、1つまたは複数の配置オペレータを呼び出すこと
をさらに含み、
前記1つまたは複数の配置オペレータが、前記準同型に暗号化されたデータ・セットをリポジトリから取得する、
請求項10に記載のコンピュータ・システム。
【請求項16】
前記リポジトリから取得した前記準同型に暗号化されたデータ・セットが、完全性検査のためにデジタル署名され、
プログラム命令がさらに、
前記取得した準同型に暗号化されたデータ・セットに完全性検査を実施すること
を、前記1つまたは複数のプロセッサにさせる、
請求項15に記載のコンピュータ・システム。
【請求項17】
前記準同型に暗号化されたデータ・セットが、ブロックチェーンを使用してデジタル署名される、
請求項16に記載のコンピュータ・システム。
【請求項18】
コンピュータ実装方法であって、
コンピューティング環境にコンピューティング・リソースを配置するための要求を受信することと、
準同型に暗号化されたデータ・セットを取得することであって、前記準同型に暗号化されたデータ・セットが、前記コンピューティング環境に配置されることになる前記コンピューティング・リソースの所望の構成についての構成関連データを含む、前記取得することと、
前記コンピューティング・リソースの配置のための構成において前記準同型に暗号化されたデータ・セットを使用することであって、前記コンピューティング・リソースが、前記準同型に暗号化されたデータ・セットを解読することなく、前記所望の構成で配置のために構成される、前記使用することと
を含む、コンピュータ実装方法。
【請求項19】
前記準同型に暗号化されたデータ・セットを使用することが、前記準同型に暗号化されたデータ・セットを解読することなく、配置のための前記コンピューティング・リソースの構成において使用するための構成設定を準同型的に識別することを含む、
請求項18に記載のコンピュータ実装方法。
【請求項20】
配置されることになる前記コンピューティング・リソースについての設定テンプレートを定義することと、
受信した準同型に暗号化されたデータ・セットを生成するために使用される準同型暗号化鍵を取得することと、
前記取得した準同型暗号化鍵を使用して、前記設定テンプレートを準同型に暗号化することと
をさらに含み、
構成設定を準同型的に前記識別することが、前記準同型に暗号化されたデータ・セットを解読することなく前記構成設定を識別するために、前記準同型に暗号化された設定テンプレートと、前記受信した準同型に暗号化されたデータ・セットとを比較することを含む、
請求項19に記載のコンピュータ実装方法。
【発明の詳細な説明】
【背景技術】
【0001】
クラウド・コンピューティングは、コンシューマまたはユーザによる指示されたアクティブな管理なしに、データ・ストレージおよびコンピューティング・パワーなどのサービスをオン・デマンドで提供するネットワーク要素のグループを指す。クラウド・コンピューティングは、リソースの共有に依拠して、コヒーレンス(coherence)および規模の経済を実現する。
【0002】
クラウド・コンピューティングは、「サービスとしてのインフラストラクチャ」(IaaS)、「サービスとしてのプラットフォーム」(PaaS)、または「サービスとしてのソフトウェア」(SaaS)、あるいはその組合せなどの形式で、インターネットの上のサービスとして提供され得る。サービスとしてのプラットフォーム(PaaS)プロバイダにより、コンシューマは、PaaSプロバイダによってサポートされたプログラム言語、ライブラリ、サービス、およびツールを使用して作成されたコンシューマ・リソースを、PaaSクラウド・インフラストラクチャ上に配置することが可能になる。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎を成すクラウド・インフラストラクチャを管理または制御しないものの、配置されたアプリケーションに対する制御を有する。サービスとしてのプラットフォーム(PaaS)プロバイダは、オペレーティング・システム、プログラミング言語実行環境、データベース、およびウェブ・サーバを通常含むコンピューティング・プラットフォームを提案し、コンシューマまたはユーザは、基礎を成すハードウェア・レイヤおよびソフトウェア・レイヤを取得して維持するのではなく、クラウド・プラットフォーム上でソフトウェアを開発して稼働する(run)。
【発明の概要】
【0003】
セキュアなコンピューティング・リソース配置(deployment)を促進するための1つまたは複数の態様におけるコンピュータ・プログラム製品の提供を通して、先行技術の一定の短所が克服され、さらなる利点が提供される。このコンピュータ・プログラム製品は、そこで具現化されるプログラム命令を有するコンピュータ可読ストレージ媒体を含む。プログラム命令は、コンピューティング環境にコンピューティング・リソースを配置するための要求を受信することと、準同型に暗号化されたデータ・セットを取得することとを、1つまたは複数のプロセッサにさせるように、1つまたは複数のプロセッサによって可読である。準同型に暗号化されたデータ・セットは、コンピューティング環境に配置されることになるコンピューティング・リソースの所望の構成についての構成関連データを含む。プログラム命令はさらに、コンピューティング・リソースの配置のための構成において準同型に暗号化されたデータ・セットを使用することを、1つまたは複数のプロセッサにさせ、ここで、コンピューティング・リソースは、準同型に暗号化されたデータ・セットを解読する(decrypt)ことなく、所望の構成で配置のために構成される。
【0004】
1つまたは複数の態様に関連したコンピュータ・システムおよびコンピュータ実装方法がまた本明細書中で説明され、特許請求される。さらに、1つまたは複数の態様に関連したサービスもまた本明細書中で説明され、特許請求されてもよい。
【0005】
さらなる特徴は、本明細書中で説明される技術を通して現実化される。他の実施形態および態様は、本明細書中で詳細に説明され、特許請求される態様の一部とみなされる。
【0006】
本発明の1つまたは複数の態様は、本明細書の結びにある特許請求の範囲において、例として個別に指摘され、明確に特許請求される。本発明の1つまたは複数の態様の上述事項、ならびに目的、特徴、および利点は、添付の図面と併せて読まれる以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0007】
【
図1】本発明の1つまたは複数の態様に従って処理を実装することができるデータ処理システムの1つの実施形態のブロック図である。
【
図2】本発明の1つまたは複数の態様に従って本発明の一実施形態のさまざまな態様が実装され得るコンピューティング環境の図である。
【
図3】本発明の1つまたは複数の態様に従ってコンピューティング環境内でセキュアなコンピューティング・リソース配置を促進するためのプロセスの1つの実施形態の図である。
【
図4】本発明の1つまたは複数の態様に従ったセキュアなコンピューティング・リソース配置処理の1つまたは複数の実施形態において使用することができる準同型暗号化処理の1つの実施形態の図である。
【
図5】本発明の一実施形態の1つまたは複数の態様を実装するコンピューティング環境およびプロセス・フローの図である。
【
図6】本発明の1つまたは複数の態様に従ったセキュアなコンピューティング・リソース配置の1つのプロセスの実施形態の図である。
【
図7】本発明の1つまたは複数の態様に従ったコンピューティング・リソース配置のための設定の構成において、準同型に暗号化され、デジタル署名され、コンピューティング環境によって使用されるサンプル構成データ・セットの図である。
【
図8】本発明の一実施形態の一定の態様の実装を促進する、またはそれらに関連付けて使用することができる、クラウド・コンピューティング環境の1つの実施形態の図である。
【
図9】本発明の一実施形態による抽象化モデル・レイヤの図である。
【発明を実施するための形態】
【0008】
別々の図全体を通して同様の参照番号が同一のまたは機能的に類似した要素を指し、本明細書に組み込まれてその一部を形成する添付の図面は、本発明をさらに例証し、本発明の詳細な説明と共に本発明の態様を解説する役割を果たしている。この点において、よく知られたシステム、デバイス、処理技術、その他の説明は、詳細における本発明を不必要に曖昧にしないように省略されていることに留意されたい。しかしながら、詳細な説明およびこの具体的な例は、本発明の態様を示しながらも、限定としてではなく、例証のみとして与えられていることを理解すべきである。基礎を成す発明概念の思想または範囲内でのさまざまな置換、修正、追加、または他の措置(arrangement)、あるいはその組合せが、本開示から当業者には明らかであろう。数々の発明の態様および特徴が本明細書中で開示され、矛盾のない限り、それぞれの開示された態様または特徴は、本明細書中で開示された概念の特定の実施形態に対する所望に応じて、いずれかの他の開示された態様または特徴と組合せ可能であることにさらに留意されたい。
【0009】
例証となる実施形態は、限定としてではなく例のみとして、具体的なコード、設計、アーキテクチャ、プロトコル、レイアウト、概略図、またはツールを使用して下で説明されていることにもまた留意されたい。さらに、例証となる実施形態は、説明のわかりやすさのために、例のみとしての特定のソフトウェア、ツール、またはデータ処理環境を使用する一定のインスタンスにおいて説明されている。例証となる実施形態は、他の匹敵した、または同様の目的とされる構造体、システム、アプリケーション、またはアーキテクチャと併せて使用されてもよい。例証となる実施形態の1つまたは複数の態様は、ハードウェア、ソフトウェア、またはその組合せで実装されてよい。
【0010】
当業者によって理解されるように、本出願中で呼ばれるときのプログラム・コードは、ソフトウェアとハードウェアの両方を含むことができる。たとえば、本発明の一定の実施形態におけるプログラム・コードは、固定機能ハードウェアを含むことができ、一方で他の実施形態は、説明された機能性のソフトウェア・ベースの実装形態を利用することができる。一定の実施形態は、両方のタイプのプログラム・コードを組み合わせる。1つまたは複数のプログラムともまた呼ばれるプログラム・コードの1つの例が、コンピュータ可読プログラム命令134、ならびにアプリケーション・プログラム130、およびセキュアなコンピューティング・リソース配置のためのコード136として
図1に図示されており、それらのうちの1つまたは複数は、コンピュータ・システム102のメモリ106に記憶されていてよい。さらなる例には、
図1のデータ・ストレージ・デバイス144におけるプログラム146およびコンピュータ可読プログラム命令148が含まれる。
【0011】
図を参照すると、とりわけ、
図1を参照すると、例証となる実施形態の1つまたは複数の態様を実装することができるデータ処理環境の例示的な図面が示されている。
図1は一例にすぎず、異なる実施形態を実装することができる環境に関していかなる限定を主張または含意することも意図されていない。特定の実装形態は、以下の説明に基づいて、図示された環境に多くの修正を行うことができる。
【0012】
図1を参照すると、触れたように、この図は、本発明の1つまたは複数の態様を実装することができるデータ処理システムのブロック図を図示する。データ処理システム100は、サーバ、または他のタイプのデバイスなどのコンピュータの一例であり、そこには、例証となる実施形態についての1つまたは複数のプロセスを実装するコンピュータ使用可能なプログラム・コードまたは命令が位置していてよい。
【0013】
図1に示されるように、データ処理システム100は、たとえば、汎用コンピューティング・デバイスなどの形式で示されるコンピュータ・システム102を含む。コンピュータ・システム102は、1つもしくは複数のバスまたは他の接続110あるいはその両方を介して互いに結合された、1つもしくは複数のプロセッサまたは処理ユニット104(たとえば、中央処理ユニット(CPU))、メモリ106(例としてメイン・メモリまたはストレージと呼ばれる)、および1つまたは複数の入力/出力(I/O)インターフェース108を含むことができるが、これらに限定はされない。
【0014】
プロセッサ104は、命令を実行するために使用される複数の機能コンポーネントを含む。これらの機能コンポーネントには、たとえば、実行されるべき命令をフェッチするための命令フェッチ・コンポーネント、フェッチされた命令を復号し、復号された命令のオペランドを取得するための命令復号ユニット、復号された命令を実行するための命令実行コンポーネント、必要であれば、命令実行のためにメモリにアクセスするためのメモリ・アクセス・コンポーネント、および実行された命令の結果を提供するための書き戻しコンポーネントが含まれる。
【0015】
バス110は、多様なバス・アーキテクチャのうちのいずれかを使用するメモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかのうちの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャには、業界標準アーキテクチャ(ISA)、マイクロ・チャネル・アーキテクチャ(MCA)、拡張ISA(EISA)、ビデオ・エレクトロニクス標準アソシエーション(VESA)ローカル・バス、および周辺コンポーネント相互接続(PCI)が含まれる。
【0016】
メモリ106は、たとえば、プロセッサ104のローカル・キャッシュ122に結合されてよい共有キャッシュなどのキャッシュ120を含むことができる。さらに、メモリ106は、1つまたは複数のプログラムまたはアプリケーション130、オペレーティング・システム132、および1つまたは複数のコンピュータ可読プログラム命令134、ならびに、たとえば、本明細書中で議論されるように、ホスト・コンピューティング環境のセキュアなエンクレーブ(enclave)内で仮想マシン(VM)またはコンテナあるいはその両方のセキュアな配置を促進するためのセキュアなコンピューティング・リソース配置のためのプログラム・コード136を含むことができる。追加として、または代替として、コンピュータ可読プログラム命令134は、本発明の一定の実施形態の1つまたは複数の他の機能を遂行するように構成されてもよい。
【0017】
コンピュータ・システム102はまた、たとえば、I/Oインターフェース108を介して、1つもしくは複数の外部デバイス140と、1つもしくは複数のネットワーク・インターフェース142と、または1つもしくは複数のデータ・ストレージ・デバイス144と、あるいはその組合せと通信することができる。例示的な外部デバイスには、ユーザ端末、テープ・ドライブ、ポインティング・デバイス、ディスプレイ、その他が含まれる。ネットワーク・インターフェース142は、ローカル・エリア・ネットワーク(LAN)、一般のワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(たとえば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、コンピュータ・システム102が通信するのを可能にし(enable)て、他のコンピューティング・デバイスまたはシステムとの通信を提供する。
【0018】
データ・ストレージ・デバイス144は、1つもしくは複数のプログラム146、1つもしくは複数のコンピュータ可読プログラム命令148、またはデータ、あるいはその組合せ、その他を記憶することができる。コンピュータ可読プログラム命令は、本発明の1つまたは複数の態様の機能を遂行するように構成されてよい。
【0019】
コンピュータ・システム102は、リムーバブル/非リムーバブルな、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体を含むこと、またはそれらに結合されること、あるいはその両方ができる。たとえば、コンピュータ・システム102は、非リムーバブルな不揮発性の磁気媒体(通常「ハード・ドライブ」と呼ばれる)、リムーバブルな不揮発性の磁気ディスク(たとえば、「フロッピー(R)・ディスク」)から読み出し、そこに書き込むための磁気ディスク・ドライブ、および/または、CD-ROM、DVD-ROM、もしくは他の光学媒体などのリムーバブルな不揮発性の光学ディスクから読み出すか、もしくはそこに書き込むための光学ディスク・ドライブを含むこと、またはそれらに結合されること、あるいはその両方ができる。他のハードウェア・コンポーネント、またはソフトウェア・コンポーネント、あるいはその両方が、コンピュータ・システム102と併せて使用され得ることを理解すべきである。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム、その他が含まれるが、それらに限定はされない。
【0020】
コンピュータ・システム102は、数々の他の汎用もしくは特殊目的コンピューティング・システムの環境または構成と動作可能であってよい。コンピュータ・システム102との使用に好適なよく知られたコンピューティング・システム、環境、または構成、あるいはその組合せの例には、パーソナル・コンピュータ(PC)システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上のシステムまたはデバイスのいずれかを含むクラウド・コンピューティング環境、ならびにその他が含まれるが、それらに限定はされない。
【0021】
触れたように、
図1の図示された例は、アーキテクチャの限定を含意することは意味しない。さらに、触れたように、
図1のデータ処理システム100は、たとえば、サーバ、ワークステーション、タブレット・コンピュータ、ラップトップ・コンピュータ、または他のコンピューティング・デバイスであってもよい。
【0022】
触れたように、クラウド・コンピューティングは、「サービスとしてのプラットフォーム」(PaaS)などの、インターネットの上のサービスとして提供されてよい。動作(operation)において、PaaSプロバイダにより、ユーザまたはコンシューマは、仮想マシンまたはコンテナなどのコンピューティング・リソースをクラウド・インフラストラクチャ上に配置して、1つもしくは複数のユーザ・アプリケーションまたはワークロードを稼働することが可能になる。情報技術コンピューティング環境においては、たとえば、ユーザ・ワークロードならびにその下にあるシステムを稼働するための1つまたは複数のコンピューティング・リソースの構成の自動化を提供するオペレータ・フレームワークが、通常提供される。ライフサイクル管理処理は、通常、オペレータ・フレームワークの一部である。
【0023】
具体的な例として、ニューヨーク州(USA)、アーモンクのInternational Business Machines Corporationによって提案されるIBM(R)System/zコンピューティング・システムは、高度にセキュアなやり方で多くの複雑なワークロードに対処することができる。たとえば、ノース・カロライナ州(USA)、ローリーのRed Hat(R)によって提供されるOpenShift(R)技術を使用して、IBM(R)System/zは、クラウド・ベースのモデルにおけるワークロードの動的配置を提供することができる。1つまたは複数の実装形態において、OpenShift(R)技術は、Red Hat(R)によって提案されるCoreOS(R)オペレーティング・システムを援護下で使用するOpenShift(R)コンテナ・プラットフォームを含む。CoreOS(R)システムは、不変とみなされ、Linux(R)カーネルに基づいたオープン・ソースの軽量なオペレーティング・システムであり、自動化、アプリケーション開発の容易さ、セキュリティ、信頼性、およびスケーラビリティに焦点を合わせながら、クラスタ化された配置へのインフラストラクチャを提供するために設計されている(ここで、Linux(R)は、Linus Torvaldsの登録商標である)。そのような複雑なコンピューティング環境を管理することは、難題であり、厳密な制御を必要とする。たとえば、高度にセキュアにされた環境にいかなる変更を行うことも、常に監視されるべきであり、制御されたやり方で行われるべきである。OpenShift(R)技術は、オペレータ・フレームワークを提供して、OpenShift(R)クラウド・プラットフォームにおいて変更を行う、またはセットアップを自動化する、あるいはその両方を行う。高度にセキュアな環境上でオペレータ・フレームワークに基づいてオペレータを使用することは、ユーザまたはコンシューマによって提供された構成設定をクラウド・オペレータが改竄できないようにすべきなどの、追加のセキュリティ対策を必要とする。たとえば、1つまたは複数の実施形態において、構成設定または行われる変更を認証する(attest)ために、1つまたは複数の信頼できるエンティティを提供することができる。さらに、ユーザのコンピューティング・リソース(たとえば、VMまたはコンテナ)が所望通りの動作のためにセキュアに配置されているという確信をユーザが持てるように、構成プロセスは、改竄防止性であるべきである。
【0024】
図2は、本明細書中で開示される1つまたは複数の態様が実装され得る技術的環境の1つの実施形態を例証する。例証されるように、技術的環境200は、1つまたは複数のユーザ・システム205を含み、ユーザ・システム205は、1つまたは複数のネットワーク201を介して、クラウド・ベースのコンピューティング環境210などのホスト・コンピューティング環境に動作可能に結合する。
【0025】
1つまたは複数の実装形態において、ユーザ・システム205は、1つまたは複数のネットワーク201によってコンピューティング環境210に動作可能に結合されたユーザまたはコンシューマのコンピュータ・システムまたはネットワークである。例のみとして、1つまたは複数のネットワーク201は、1つもしくは複数のバス、もしくは他のリンク、電気通信ネットワーク、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、またはそれらの組合せであっても、あるいはそれらを含んでもよく、ワイヤード、ワイヤレス、光ファイバ接続、その他を含むことができる。ネットワークは、実装形態に応じて、本明細書中で説明されるデータ、ならびに他のデータなどのデータを受信し、送信する能力がある1つまたは複数のワイヤード、またはワイヤレス、あるいはその両方のネットワークを含むことができる。
【0026】
ホスト・コンピューティング環境210は、1つの実施形態において、クラウド・ベースの環境において分散されてよい1つまたは複数のコンピューティング・システムまたは処理環境を含む。
図2に例証される実施形態において、ホスト・コンピューティング環境210は、例として、暗号化されたデータ・セットを完全性検査するためのデジタル署名サーバ211と、暗号化されたデータ・セットを保持するためのリポジトリ212と、ホスト・コンピューティング環境210上でユーザ・コンピューティング・リソース215を構成および配置することを促進するための1つまたは複数のオペレータ214を含む配置エンジン213とを含む。触れたように、1つまたは複数の実施形態において、コンピューティング・リソース215は、ユーザのワークロードまたはアプリケーションを稼働するためにセキュアに構成されることになる、1つもしくは複数の仮想マシン、または1つもしくは複数のコンテナ、あるいはその両方であってもよい。
【0027】
一般的に述べれば、1つまたは複数の実施形態において、ユーザ・システムでユーザの構成設定データまたはファイルを準同型に暗号化し、準同型に暗号化されたデータ・セットをホスト・コンピューティング環境でオペレータ処理するためにセキュアに送信するための、コンピュータ・システム、コンピュータ・プログラム製品、およびコンピュータ実装方法が本明細書中で提供される。クラウド・ベースの環境におけるクラウド・オペレータ処理などのオペレータ処理は、自動化されたフレームワークを介して、構成データ・セットの内容(content)を知ることなく、ユーザのリソース構成の配置を促進するようにプログラムされる。自動化されたフレームワークは、1つまたは複数のオペレータを使用し、このオペレータは、不変の環境において必要なデータ操作および解析を行うために、かつユーザの構成データの完全性が維持されていることを保証するために、準同型に暗号化されたデータ・セット上で機能する(たとえば)プログラム・コードまたはコンテナである。1つの実施形態において、配置エンジンは、たとえば、配置されることになる特定のコンピューティング・リソース・タイプについての構成設定の標準テンプレートを管理する1つまたは複数のオペレータを配置し、ユーザ・システムから受信した準同型に暗号化されたデータ・セットにおいて1つまたは複数のそれぞれのユーザ定義された設定を見つける。オペレータ・フレームワークはまた、取得した暗号化されたデータ・セットを完全性検査するための認証プロセスを実装して、ユーザ・システムから実際に発生したデータ・セットおよびその完全性が維持されていることを保証する。
【0028】
図3は、本発明の1つまたは複数の態様に従ってコンピューティング環境内でセキュアなコンピューティング・リソース配置を促進するためのプロセスの1つの実施形態を例証する。
図3のプロセスの実施形態は、コンピュータ実装方法、コンピュータ・システム、およびコンピュータ・プログラム製品を含むことができ、ここで、1つまたは複数のプロセッサ上で実行されるプログラム・コードが、コンピューティング環境にコンピューティング・リソースをセキュアに配置するための要求を受信し(300)、コンピューティング環境に配置されることになるコンピューティング・リソースの所望の構成についての構成データを含む準同型に暗号化されたデータ・セットを取得する(302)。本発明の実施形態はまた、配置に先立って、準同型に暗号化されたデータ・セットを解読することなく、所望の構成でコンピューティング・リソースの配置について構成するまたは定義することにおいて、準同型に暗号化されたデータ・セットを使用する(304)プログラム・コードを含む。
【0029】
一定の実施形態において、準同型に暗号化されたデータ・セットを使用することは、準同型に暗号化されたデータ・セットを解読することなく、配置のためのコンピューティング・リソースの構成において使用するための構成設定を準同型的に識別することを含む。1つまたは複数の実施形態において、プログラム・コードは、準同型的に識別された構成設定を使用して、コンピューティング環境のセキュアなエンクレーブにコンピューティング・リソースを配置するために提供される。1つまたは複数の実施形態において、コンピューティング・リソースは、ユーザのワークロードまたはアプリケーションを稼働するための仮想マシンまたはコンテナである。
【0030】
本発明の1つまたは複数の実施形態において、プログラム・コードは、配置されることになるコンピューティング・リソースについての設定テンプレート、および受信した準同型に暗号化されたデータ・セットを生成するために使用される取得した準同型暗号化鍵を定義し、ならびに取得した準同型暗号化鍵を使用して設定テンプレートを準同型に暗号化するために提供される。1つの実施形態において、構成設定を準同型的に識別することは、準同型に暗号化されたデータ・セットを解読することなく構成設定を識別するために、準同型に暗号化された設定テンプレートと、受信した準同型に暗号化されたデータ・セットとを比較することを含む。さらに、1つの実施形態において、設定テンプレートを定義することは、コンピューティング・リソースについての1つまたは複数のデフォルト構成設定を取得することと、準同型に暗号化された設定テンプレートと受信した準同型に暗号化されたデータ・セットとを比較するときにそれぞれの構成設定を識別することに基づいて、1つまたは複数のデフォルト構成設定のうちのあるデフォルト構成設定を、識別されたそれぞれの構成設定と取り替えることとを含むことができる。
【0031】
本発明の1つまたは複数の実施形態において、プログラム・コードは、コンピューティング・リソースを配置するための要求を受信することに基づいて、1つまたは複数の配置オペレータを呼び出すために提供される。1つまたは複数の配置オペレータは、準同型に暗号化されたデータ・セットをリポジトリから取得する。1つの実施形態において、リポジトリから取得した準同型に暗号化されたデータ・セットは、完全性検査を促進するためにデジタル署名され、プログラム・コードは、取得した準同型に暗号化されたデータ・セットに完全性検査を実施するために提供される。1つの実施形態において、準同型に暗号化されたデータ・セットは、ブロックチェーンを使用してデジタル署名される。
【0032】
本発明の実施形態は、コンピューティングに密接に結びついており、コンピューティング環境内にコンピューティング・リソースを配置する既存のアプローチよりも極めて多くのものを提供する。たとえば、本発明の実施形態は、暗号化されたデータ・セットを解読することなく、コンピューティング環境上に配置されることになるコンピューティング・リソースについての所望の構成を取得するために、さまざまなシステムの相互接続性を活用し、ならびにさまざまなコンピューティング中心のデータ解析および対処技術を利用する、1つまたは複数のプロセッサ上で実行されるプログラム・コードを提供する。プログラム・コードによって利用されるコンピューティング・システムの相互接続性と、利用されるコンピュータ専用のデータ処理技術との両方が、本発明のさまざまな態様を可能にする。さらに、本発明の実施形態は、コンピューティング・リソースを配置することに先立って、暗号化されるコンピューティング・リソースについての構成データ・セットを維持することによって、コンピューティング環境内にコンピューティング・リソースを配置する既存のアプローチよりも極めて多くのものを提供する。
【0033】
本発明の実施形態において、プログラム・コードは、1)コンピューティング環境にコンピューティング・リソースを配置するための要求を受信するプログラム・コード、2)コンピューティング環境に配置されることになるコンピューティング・リソースの所望の構成についての構成関連データを含む準同型に暗号化されたデータ・セットを取得するプログラム・コード、および3)コンピューティング・リソースの配置のための構成において準同型に暗号化されたデータ・セットを使用するプログラム・コードを含むが、それらに限定はされない極めて多くの機能性を提供し、ここで、コンピューティング・リソースは、準同型に暗号化されたデータ・セットを解読することなく、所望の構成で配置のために構成される。
【0034】
触れたように、本明細書中で説明される1つまたは複数の実施形態は、準同型に暗号化されたデータ・セットを部分的に使用して、セキュアなコンピューティング・リソース配置を促進する。準同型暗号化は、最初にデータを解読することなく、暗号化されたデータに計算が実施されるのを見越した(allow for)暗号化のタイプである。計算の結果は、暗号化された形式であり、解読されるとき、あたかも暗号化されていないデータに演算が実施されたかのように出力が同じである。とりわけ、準同型暗号化は、私有鍵(private key)を知ることなく(すなわち、解読なしに)暗号化されたデータに演算が実施されるのを見越している。準同型暗号化は、暗号化されたデータの上で異なるクラスの計算を実施することができる多数のタイプの暗号化アプローチを含む。これらは、部分的に準同型の、いくぶん準同型の、平準化された完全準同型の(leveled-fully-homomorphic)、および完全準同型の暗号化を含む。完全準同型暗号化は、暗号文への任意の計算をサポートする暗号システムである。
【0035】
例として、
図4は、準同型暗号化の1つの実施形態を例証する。
図4において、信頼できるドメイン400が、信頼できないドメイン410に1つまたは複数の計算412をアウトソーシングするコンピューティング環境が例証されている。示されるように、元の数字のセットなどの平文データ401は、(量子耐性である)格子暗号法を使用することなどによって完全に準同型に暗号化されて(402)、暗号文としての暗号化されたデータ・セット411を、信頼できないドメイン410に提供する。信頼できないドメイン410は、1つまたは複数の完全準同型暗号化(FHE)計算412を実施することを促進するために、信頼できるドメイン400における鍵管理モジュールまたはサーバ404から関連付けられた公開鍵(public key)を取得する。暗号化形式での演算の計算結果413は次いで、解読405のために信頼できるドメイン400に戻されて、暗号化されていない出力406を取得する。触れたように、準同型暗号化は、有利なことに、データへのアクセスを提供することなくデータの処理を可能にする。これは、1つの実施形態において、データの解読を必要とするのではなく、暗号化されたデータそれ自体に計算を実施することを含む。準同型暗号化は、さまざまな世代の完全準同型暗号化(FHE)スキームを実装して所望の暗号化を提供する、いくつかのオープン・ソースのFHEライブラリのうちのいずれかを使用して提供されてよい。たとえば、利用可能な準同型暗号化実装形態のリストが、Homomorphicencryption.org Industry Standards Consortiumによって維持されている。
【0036】
図5および
図6は、本発明の1つまたは複数の態様に従ったセキュアなコンピューティング・リソース配置のためのコンピューティング環境およびプロセス・フローの1つの実施形態を図示する。
【0037】
最初に
図5を参照すると、1つまたは複数のユーザ・システム510を含む技術的環境500の1つの実施形態が例証されており、ユーザ・システム510は、1つまたは複数のサード・パーティ・コンピューティング環境と動作可能に通信するユーザまたはコンシューマの1つまたは複数のオン・プレミスのコンピュータ・システムであってよく、このサード・パーティ・コンピューティング環境は、たとえば、署名または認証サーバ・システム520、リポジトリ530、およびユーザの所望のコンピューティング・リソースをセキュアに配置することになるクラウド・コンピューティング環境などのホスト・コンピューティング環境540を含む。触れたように、1つまたは複数の実施形態において、配置されることになるコンピューティング・リソースは、たとえば、ユーザのワークロードまたはアプリケーションを内密に稼働することになる仮想マシンである。1つまたは複数の他の実施形態において、配置されることになるコンピューティング・リソースは、1つまたは複数のコンテナを含む。理解されるように、クラウド・コンピューティングにおけるコンテナは、システム仮想化を動作させるアプローチである。単一のコンテナが、小さなマイクロサービスまたはソフトウェア・プロセスからより大きなアプリケーションまで、どんなものでも稼働するために使用され得る。コンテナ内部には、すべての必須の実行可能なバイナリ・コード、ライブラリ、および構成ファイルが提供されている。
【0038】
図5および
図6をひとまとめに参照すると、本明細書中で説明される1つまたは複数の態様に従ったセキュアなコンピューティング・リソース配置プロセスの1つの実施形態は、コンシューマまたはユーザが、コンピューティング・リソース設定、とりわけ、オペレータ構成ファイル511(
図5)の作成(610)(
図6)を開始することを含む。ユーザ・システムは次いで、1つの実施形態において、完全準同型暗号化(FHE)を使用して暗号化されるデータ・セットの準備を呼び出す(612)。暗号化プロセスは、1つの実施形態において、セキュアな鍵および公開鍵を生成する(614)(
図6)鍵管理モジュール、プロセス、サーバ、その他512(
図5)を介して取得された1つまたは複数の秘密鍵または私有鍵を使用する。生成されたセキュアな鍵は、たとえば、完全準同型暗号化を使用してデータを暗号化する(616)ために使用されて、準同型に暗号化されたデータ・セットまたは準同型に暗号化された構成ファイル513(
図5)をもたらす。
図6に例証されるように、鍵をフェッチするための情報は、ペイロード内容に公開鍵で署名する(620)ために、暗号化されたデータ・セットを、(ホスト・ベースの、またはクラウド・ベースのサーバであってよい)署名または認証サーバ520に転送する前に、ペイロードに追加されてよい(618)。例証される実施形態において、署名済みの準同型に暗号化されたデータ・セットは、リポジトリ530に記憶されてよく(622)(
図6)、リポジトリ530は、一実装形態において、ホスト・ベースの、またはクラウド・ベースのリポジトリである。
【0039】
図6に例証されるように、ユーザ・システムまたはコンシューマ・システムは、ホスト・ベースのコンピューティング環境においてコンピューティング・リソース(たとえば、仮想マシンまたはコンテナ)を作成することを決定する。この一部として、ユーザは、コンピューティング環境に、とりわけユーザ要求を処理し始める(630)(
図6)オペレータ配置エンジン542(
図5)に、要求を送る。配置エンジンは、リポジトリ530から、暗号化されたデータ・セットまたはペイロードを部分的にフェッチするために、1つまたは複数の配置オペレータを呼び出す(632)(
図6)。オペレータは、ホスト・ベースのコンピューティング環境においてコンピューティング・リソース・セットアップを支援する1つまたは複数のエージェントまたはユーティリティであり、1つまたは複数の実施形態においては、コンテナの集まりであってよい。図示された実装形態において、署名済みの暗号化されたデータ・セットがなおも適正であり、改竄されていないことを保証するために、完全性検査634(
図6)が実施される。このプロセスの一部として、完全性検査が行われることを見越すために、適用可能な署名情報が署名サーバ520からフェッチされる。適正でない場合、コンピューティング・リソース配置プロセスは、終了する(635)(
図6)。触れたように、1つの実施形態において、署名済みの暗号化されたデータは、ブロックチェーンを使用して実装されてよい。
【0040】
図6に例証されるように、所望のコンピューティング・リソース(たとえば、仮想マシンまたはコンテナあるいはその両方)に基づいて、構成設定についての設定テンプレートが定義される(636)。1つまたは複数の実施形態において、設定テンプレートを定義することは、リソース・タイプについての標準テンプレートを提供することを含むことができ、そのテンプレートに1つまたは複数のデフォルト構成設定値を提供することを含むことができる。設定テンプレートは、取得されると、ユーザの構成設定ファイルを暗号化するのに使用されたのと同じ準同型私有鍵を使用して、準同型に暗号化される(638)(
図6)。準同型私有鍵は、ユーザ・システムに関連付けられた鍵管理サーバ512(
図5)から取得されてよい。一実装形態において、結果としての準同型に暗号化された設定テンプレートは、構成され、配置されることになるコンピューティング・リソースについてのすべての標準構成設定を含む。本質的に、設定テンプレートは、デフォルト設定のセットを含み、そのうちの1つまたは複数が、取り出された準同型に暗号化されたデータ・セットとの比較に基づいて置換されてよい。とりわけ、一実装形態において、オペレータ処理は、2つの準同型に暗号化されたデータ・セット、すなわち、ユーザ・システムからの1つと、ホスト・システムが生成したもう1つとを比較して、コンピューティング・リソースについての1つまたは複数のユーザ所望の構成設定を識別する。この比較は、たとえば、既存の準同型比較方法を使用して準同型的に行われ、ユーザによって所望された構成設定が識別されるとき、暗号化された設定テンプレートは、それに応じて更新され(642)(
図6)、処理は、設定テンプレートにおける1つまたは複数の構成設定について繰り返す(644)(
図6)。とりわけ、このプロセスは、暗号化されたデータ・セットにおいて、ユーザが提供した構成設定または定義のそれぞれについて繰り返し、配置のための定義が取得されると、コンピューティング・リソースが配置される。
【0041】
図6に例証されるように、ホスト・コンピューティング環境のホスト・クラウド管理者は、
図6のセキュアなコンピューティング・リソース配置処理の間、構成設定の解読されたバージョンにアクセスすることができない。たとえば、管理者は、コンピューティング・リソースの配置を管理することはできるが、リソースが配置されるまで暗号化されたフォーマットのままである構成設定を知ることはできない。
図6の実施形態において、準同型に暗号化されたデータ・セット、および配置定義の構成、ならびにコンピューティング・リソースの配置646の比較は、すべてホストまたはクラウド・コンピューティング環境のセキュアなエンクレーブ601内で行われる。この処理は、コンピューティング・リソースを配置することに先立ってデータを解読することなく、準同型に暗号化されたデータを使用して行われる。
【0042】
例として、
図7は、構成ファイル項目700の1つの実施形態を例証し、ここでは、たとえば、config_parameter「SELinux」が有効化され、ユーザの秘密鍵で準同型に暗号化されていること(712)が示された結果としてのペイロード710を伴う。別の構成パラメータ「Security Context Constraints(SCC)」もまた、この例中で有効化されていることが示され、ペイロードに示された対応する暗号化されたデータ・セットを有する。触れたように、本明細書中で開示される処理は、準同型に暗号化されたデータ・セット上で機能する。とりわけ、配置エンジン・プロセスが発したホスト配置オペレータは、暗号化されたペイロード710を使用し、暗号化されたデータ・セットの完全性検査のために署名サーバから公開鍵を最初に取得する。完全性検査が適正であると想定すると、処理は、ホスト・システム(たとえば、クラウド・コンピューティング環境)上で動作するオペレータを用いて、構成データ・セットを準同型的に確認して、特定の暗号化されたデータ・セット値を確認し、この暗号化されたデータ・セット値は次いで、上で議論されたのと同じ秘密鍵でそれ自体もまた暗号化されている設定テンプレートを更新する(722)ために使用される。ホスト・システムは次いで、本明細書中で説明されたように、構成設定について結果としての暗号化された配置定義を使用して、コンピューティング・リソースを配置する(724)。
【0043】
当業者であれば、上の説明から、たとえば、準同型暗号化を使用してユーザ・システムで構成ファイルの内容を暗号化することと、暗号化された構成ファイルをオペレータ・パッケージ・データセット(またはブロブ)として送ることとを含むプロセスを使用し、クラウド管理者などのホスト・システム管理者が暗号化された内容へのアクセスを持たない、セキュリティに敏感なコンピューティング環境を構成するための、コンピュータ・プログラム製品、コンピュータ・システム、およびコンピュータ実装方法が本明細書中で提供されていることに留意するであろう。暗号化されたデータ・セットの完全性が維持されていることを保証するために認証が実施され、それによって、パッケージに存在する内容の改竄を阻止する。本明細書中で説明されたように、配置されたホスト・システム・オペレータが所望に応じてコンピューティング・リソースを構成することに応答して、たとえば、アクション・タグに基づいて、構成ファイルの暗号化された内容へのアクセスは無効にされる。1つまたは複数の実装形態において、このプロセスは、このプロセスの相互検証のためにブロックチェーン・ネットワークに沿って完全性検査を強化するための認証パターンを記録することをさらに含むことができる。1つまたは複数の実施形態において、本明細書中で説明された処理は、ホスト・コンピューティング環境において実装されるKubernetesフレームワークに関連付けて利用されてもよい。
【0044】
本発明の1つまたは複数の態様を実装するためのコンピューティング環境のさらなる例示的な実施形態が、
図8~
図9を参照して下で説明される。
【0045】
1つまたは複数の態様は、クラウド・コンピューティングに関連しても、またはクラウド・コンピューティングを使用してもよい。
【0046】
本開示はクラウド・コンピューティングについての詳細な説明を含むものの、本明細書中で列挙される一定の教示の実装形態は、クラウド・コンピューティング環境には限定されないことがあらかじめ理解される。むしろ、本発明の実施形態は、現在知られている、または後に開発される任意の他のタイプのコンピューティング環境と併せて実装される能力がある。
【0047】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとの相互作用で、迅速にプロビジョニングされ、リリースされ得る、構成可能なコンピューティング・リソース(たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利でオン・デマンドなネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの配置モデルを含むことができる。
【0048】
特性は、以下の通りである。
【0049】
オン・デマンドなセルフ・サービス:クラウド・コンシューマは、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を、必要に応じて、サービスのプロバイダとの人的相互作用を必要とすることなく自動的に、一方向にプロビジョニングすることができる。
【0050】
広範なネットワーク・アクセス:能力は、ネットワークの上で利用可能であり、異種類のシンまたはシック・クライアント・プラットフォーム(たとえば、モバイル電話、ラップトップ、およびPDA)による使用を奨励する標準的なメカニズムを通してアクセスされる。
【0051】
リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを使用して、多数のコンシューマにサービス提供するためにプールされ、異なる物理リソースおよび仮想リソースが、要望に応じて、動的に割り当てられ、再割当てされる。コンシューマは一般に、提供されるリソースの厳密なロケーションについての制御または知識を持たないが、より高レベルの抽象化でのロケーション(たとえば、国、州、またはデータセンタ)を指定することができてもよいという点において、ロケーション独立の観念が存在する。
【0052】
迅速な弾力性:能力は、迅速かつ弾力的に、いくつかのケースでは自動的にプロビジョニングされて、素早くスケール・アウトし、迅速にリリースされて素早くスケール・インすることができる。コンシューマにとって、プロビジョニングするために利用可能であるこの能力は、しばしば、無制限で、いつでもいかなる量でも購入できるように見える。
【0053】
計測されたサービス:クラウド・システムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適切な何らかのレベルの抽象化で計量能力を活かすことによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、監視され、制御され、報告されて、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
【0054】
サービス・モデルは以下の通りである。
【0055】
サービスとしてのソフトウェア(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(たとえば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通して、さまざまなクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を考え得る例外とすると、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション能力さえも含む、基礎を成すクラウド・インフラストラクチャを管理または制御しない。
【0056】
サービスとしてのプラットフォーム(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされたプログラミング言語およびツールを使用して作成されたコンシューマが作成または入手したアプリケーションを、クラウド・インフラストラクチャ上に配置することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎を成すクラウド・インフラストラクチャを管理または制御しないものの、配置されたアプリケーション、および場合により、アプリケーション・ホスティング環境構成に対する制御を有する。
【0057】
サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される能力は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをコンシューマが配置し稼働することができる、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基礎を成すクラウド・インフラストラクチャを管理または制御しないものの、オペレーティング・システム、ストレージ、配置されたアプリケーションに対する制御、および場合により、選択ネットワーキング・コンポーネント(たとえば、ホストのファイアウォール)の限定された制御を有する。
【0058】
配置モデルは、以下の通りである。
【0059】
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。クラウド・インフラストラクチャは、その組織またはサード・パーティによって管理されてよく、オン・プレミスまたはオフ・プレミスに存在することができる。
【0060】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される関心事(たとえば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス上の検討事項)を有する具体的なコミュニティをサポートする。クラウド・インフラストラクチャは、その組織またはサード・パーティによって管理されてよく、オン・プレミスまたはオフ・プレミスに存在することができる。
【0061】
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界グループに利用可能にされ、クラウド・サービスを販売する組織によって所有される。
【0062】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成であり、このクラウドは、一意のエンティティのままであるものの、データおよびアプリケーションのポータビリティを可能にする標準化技術または独自開発技術(たとえば、クラウド間で負荷分散するためのクラウド・バースティング)によって共にバインドされている。
【0063】
クラウド・コンピューティング環境は、ステートレスであること、低結合性、モジュール性、および意味論的な相互運用性に焦点を合わせることに指向したサービスである。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0064】
クラウド・コンピューティング・ノードは、
図1に図示されたようなコンピュータ・システム/サーバを含むことができる。
図1のコンピュータ・システム/サーバ102は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実施される、分散クラウド・コンピューティング環境において実践されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモート両方のコンピュータ・システム・ストレージ媒体に位置することができる。コンピュータ・システム/サーバ102は、以上に記載された機能性のいずれかを実装される、または実施する、あるいはその両方の能力がある。
【0065】
これより
図8を参照すると、例証となるクラウド・コンピューティング環境50が図示されている。示されるように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード10を含むことができ、たとえば、パーソナル・デジタル・アシスタント(PDA)もしくはセルラ電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54Nあるいはその組合せなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスがノード10と通信することができる。ノード10同士は、互いに通信することができる。ノード10は、以上で説明されたようなプライベート、コミュニティ、パブリック、またはハイブリッド・クラウド、あるいはその組合せなどの、1つまたは複数のネットワークにおいて、物理的にまたは仮想的にグループ化されてもよい(図示せず)。これにより、クラウド・コンシューマがローカル・コンピューティング・デバイス上でリソースを維持する必要のない、サービスとしてのインフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド・コンピューティング環境50が提案することが可能になる。
図8に示されたコンピューティング・デバイス54A~Nのタイプは、例証のみであることが意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワーク、またはネットワーク・アドレス可能な接続、あるいはその両方の上で(たとえば、ウェブ・ブラウザを使用して)、任意のタイプのコンピュータ化されたデバイスと通信することができることが理解される。
【0066】
図9を参照すると、クラウド・コンピューティング環境50(
図8)によって提供される機能抽象化レイヤのセットが示されている。
図9に示されたコンポーネント、レイヤ、および機能は、例証のみであることが意図され、本発明の実施形態は、それらに限定されないことをあらかじめ理解すべきである。図示されるように、以下のレイヤおよび対応する機能が提供される。
【0067】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム61と、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62と、サーバ63と、ブレード・サーバ64と、ストレージ・デバイス65と、ネットワークおよびネットワーキング・コンポーネント66とを含む。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67と、データベース・ソフトウェア68とを含む。
【0068】
仮想化レイヤ70は、仮想エンティティの以下の例、すなわち、仮想サーバ71と、仮想ストレージ72と、仮想プライベート・ネットワークを含む仮想ネットワーク73と、仮想アプリケーションおよびオペレーティング・システム74と、仮想クライアント75とをそこから提供することができる抽象化レイヤを提供する。
【0069】
1つの例において、管理レイヤ80は、下で説明される機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的調達を提供する。計量および価格設定82は、リソースがクラウド・コンピューティング環境内で利用されるときのコスト・トラッキング、およびこれらのリソースの消費についての課金またはインボイス作成を提供する。1つの例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマおよびタスクについてのアイデンティティ検証、ならびにデータおよび他のリソースの保護を提供する。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを、コンシューマおよびシステム管理者に提供する。サービス・レベル管理84は、要求されたサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割当ておよび管理を提供する。サービス・レベル合意書(SLA)計画および履行85は、SLAに従って今後の要件が予想されるクラウド・コンピューティング・リソースについての事前手配およびその調達を提供する。
【0070】
ワークロード・レイヤ90は、クラウド・コンピューティング環境をそのために利用することができる機能性の例を提供する。このレイヤから提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91と、ソフトウェア開発およびライフサイクル管理92と、仮想クラスルーム教育配信93と、データ解析処理94と、トランザクション処理95と、セキュアなコンピューティング・リソース配置処理96とを含む。
【0071】
本発明のさまざまな実施形態の説明は、例証の目的で提示されてきたが、網羅的であること、または開示された実施形態に限定されることは意図されていない。説明された実施形態の範囲および思想から逸脱することなく、多くの修正形態および変形形態が当業者には明らかであろう。本明細書中で使用される専門用語は、実施形態の原理、実際の適用、または市場で見られる技術に対する技術的改善を最もよく解説するために、または本明細書中で開示された実施形態を他の当業者が理解するのを可能にするために選ばれたものである。
【0072】
本発明は、あらゆる可能な技術的詳細レベルの統合における、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。このコンピュータ・プログラム製品は、本発明の態様をプロセッサに遂行させるためのコンピュータ可読プログラム命令をその上に有する1つまたは複数のコンピュータ可読ストレージ媒体を含むことができる。
【0073】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保ち、記憶することができる有形のデバイスであってよい。コンピュータ可読ストレージ媒体は、たとえば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または上記の任意の好適な組合せであってよいが、それらに限定はされない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能なプログラマブル読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリースティック(R)、フロッピー(R)・ディスク、命令がその上に記録されたパンチ・カードまたは溝における隆起構造などの機械的に符号化されたデバイス、および上記の任意の好適な組合せが含まれる。コンピュータ可読ストレージ媒体は、本明細書中で使用されるとき、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を通して伝播する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して伝送される電気信号などの、一過性の信号自体であるものと解釈されるべきではない。
【0074】
本明細書中で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング/処理デバイスに、あるいは、たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワーク、あるいはその組合せのネットワークを介して、外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体における記憶のためにコンピュータ可読プログラム命令を転送する。
【0075】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++、またはその他などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてもよいし、または外部コンピュータへの接続が(たとえば、インターネット・サービス・プロバイダを使用してインターネットを通して)行われてもよい。いくつかの実施形態において、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、電子回路を個人化するためのコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0076】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書中で説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得ることが理解されるであろう。
【0077】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実装するための手段を作成するように、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを生み出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令がその中に記憶されたコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製造物品を含むように、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに、特定のやり方で機能するように指示することができるコンピュータ可読ストレージ媒体に記憶されてよい。
【0078】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実装するように、コンピュータ実装プロセスを生み出すために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実施させてもよい。
【0079】
図におけるフローチャートおよびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考え得る実装形態のアーキテクチャ、機能性、および動作を例証している。このことに関して、フローチャートまたはブロック図における各ブロックは、指定された論理的機能を実装するための1つまたは複数の実行可能な命令を含むモジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替実装形態において、ブロックに記された機能は、図に記された順序以外で行われてもよい。たとえば、関与する機能性に応じて、連続して示された2つのブロックが、実際には実質的に同時に実行されてもよいし、またはそのブロックが、時に逆の順序で実行されてもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実施する、または特殊目的ハードウェアとコンピュータ命令との組合せを遂行する、特殊目的ハードウェア・ベースのシステムによって実装されてもよいことにもまた留意されるであろう。
【0080】
上記に加えて、1つまたは複数の態様は、顧客環境の管理を提案するサービス・プロバイダによって提供され、提案され、配置され、管理され、サービス提供などをされてもよい。たとえば、サービス・プロバイダは、1人または複数の顧客のために1つまたは複数の態様を実施するコンピュータ・コード、またはコンピュータ・インフラストラクチャ、あるいはその両方を作成、維持、サポートなどをすることができる。見返りとして、サービス・プロバイダは、例として、サブスクリプション、または手数料契約、あるいはその両方のもとに顧客から報酬を受けることができる。追加として、または代替として、サービス・プロバイダは、1つまたは複数のサード・パーティへの広告コンテンツの売上から報酬を受けることができる。
【0081】
1つの態様において、1つまたは複数の実施形態を実施するためのアプリケーションが配置されてもよい。1つの例として、アプリケーションの配置は、1つまたは複数の実施形態を実施するように動作可能なコンピュータ・インフラストラクチャを提供することを含む。
【0082】
さらなる態様として、コンピュータ可読コードをコンピューティング・システム中に統合することを含むコンピューティング・インフラストラクチャが配置されてもよく、ここで、コンピューティング・システムと組み合わせたコードは、1つまたは複数の実施形態を実施する能力がある。
【0083】
なおもさらなる態様として、コンピュータ可読コードをコンピュータ・システム中に統合することを含むコンピューティング・インフラストラクチャを統合するためのプロセスが提供されてもよい。このコンピュータ・システムは、コンピュータ可読媒体を含み、ここで、コンピュータ媒体は、1つまたは複数の実施形態を含む。このコンピュータ・システムと組み合わせたコードは、1つまたは複数の実施形態を実施する能力がある。
【0084】
さまざまな実施形態が上で説明されたが、これらは例にすぎない。たとえば、1つまたは複数の実施形態を組み込み、使用するために、他のアーキテクチャのコンピューティング環境が使用されてもよい。さらに、異なる命令、命令フォーマット、命令フィールド、または命令値、あるいはその組合せが使用されてもよい。多くの変形形態が可能である。
【0085】
さらに、他のタイプのコンピューティング環境が利益を与えることができ、使用されてもよい。一例として、システム・バスを通してメモリ要素に直接、または間接的に結合された少なくとも2つのプロセッサを含み、プログラム・コードを記憶する、または実行する、あるいはその両方のために好適なデータ処理システムが使用可能である。メモリ要素には、たとえば、プログラム・コードの実際の実行中に用いられるローカル・メモリ、バルク・ストレージ、およびキャッシュ・メモリが含まれ、このキャッシュ・メモリは、実行中にバルク・ストレージからコードを取り出さなければならない回数を削減するために、少なくともいくつかのプログラム・コードの一時的な記憶を提供する。
【0086】
入力/出力、すなわちI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、および他のメモリ媒体、その他を含むが、それらに限定はされない)は、直接、または介在するI/Oコントローラを通してのいずれかでシステムに結合されてよい。ネットワーク・アダプタもまたシステムに結合されて、データ処理システムが、介在するプライベートまたはパブリック・ネットワークを通して、他のデータ処理システムに、またはリモートのプリンタもしくはストレージ・デバイスに結合されるように可能にしてもよい。モデム、ケーブル・モデム、およびETHERNET(R)カードは、利用可能なネットワーク・アダプタのタイプのほんのいくつかである。
【0087】
本明細書中で使用される専門用語は、特定の実施形態を説明する目的のためのみであり、本発明を限定するようには意図されていない。本明細書中で使用されるとき、単数形の「a」、「an」、および「the」は、コンテキストが明確にそうでないことを示さない限り、複数形もまた含むように意図されている。用語「備える(comprise)」(ならびに「comprises」および「comprising」などのcompriseのいずれかの形)、「有する(have)」(ならびに「has」および「having」などのhaveのいずれかの形)、「含む(include)」(ならびに「includes」および「including」などのincludeのいずれかの形)、および「収容する(contain)」(ならびに「contains」および「containing」などのcontainのいずれかの形)は、オープン・エンドの連結動詞であることがさらに理解されるであろう。結果として、1つまたは複数のステップまたは要素を「備える」、「有する」、「含む」、または「収容する」方法あるいはデバイスは、それらの1つまたは複数のステップまたは要素を保有するものの、それらの1つまたは複数のステップまたは要素のみを保有するように限定はされない。同様に、1つまたは複数の特徴を「備える」、「有する」、「含む」、または「収容する」方法のステップあるいはデバイスの要素は、それらの1つまたは複数の特徴を保有するものの、それらの1つまたは複数の特徴のみを保有するように限定はされない。さらに、一定のやり方で構成されたデバイスまたは構造体は、少なくともそのやり方で構成されるものの、列記されていないやり方でもまた構成されてよい。
【0088】
以下の特許請求の範囲におけるすべてのミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクション要素の対応する構造体、材料、動作、および均等物は、それがある場合、具体的に特許請求されるとき、他の特許請求された要素と組み合わせて機能を実施するためのいずれかの構造体、材料、または動作を含むことが意図されている。本発明の説明は、例証および説明の目的のために提示されてきたが、網羅的であること、または開示された形態での本発明に限定することは意図されていない。本発明の範囲および思想から逸脱することなく、多くの修正形態および変形形態が当業者には明らかであろう。実施形態は、本発明の1つまたは複数の態様の原理および実際の適用を最もよく解説するために、かつ企図された特定の使用に適したようなさまざまな修正形態を伴うさまざまな実施形態についての本発明の1つまたは複数の態様を他の当業者が理解するのを可能にするために、選ばれ、説明されたものである。
【国際調査報告】