IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2022-549405Kubernetesにおけるワークロードの保護を行うための方法、システム、及びコンピュータ・プログラム
<>
  • 特表-Kubernetesにおけるワークロードの保護を行うための方法、システム、及びコンピュータ・プログラム 図1
  • 特表-Kubernetesにおけるワークロードの保護を行うための方法、システム、及びコンピュータ・プログラム 図2
  • 特表-Kubernetesにおけるワークロードの保護を行うための方法、システム、及びコンピュータ・プログラム 図3
  • 特表-Kubernetesにおけるワークロードの保護を行うための方法、システム、及びコンピュータ・プログラム 図4
  • 特表-Kubernetesにおけるワークロードの保護を行うための方法、システム、及びコンピュータ・プログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-25
(54)【発明の名称】Kubernetesにおけるワークロードの保護を行うための方法、システム、及びコンピュータ・プログラム
(51)【国際特許分類】
   G06F 21/62 20130101AFI20221117BHJP
   G06F 21/60 20130101ALI20221117BHJP
【FI】
G06F21/62 318
G06F21/60 320
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022514003
(86)(22)【出願日】2020-09-04
(85)【翻訳文提出日】2022-03-01
(86)【国際出願番号】 IB2020058231
(87)【国際公開番号】W WO2021064493
(87)【国際公開日】2021-04-08
(31)【優先権主張番号】16/587,256
(32)【優先日】2019-09-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
2.SMALLTALK
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【復代理人】
【識別番号】110000316
【氏名又は名称】特許業務法人ピー・エス・ディ
(72)【発明者】
【氏名】ヌネス、メンシアス、アンゲル
(72)【発明者】
【氏名】モルヤン、ペーター
(72)【発明者】
【氏名】ヘレンドエルファー、ディルク
(72)【発明者】
【氏名】ポールパリ、イエシュワンス、プリーティ
(57)【要約】
本発明の態様は、プロセッサを介して、オリジナルのドッカー・イメージを顧客から取得することと、オリジナルのドッカー・イメージからの内容を用いてディスク・イメージを暗号化することと、ブートローダを暗号化することと、を含む。再パッケージされたイメージは、暗号化されたディスク・イメージとセキュアな暗号化されたブートローダとを用いて、作成される。再パッケージされたイメージは、再パッケージされたイメージをポッド・コンテナに挿入することによって、及び前述のコンテナに高い特権を与えるミューテーティング・ウェブフックを用いることによってデプロイされ、本態様はさらに、ワークロードを保護するためにセキュリティ保護されたKubernetesポッドを作成することであって、セキュリティ保護されたKubernetesポッドは、ポッド・コンテナを含む少なくとも1つの仮想マシンを有する、作成することを含む。
【選択図】 図2
【特許請求の範囲】
【請求項1】
コンピュータ実施方法であって、
プロセッサを介して、オリジナルのドッカー・イメージを顧客から取得することと、
前記プロセッサを介して、前記オリジナルのドッカー・イメージからの内容を用いてディスク・イメージを暗号化することと、
前記プロセッサを介して、ブートローダを暗号化することと、
前記プロセッサを介して、前記暗号化されたディスク・イメージと前記暗号化されたブートローダとを用いて、再パッケージされたイメージを作成することと、
前記プロセッサを介して、前記再パッケージされたイメージをポッド・コンテナに挿入することによって、前記再パッケージされたイメージをデプロイすることと、
ワークロードを保護するためにセキュリティ保護されたKubernetesポッドを作成することであって、前記セキュリティ保護されたKubernetesポッドが、前記ポッド・コンテナを含む少なくとも1つの仮想マシンを有する、作成することと、
を含むコンピュータ実施方法。
【請求項2】
前記再パッケージされたイメージのデプロイメントが、Kubernetesミューテーティング・アドミッション・コントローラを用いて、前記ポッド・コンテナへの前記挿入を完了する、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記Kubernetesミューテーティング・アドミッション・コントローラが、ウェブフックを用いて、デプロイメント時に前記ポッド・コンテナの定義を変更する、請求項2に記載のコンピュータ実施方法。
【請求項4】
前記セキュリティ保護されたKubernetesポッドが、runqサイドカー・コンテナをさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項5】
前記runqサイドカー・コンテナが共有ボリュームを含む、請求項4に記載のコンピュータ実施方法。
【請求項6】
前記共有ボリュームがrunqを含む、請求項5に記載のコンピュータ実施方法。
【請求項7】
前記共有ボリュームがqemuを含む、請求項5に記載のコンピュータ実施方法。
【請求項8】
コンピュータ可読命令を有するメモリと、
前記コンピュータ可読命令を実行するための1つ又は複数のプロセッサであって、
オリジナルのドッカー・イメージを顧客から取得することと、
前記オリジナルのドッカー・イメージからの内容を用いてディスク・イメージを暗号化することと、
ブートローダを暗号化することと、
前記暗号化されたディスク・イメージと前記暗号化されたブートローダとを用いて、再パッケージされたイメージを作成することと、
前記再パッケージされたイメージをポッド・コンテナに挿入することによって、前記再パッケージされたイメージをデプロイすることと、
ワークロードを保護するためにセキュリティ保護されたKubernetesポッドを作成することであって、前記セキュリティ保護されたKubernetesポッドが、前記ポッド・コンテナを含む少なくとも1つの仮想マシンを有する、作成することと、
を含むオペレーションを実行するように前記コンピュータ可読命令が制御する、1つ又は複数のプロセッサと
を含むシステム。
【請求項9】
前記再パッケージされたイメージのデプロイメントが、Kubernetesミューテーティング・アドミッション・コントローラを用いて、前記ポッド・コンテナへの前記挿入を完了する、請求項8に記載のシステム。
【請求項10】
前記Kubernetesミューテーティング・アドミッション・コントローラが、ウェブフックを用いて、デプロイメント時に前記ポッド・コンテナの定義を変更する、請求項9に記載のシステム。
【請求項11】
前記セキュリティ保護されたKubernetesポッドが、runqサイドカー・コンテナをさらに含む、請求項8に記載のシステム。
【請求項12】
前記runqサイドカー・コンテナが共有ボリュームを含む、請求項11に記載のシステム。
【請求項13】
前記共有ボリュームがrunqを含む、請求項12に記載のシステム。
【請求項14】
前記共有ボリュームがqemuを含む、請求項13に記載のシステム。
【請求項15】
プログラム命令が具体化されたコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品であって、前記プログラム命令が、プロセッサによって実行可能であり、
オリジナルのドッカー・イメージを顧客から取得することと、
前記オリジナルのドッカー・イメージからの内容を用いてディスク・イメージを暗号化することと、
ブートローダを暗号化することと、
前記暗号化されたディスク・イメージと前記暗号化されたブートローダとを用いて、再パッケージされたイメージを作成することと、
前記再パッケージされたイメージをポッド・コンテナに挿入することによって、前記再パッケージされたイメージをデプロイすることと、
ワークロードを保護するためにセキュリティ保護されたKubernetesポッドを作成することであって、前記セキュリティ保護されたKubernetesポッドが、前記ポッド・コンテナを含む少なくとも1つの仮想マシンを有する、作成することと、
を含むオペレーションを前記プロセッサに実行させる、コンピュータ・プログラム製品。
【請求項16】
前記再パッケージされたイメージのデプロイメントが、Kubernetesミューテーティング・アドミッション・コントローラを用いて、前記ポッド・コンテナへの前記挿入を完了する、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
前記Kubernetesミューテーティング・アドミッション・コントローラが、ウェブフックを用いて、デプロイメント時に前記ポッド・コンテナの定義を変更する、請求項16に記載のコンピュータ・プログラム製品。
【請求項18】
前記セキュリティ保護されたKubernetesポッドが、runqサイドカー・コンテナをさらに含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項19】
前記runqサイドカー・コンテナが共有ボリュームを含む、請求項18に記載のコンピュータ・プログラム製品。
【請求項20】
前記共有ボリュームがrunq及びqemuを含む、請求項19に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、Kubernetesのセキュリティに関し、より具体的には、Kubernetesにおけるワークロードの保護に関する。
【背景技術】
【0002】
Kubernetesは、アプリケーションのデプロイメント、スケーリング、及び管理を自動化するためのオープンソースのコンテナオーケストレーション・システムである。Kubernetesは、primitivesと呼ばれるビルディング・ブロックのセットを定義し、これらは集合的に、プロセッサ、メモリ、又はカスタム・メトリクスに基づいて、アプリケーションをデプロイ、維持、及びスケール変更する機構を提供する。ポッドは、ホスト・マシン上の同じ場所に配置され、リソースを共有することができる1つ又は複数のコンテナを含む、Kubernetesのビルディング・ブロックである。ノードは、仮想マシン(VM)又は物理マシンとすることができ、1つ又は複数のポッドを含む、Kubernetesのワーカー・マシンである。各ノードは、ポッドを動作させるのに必要なサービスを含む。Kubernetesは今日まで、ポッド内のワーク・アイテムをKubernetesアドミニストレータの制御から分離するどのようなセキュリティ・モデルもサポートしていない。さらに、ポッド内のKubernetesワークロードは、ワークロードのデータ、つまり顧客を、Kubernetesアドミニストレータによるアクセスから保護するためのセキュリティ保護、ロックダウン、又は暗号化が一切行われていない。
【0003】
Kubernetes(KubernetesはGoogle, Inc.の商標である)は、その元々の形態では、ホストとコンテナ・ワークロードとの間の分離がLinuxの制御グループを介して行われるため、いかなる仮想化技術、又はそのような特徴を可能にするポッドのワークロードの機能向上も、サポートしていない。
【発明の概要】
【0004】
本発明の実施形態は、Kubernetesにおけるワークロードの保護に向けられる。非限定的な例のコンピュータ実施方法は、プロセッサを介して、オリジナルのドッカー・イメージを顧客から取得することと、オリジナルのドッカー・イメージからの内容を用いてディスク・イメージを暗号化することと、安全にブートローダを暗号化することと、を含む。再パッケージされたイメージは、暗号化されたディスク・イメージとセキュアな暗号化されたブートローダとを用いて、作成される。再パッケージされたイメージは、再パッケージされたイメージをポッド・コンテナに挿入し、ワークロードを保護するために、ポッド・コンテナを含む少なくとも1つの仮想マシンを有するセキュリティ保護されたKubernetesポッドを作成することによって、デプロイされる。
【0005】
本発明の他の実施形態は、上述した方法の特徴をコンピュータ・システム及びコンピュータ・プログラム製品で実施する。
【0006】
付加的な技術的特徴及び利点は、本発明の技術によって実現される。本発明の実施形態及び態様は、本明細書で詳細に説明され、特許請求される主題の一部とみなされる。より良い理解のために、詳細な説明及び図面を参照されたい。
【0007】
本明細書に記載される独占権の詳細は、本明細書の最後にある特許請求の範囲で特に指摘され、明確に特許請求される。本発明の実施形態の前述及びその他の特徴及び利点は、添付の図面と併せて読まれる以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【0008】
図1】本発明の1つ又は複数の実施形態による、Kubernetesにおけるワークロードを保護するためのプロセスのフロー図を示す。
図2】本発明の1つ又は複数の実施形態による、Kubernetesにおけるワークロードを保護するために用いられるコンポーネントの図を示す。
図3】本発明の1つ又は複数の実施形態による、Kubernetesにおけるワークロードを保護するための実装を示す。
図4】本発明の1つ又は複数の実施形態によるクラウド・コンピューティング環境を示す。
図5】本発明の1つ又は複数の実施形態による抽象化モデル層を示す。
【発明を実施するための形態】
【0009】
本明細書に描かれている図は例示的なものである。本発明の精神から逸脱することなく、図又はそこに描かれたオペレーションに対する多くの変形が可能である。例えば、動作を異なる順序で行うことができ、又は、動作を追加、削除又は修正することができる。また、「結合」という用語及びその変形は、2つの要素の間に通信経路があることを表しており、要素間に介在する要素/接続を有さない直接的な接続を意味するものではない。これらの変形はすべて本明細書の一部とみなされる。
【0010】
本発明の1つ又は複数の実施形態は、Kubernetesポッド内の個々のコンテナに新しいセキュリティ境界を提供することで、Kubernetesクラスタ内の個々のワークロードのより細かい保護を可能にする。これにより、アドミニストレータは、完全な透明性及び既存のツールを用いて、Kubernetesクラスタを管理することができる。
【0011】
本発明の1つ又は複数の実施形態は、単一のワークロードがコンテナの脆弱性を突破して、同じKubernetesワーカー内の他のポッドからデータを読み取ることを防止する。
【0012】
本発明の1つ又は複数の実施形態は、Kubernetesクラスタ上にデプロイされた各ポッドに対してサイドカー・コンテナをプロビジョニングさせて、ポッドのすべてのコンテナに対するrunq環境のプロビジョニングを支援することを含む。
【0013】
本発明の1つ又は複数の実施形態は、ポッドのメモリ及びストレージを、ホストのオペレーティングシステム(OS)から保護することを提供する。
【0014】
本発明の1つ又は複数の実施形態は、ベア・メタル・サーバ(例えば、論理パーティション又は「LPAR」)、仮想マシン、個々のドッカー・コンテナ、及びKubernetesクラスタ全体の保護を可能にする。
【0015】
ここで図1に目を向けると、本発明の1つ又は複数の実施形態による、Kubernetesにおけるワークロードを保護するための全体的なプロセスのフロー図が概して示される。プロセスは、ブロック101で開始し、ブロック102でオリジナルのドッカー・イメージを取得する。ドッカー・イメージは、オープンソースのソフトウェア開発プラットフォームであるドッカー・コンテナのイメージである。ドッカー・コンテナは、サービス機能を、Linux OSを動作させているあらゆるシステム間で移植可能にする。オリジナルのドッカー・イメージが取得されると、プロセスはブロック104で、オリジナルのドッカー・イメージの内容を用いてディスク・イメージを暗号化する。次に、プロセスは、ブロック106でブートローダを暗号化する。カーネル・パラメータがハードコード化されたコンピューティング・システム上でOS構成を起動させることは、OSカーネルをブートローダに渡すことを含むことができる。これにより、ブートローダは、OSカーネルをコンピューティング・システム上にロードして実行することができる。同様に、1つ又は複数のカーネル・パラメータ値がOSカーネルとは別のデータ・オブジェクトに格納されているOS構成を起動させることは、オペレーティング・システム・カーネルと1つ又は複数のカーネル・パラメータ値との両方をブートローダに渡すことを含むことができる。これにより、ブートローダは、OSカーネルを1つ又は複数のカーネル・パラメータ値と共にロードして実行する。
【0016】
さらに図1を参照すると、プロセスは次に、ブロック108で、暗号化されたディスク・イメージとセキュアな暗号化されたブートローダとを用いて、再パッケージされたイメージを作成する。再パッケージ化は、既存のドッカー・イメージをロードし、次に、セキュアな暗号化されたブートローダを含むドッカー・イメージのストレージ層を暗号化し、ドッカー・イメージを再構築することを含む。再パッケージされたイメージは、ブロック110で、再パッケージされたイメージをKubernetesポッド・コンテナに挿入することによりデプロイされる。プロセスはその後、ブロック112でセキュリティ保護されたKubernetesポッドを作成し、ブロック113で終了する。今日のアプリケーション環境では、アーキテクチャのパラダイムとしてコンテナ及びマイクロサービスを用いる傾向がある。そのスキームでは、コンテナとして動作するマイクロサービスの特定の選択がポッドにまとめられ、それによって、例えば、アプリケーション又はソリューションが形成される。
【0017】
セキュリティ保護されたKubernetesポッドは、セキュアな実行モードで動作するため、基礎をなすホスト環境からメモリが隔離されている。また、runqコンテナとして動作する場合、クラスタ・アドミニストレータはポッドへのコンソール・アクセスができない。これにより、すべての人間のユーザから保護される。
【0018】
ここで図2に目を向けると、本発明の1つ又は複数の実施形態による、Kubernetesにおけるワークロードを保護するためのコンポーネントの図200が概して示される。顧客のドッカー・イメージ205は、顧客の秘密207、ディスク・イメージ208、及びセキュアな実行runqブートローダ210を含む。runqブートローダ210は、暗号化されたディスクを復号化するための固有の鍵を有し、ドッカー・コンテナが変更なしで動作するための環境を準備することに留意されたい。runqは、ハイパーバイザーベースのドッカー・ランタイムである。runqは、クイック・エミュレータ(qemu)ハイパーバイザをプロビジョニングするためのリソースを有するコンテナを準備する。ドッカー・イメージは、ウェブフックを有するrunq Kubernetesミューテーティング・アドミッション・コントローラ214を用いて、ポッド・コンテナにデプロイされる(212)。ミューテーティング・ウェブフックは、デプロイメント要求の定義を変容させると同時に、デプロイメント前にアドミッション論理をカスタマイズする融通性を提供するサービスである。ウェブフックは、信頼できるコードのみが特権モードで動作できることを保証する。顧客のドッカー・イメージは、セキュリティ保護されたKubernetesポッド220へのデプロイメントにより、仮想マシン222の一部であるポッド・コンテナ224に配置される。セキュリティ保護されたKubernetesポッド220は、さらにrunqサイドカー・コンテナ226を含む。runqサイドカー・コンテナ226は、runq230とqemu232の両方を有する共有ボリューム228を含む。Kubernetesホストの視点から見ると、仮想マシンはブラックボックスである。例えば、Kubernetesワーカーを覗こうとするアドミニストレータは、qemuプロセスしか見えず、qemuプロセスのメモリはKubernetesから読み出されたときに暗号化され、データは暗号化されたボリュームとして、ポッドに割り当てられたKubernetesボリュームに保存される。
【0019】
ここで図3に目を向けると、本発明の1つ又は複数の実施形態による、Kubernetesにおけるワークロードを保護するためにセキュアな実行を用いる仮想サーバ300の例が概して示される。ハイパーバイザ論理パーティション(LPAR)302は、ホスティング・アプライアンス304のベースとなる。ホスティング・アプライアンス304は、仮想サーバを動作させる。一方の仮想サーバ308は、保護のためにセキュアな実行を用いる。別の仮想サーバ306は、インターバル・キー・サーバ(IKS)クルーザー・ワーカー・プラットフォーム310を動作させる。IKSクルーザー・ワーカー・プラットフォーム310は、顧客のデプロイメントが最終的にホストされるKubernetesクラスタのワーカー・ノードである。アドミニストレータは、クルーザー・ワーカーにアクセスすることはできない。キャリア・ワーカーは、サービス及び保守性を目的としてアドミニストレーションがアクセスすることができる管理ワーカー・ノードである。IKSクルーザー・ワーカー・プラットフォーム310は、Kubelet312とKubernetesエージェント314とを有する。Kubelet312は、Kubernetesクラスタの各ノード上で動作するノード・エージェントである。これにより、ポッドが、ポッド仕様で定義された通りに動作していることが確認される。Kubernetesポッド316は、幾つかのコンテナ、すなわちカーネルベースの仮想マシン(KVM)のセキュリティ保護されていないコンテナ320、及び2つのセキュリティ保護されたコンテナ318を有する。ポッド内の各セキュアなコンテナ318は、セキュアな実行で隔離されている。各ポッド・コンテナは、他のコンテナ、Kubernetesコンポーネント、基礎をなすホスト、及びクラウド・アドミニストレータから保護される。各仮想サーバ306は、他の仮想サーバ及びホスティング・アプライアンス304から保護される。本実施形態では、KVMは、セキュアな実行の有無にかかわらず実行することができる。
【0020】
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書に記載される教示の実施は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本開示の実施形態は、現在既知の又は後で開発されることになる他のあらゆるタイプのコンピューティング環境とともに実施することができる。
【0021】
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及び解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つのデプロイメント・モデルを含むことができる。
【0022】
特徴は、以下の通りである。
【0023】
オンデマンド・セルフ・サービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
【0024】
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
【0025】
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを用いて複数のコンシューマにサービスを提供するためにプールされ、異なる物理及び仮想リソースが要求に応じて動的に割り当て及び再割り当される。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないという点で位置とは独立しているといえるが、より抽象化レベルの高い位置(例えば、国、州、又はデータセンタ)を特定できる場合がある。
【0026】
迅速な弾力性:機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケールアウトし、迅速に解放して素早くスケールインすることができる。コンシューマにとって、プロビジョニングに利用可能な機能は、多くの場合、無制限であるように見え、いつでもどんな量でも購入できる。
【0027】
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告して、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
【0028】
サービス・モデルは以下の通りである。
【0029】
Software as a Service(SaaS):コンシューマに提供される機能は、クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用することである。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を想定される例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
【0030】
Platform as a Service(PaaS):コンシューマに提供される機能は、プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーションホスティング環境構成に対する制御を有する。
【0031】
Infrastructure as a Service(IaaS):コンシューマに提供される機能は、コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアをデプロイ及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングすることである。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択に対する限定された制御を有する。
【0032】
デプロイメント・モデルは以下の通りである。
【0033】
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
【0034】
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、それら組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
【0035】
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
【0036】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は専用技術(例えば、クラウド間の負荷分散のためのクラウドバースティング)によって互いに結び付けられた2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)の混成である。
【0037】
クラウド・コンピューティング環境は、サービス指向であり、ステートレス性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置く。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0038】
ここで図4を参照すると、例示的なクラウド・コンピューティング環境50が描かれている。図示のように、クラウド・コンピューティング環境50は、例えば、携帯情報端末(PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップ・コンピュータ54C、もしくは車載コンピュータ・システム54N又はそれらの組み合わせなどのような、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスと通信することができる、1つ又は複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。これらのノードを物理的又は仮想的にグループ化して(図示せず)、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、又はこれらの組み合わせなど、1つ又は複数のネットワークにすることができる。このことは、クラウド・コンピューティング環境50が、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のない、infrastructure as a service、platform as a service、もしくはsoftware as a service又はそれらの組み合わせを提供することを可能にする。図4に示されるコンピューティング・デバイス54A~Nのタイプは単に例示であることを意図しており、コンピューティング・ノード10及びクラウド・コンピューティング環境50は、あらゆるタイプのネットワーク上でもしくはネットワーク・アドレス指定可能な接続(例えば、ウェブ・ブラウザを用いる)上で又はその両方で、あらゆるタイプのコンピュータ化されたデバイスと通信できることを理解されたい。
【0039】
ここで図5を参照すると、クラウド・コンピューティング環境50(図4)によって提供される機能抽象化層のセットが示される。図5に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
【0040】
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム61、RISC(Reduced Instruction Set Computer(縮小命令セットコンピュータ))アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージデバイス65、並びにネットワーク及びネットワーク・コンポーネント66が含まれる。幾つかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67及びデータベース・ソフトウェア68を含む。
【0041】
仮想化層70は、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティング・システム74、並びに仮想クライアント75を提供することができる抽象化層を提供する。
【0042】
一例において、管理層80は、以下で説明される機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定82は、クラウド・コンピューティング環境内でリソースが利用されたときのコスト追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル83は、コンシューマ及びシステムアドミニストレータに対してクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(Service Level Agreement、SLA)の計画及び履行85は、SLAに従って将来的な必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【0043】
ワークロード層90は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例として、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、及びKubernetesにおけるワークロードの保護96が挙げられる。
【0044】
本発明の様々な実施形態を、関連する図面を参照しながら本明細書で説明する。本発明の代替的な実施形態は、本発明の範囲から逸脱することなく考案することができる。以下の説明及び図面において、要素間に様々な接続及び位置関係(例えば、上、下、隣接など)が規定されている。これらの接続及び/又は位置関係は、特に指定されない限り、直接的又は間接的であり得、本発明は、この点で制限することを意図していない。したがって、エンティティの結合は、直接的又は間接的な結合のいずれかを指すことができ、エンティティ間の位置関係は、直接的又は間接的な位置関係であることができる。さらに、本明細書に記載されている様々なタスク及びプロセスステップは、本明細書に詳細に記載されていない追加のステップ又は機能を有する、より包括的な手順又はプロセスに組み込むことができる。
【0045】
本明細書に記載される1つ又は複数の方法は、各々が当該技術分野において周知である以下の技術、すなわちデータ信号により論理機能を実施するための論理ゲートを有する離散論理回路、適切な組み合わせ論理ゲートを有する特定用途向け集積回路(ASIC)、プログラム可能ゲート配列(PGA)、フィールドプログラム可能ゲート配列(FPGA)等のいずれか又は組み合わせで実施することができる。
【0046】
簡潔にするために、本発明の態様の作成及び使用に関連する従来の技術については、本明細書で詳細に説明される場合も又は説明されない場合もある。特に、本明細書で説明される種々の技術的特徴を実装するためのコンピューティング・システムの種々の態様及び特定のコンピュータ・プログラムは周知である。したがって、簡略にするために、本明細書では、多くの従来の実装の詳細については、周知のシステムもしくはプロセスの詳細又はその両方を与えることなく、単に簡潔に述べられるか又は完全に省略される。
【0047】
幾つかの実施形態において、様々な機能又は動作は、所与の場所で、もしくは1つ又は複数の装置又はシステムのオペレーションに関連して又はその両方で行うことができる。幾つかの実施形態において、所与の機能又は動作の一部を第1のデバイス又は場所で実行し、機能又は動作の残りの部分を1つ又は複数の付加的なデバイス又は場所で実行することができる。
【0048】
本明細書で用いられる用語は、特定の実施形態を説明することのみを目的としたものであり、本発明を限定することを意図したものではない。本明細書で使用される単数形「a」、「an」及び「the」は、前後関係から明らかに別の意味を示さない限り、複数形態も含むことを意図する。さらに、本明細書内で使用する場合に、「備える、含む」もしくは「備えている、含んでいる」又はその両方の用語は、そこに述べた特徴、整数、ステップ、オペレーション、要素もしくはコンポーネント又はそれらの組み合わせの存在を明示しているが、1つ又は複数のその他の特徴、整数、ステップ、オペレーション、要素、コンポーネントもしくはそれらの群又はそれらの組み合わせの存在又は付加を排除するものではないことは理解されるであろう。
【0049】
以下の請求項におけるすべての手段又はステッププラス機能の要素の対応する構造、材料、行為、及び同等物は、具体的に請求された他の請求項の要素と組み合わせて機能を実行するための任意の構造、材料、又は行為を含むことを意図している。本開示は、例示及び説明の目的で提示されてきたが、網羅的であること、又は開示された形態に限定されることを意図していない。多くの修正及び変形が、本開示の範囲及び精神から逸脱することなく、当業者に明らかになるであろう。実施形態は、本開示の原理及び実用化を最もよく説明するために、また、当業者が企図された特定の使用に適した様々な変更を伴う様々な実施形態について本開示を理解できるようにするために選択され、記載された。
【0050】
本明細書に描かれている図は例示的なものである。本発明の精神から逸脱することなく、図又はそこに記載されるステップ(又はオペレーション)に対する多くの変形が可能である。例えば、動作を異なる順序で行うことができ、又は、動作を追加、削除又は修正することができる。また、「結合」という用語は、2つの要素の間に信号経路があることを表しており、要素間に介在する要素/接続を有さない直接的な接続を意味するものではない。これらの変形はすべて本明細書の一部とみなされる。
【0051】
以下の定義及び略語は、特許請求の範囲及び明細書を解釈するために用いるものである。ここで用いる場合、「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」、「含有する」又は「含有している」又は任意のその他の変形は、非排他的な包含をカバーすることが意図される。例えば、要素のリストを含む、組成物、混合物、プロセス、方法、物品、又は装置は、必ずしもそれらの要素に限定されるものではなく、明示的にリストに挙げられていない他の要素、又はそうした組成物、混合物、プロセス、方法、物品、もしくは装置に固有の他の要素を含むことができる。
【0052】
さらに、「例示的」という用語は、本明細書において「例、事例、例証として役立つ」を意味するものとして用いられている。ここで「例示的」として記載されるいずれの実施形態又は設計も、必ずしも他の実施形態又は設計と比べて好ましい又は有利であると解釈されるべきではない。「少なくとも1つの」及び「1つ又は複数の」という用語は、1以上の任意の整数、すなわち、1、2、3、4等を含むと理解することができる。「複数の」という用語は、2以上の任意の整数、すなわち、2、3、4、5等を含むと理解することができる。「接続」という用語は、間接「接続」及び直接「接続」の両方を含むことができる。
【0053】
「約」、「実質的に」、「およそ」という用語及びそれらの変形は、出願時に利用可能な装置に基づく特定の量の測定に付随する誤差の程度を含むことを意図する。例えば、「約」は、所与の値の±8%又は5%、又は2%の範囲を含むことができる。
【0054】
本発明は、集積の任意の可能な技術的詳細レベルの、システム、方法、もしくはコンピュータ・プログラム製品又はそれらの組み合わせとすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する1つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。
【0055】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、又は上記のものの任意の適切な組み合わせとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、フロッピーディスク、記録された命令を有するパンチカードもしくは溝内に隆起した構造等の機械式コード化デバイス、及び上記のものの任意の適切な組み合わせを含む。コンピュータ可読ストレージ媒体は、本明細書で用いられる場合、無線波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバケーブルを通る光パルス)、又は電線を通って伝送される電気信号のような一時的な信号自体と解釈すべきではない。
【0056】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることも、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくは無線ネットワーク又はそれらの組み合わせを経由して、外部コンピュータもしくは外部ストレージデバイスにダウンロードすることもできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバ又はそれらの組み合わせを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体にストレージのために転送する。
【0057】
本発明のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、又は、Smalltalk、もしくはC++などのオブジェクト指向プログラミング言語及び「C」プログラミング言語もしくは類似のプログラミング言語のような手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続が行われる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲートアレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行することができる。
【0058】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。
【0059】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイス又はそれらの組み合わせを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読媒体が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。
【0060】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連のオペレーションステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャートもしくはブロック図又はその両方の1つ又は複数のブロックにおいて指定された機能/動作を実装するようにすることもできる。
【0061】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及びオペレーションを示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方の中のブロックの組み合わせは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組み合わせを実行することもできることにも留意されたい。
【0062】
本発明の種々の実施形態の説明は、例証の目的で提示したものであるが、網羅的であることも、又は開示された実施形態に限定することも意図しない。説明した実施形態の範囲から逸脱することなく、多くの修正及び変形が当業者には明らかであろう。本明細書で用いる用語は、実施形態の原理、実際的な用途、もしくは市場において見いだされる技術に優る技術的改善を最も良く説明するように、又は当業者が本明細書で開示される実施形態を理解することを可能にするように、選択されたものである。
図1
図2
図3
図4
図5
【手続補正書】
【提出日】2022-04-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータの情報処理により、Kubernetesにおけるワークロードの保護を行うための方法であって、
プロセッサを介して、オリジナルのドッカー・イメージを顧客から取得することと、
前記プロセッサを介して、前記オリジナルのドッカー・イメージからの内容を用いてディスク・イメージを暗号化することと、
前記プロセッサを介して、ブートローダを暗号化することと、
前記プロセッサを介して、前記暗号化されたディスク・イメージと前記暗号化されたブートローダとを用いて、再パッケージされたイメージを作成することと、
前記プロセッサを介して、前記再パッケージされたイメージをポッド・コンテナに挿入することによって、前記再パッケージされたイメージをデプロイすることと、
ワークロードを保護するためにセキュリティ保護されたKubernetesポッドを作成することであって、前記セキュリティ保護されたKubernetesポッドが、前記ポッド・コンテナを含む少なくとも1つの仮想マシンを有する、作成することと、
を含む方法。
【請求項2】
前記再パッケージされたイメージのデプロイメントが、Kubernetesミューテーティング・アドミッション・コントローラを用いて、前記ポッド・コンテナへの前記挿入を完了する、請求項1に記載の方法。
【請求項3】
前記Kubernetesミューテーティング・アドミッション・コントローラが、ウェブフックを用いて、デプロイメント時に前記ポッド・コンテナの定義を変更する、請求項2に記載の方法。
【請求項4】
前記セキュリティ保護されたKubernetesポッドが、runqサイドカー・コンテナをさらに含む、請求項1から請求項3までのいずれか1項に記載の方法。
【請求項5】
前記runqサイドカー・コンテナが共有ボリュームを含む、請求項4に記載の方法。
【請求項6】
前記共有ボリュームがrunqを含む、請求項5に記載の方法。
【請求項7】
前記共有ボリュームがqemuを含む、請求項5又は請求項6に記載の方法。
【請求項8】
Kubernetesにおけるワークロードの保護を行うためのシステムであって、
コンピュータ可読命令を有するメモリと、
前記コンピュータ可読命令を実行するための1つ又は複数のプロセッサであって、
オリジナルのドッカー・イメージを顧客から取得することと、
前記オリジナルのドッカー・イメージからの内容を用いてディスク・イメージを暗号化することと、
ブートローダを暗号化することと、
前記暗号化されたディスク・イメージと前記暗号化されたブートローダとを用いて、再パッケージされたイメージを作成することと、
前記再パッケージされたイメージをポッド・コンテナに挿入することによって、前記再パッケージされたイメージをデプロイすることと、
ワークロードを保護するためにセキュリティ保護されたKubernetesポッドを作成することであって、前記セキュリティ保護されたKubernetesポッドが、前記ポッド・コンテナを含む少なくとも1つの仮想マシンを有する、作成することと、
を含むオペレーションを実行するように前記コンピュータ可読命令が制御する、1つ又は複数のプロセッサと
を含むシステム。
【請求項9】
前記再パッケージされたイメージのデプロイメントが、Kubernetesミューテーティング・アドミッション・コントローラを用いて、前記ポッド・コンテナへの前記挿入を完了する、請求項8に記載のシステム。
【請求項10】
前記Kubernetesミューテーティング・アドミッション・コントローラが、ウェブフックを用いて、デプロイメント時に前記ポッド・コンテナの定義を変更する、請求項9に記載のシステム。
【請求項11】
前記セキュリティ保護されたKubernetesポッドが、runqサイドカー・コンテナをさらに含む、請求項8から請求項10までのいずれか1項に記載のシステム。
【請求項12】
前記runqサイドカー・コンテナが共有ボリュームを含む、請求項11に記載のシステム。
【請求項13】
前記共有ボリュームがrunqを含む、請求項12に記載のシステム。
【請求項14】
前記共有ボリュームがqemuを含む、請求項12又は請求項13に記載のシステム。
【請求項15】
請求項1から請求項7までのいずれか1項に記載の方法をコンピュータに実行させるプログラム命令を含むコンピュータ・プログラム。
【請求項16】
請求項15に記載のコンピュータ・プログラムを格納したコンピュータ可読ストレージ媒体。
【国際調査報告】