(57)【要約】  マルチテナントコンテナプラットフォーム上でアプリケーションを実行するための開示されたコンピュータ実装方法は、（１）コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスで、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信することと、（２）アプリケーションのユーザ識別子に基づいて、アプリケーションに関連付けられたユーザのセキュリティチェックを実施することと、（３）セキュリティチェックの結果として承認されると、要求された特権操作のプロセス識別子と許可された操作のホワイトリストとを比較して、要求された特権操作が許容されると判定することと、（４）要求された特権操作が許容されるときに、要求された特権操作を開始することと、を含み得る。様々な別の方法、システム、及びコンピュータ可読媒体もまた開示される。
2021513710.tif 000002
【特許請求の範囲】
【請求項１】
マルチテナントコンテナプラットフォーム上でアプリケーションを実行するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを含むコンテナホストコンピューティングデバイスによって実施され、前記方法は、
前記コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスにおいて、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信することと、
前記アプリケーションに関連付けられたユーザのセキュリティチェックを実施することと、
前記セキュリティチェックの結果として承認されると、前記要求された特権操作のプロセス識別子と許可された操作のホワイトリストとを比較して、前記要求された特権操作が許容されると判定することと、
前記要求された特権操作が許容されるときに、前記要求された特権操作の実行を開始することと、を含むコンピュータ実装方法。
【請求項２】
前記ホストアドミニストレータサービスソケットハンドルを前記コンテナホストアドミニストレータサービスから前記コンテナに渡すことを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
インターセプタにおいて、前記アプリケーションから前記要求を受信することと、
前記インターセプタによって、前記要求のホワイトリストチェックを実施することと、
前記ホワイトリストチェックが成功したときに、前記インターセプタによってコンテナアドミニストレータを呼び出すことと、
前記コンテナアドミニストレータによって、前記ホストアドミニストレータサービスソケットハンドルを使用して、要求された操作のための条件が満たされたときに、前記コンテナアドミニストレータと前記ホストアドミニストレータサービスとの間の接続を開始することと、
前記要求された操作の詳細と共に前記要求を前記ホストアドミニストレータサービスに送信することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記セキュリティチェックを実施することは、前記ユーザ識別子がルートユーザを示すときに、承認の前記セキュリティチェック結果を発行することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記要求された特権操作が正常に完了したか又は拒絶されたときに、それぞれの応答をコンテナアドミニストレータに送信することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
インターセプタにおいて、成功応答を受信することと、
前記要求された特権操作が成功した旨の通知を前記アプリケーションに送信することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記要求された特権操作が正常に実行するのに失敗したときにエラーメッセージをユーザディスプレイ上に表示することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
マルチテナントコンテナプラットフォーム上でアプリケーションを実行するためのシステムであって、前記システムは、
メモリに記憶された、受信モジュールであって、コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスにおいて、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信する、受信モジュールと、
前記メモリに記憶された、実施モジュールであって、前記アプリケーションに関連付けられたユーザのセキュリティチェックを実施する、実施モジュールと、
前記メモリに記憶された、比較モジュールであって、前記セキュリティチェックの結果として承認されると、前記要求された特権操作のプロセス識別子と許可された操作のホワイトリストとを比較して、前記要求された特権操作が許容されると判定する、比較モジュールと、
前記メモリに記憶された、開始モジュールであって、前記要求された特権操作が許容されるときに、前記要求された特権操作の実行を開始する、開始モジュールと、
前記受信モジュール、前記実施モジュール、前記比較モジュール、及び前記開始モジュールを実行する、少なくとも１つの物理プロセッサと、を備える、システム。
【請求項９】
前記ホストアドミニストレータサービスが、前記ホストアドミニストレータサービスソケットハンドルを前記コンテナに渡す、請求項８に記載のシステム。
【請求項１０】
インターセプタモジュールであって、前記インターセプタモジュールは、
前記アプリケーションから前記要求を受信し、
前記要求のホワイトリストチェックを実施し、
前記ホワイトリストチェックが成功したときに、コンテナアドミニストレータモジュールを呼び出す、インターセプタモジュールと、
前記コンテナアドミニストレータモジュールであって、前記コンテナアドミニストレータモジュールは、
前記ホストアドミニストレータサービスソケットハンドルを使用して、要求された操作のための条件が満たされたときに、前記コンテナアドミニストレータモジュールと前記ホストアドミニストレータサービスとの間の接続を開始し、
前記要求された操作の詳細と共に前記要求を前記ホストアドミニストレータサービスに送信する、前記コンテナアドミニストレータモジュールと、を更に備える、請求項８に記載のシステム。
【請求項１１】
前記セキュリティチェックを実施することは、前記ユーザ識別子がルートユーザを示すときに、承認の前記セキュリティチェック結果を発行することを更に含む、請求項８に記載のシステム。
【請求項１２】
前記開始モジュールは、前記要求された特権操作が正常に完了したか又は拒絶されたときに、それぞれの応答をコンテナアドミニストレータモジュールに送信する、請求項８に記載のシステム。
【請求項１３】
成功応答を受信し、
前記要求された特権操作が成功した旨の通知を前記アプリケーションに送信する、インターセプタモジュールを更に備える、請求項８に記載のシステム。
【請求項１４】
前記開始モジュールは、前記要求された特権操作が正常に実行するのに失敗したときにエラーメッセージをユーザディスプレイ上に表示する、請求項８に記載のシステム。
【請求項１５】
１つ以上のコンピュータ実行可能命令を備える非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスにおいて、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信させ、
前記アプリケーションに関連付けられたユーザのセキュリティチェックを実施させ、
前記セキュリティチェックの結果として承認されると、前記要求された特権操作のプロセス識別子と許可された操作のホワイトリストとを比較させて、前記要求された特権操作が許容されると判定させ、
前記要求された特権操作が許容されるときに、前記要求された特権操作の実行を開始させる、非一過性コンピュータ可読媒体。
【請求項１６】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
前記ホストアドミニストレータサービスソケットハンドルを前記ホストアドミニストレータサービスから前記コンテナに渡させるコンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１７】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
インターセプタにおいて、前記アプリケーションから前記要求を受信させ、
前記インターセプタによって、前記要求のホワイトリストチェックを実施させ、
前記ホワイトリストチェックが成功したときに、前記インターセプタによってコンテナアドミニストレータを呼び出させ、
前記コンテナアドミニストレータによって、前記ホストアドミニストレータサービスソケットハンドルを使用して、要求された操作のための条件が満たされたときに、前記コンテナアドミニストレータと前記ホストアドミニストレータサービスとの間の接続を開始させ、
前記要求された操作の詳細と共に前記要求を前記ホストアドミニストレータサービスに送信させる、コンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１８】
前記セキュリティチェックを実施することは、前記ユーザ識別子がルートユーザを示すときに、承認の前記セキュリティチェック結果を発行することを更に含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１９】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、前記要求された特権操作が正常に完了したか又は拒絶されたときに、それぞれの応答をコンテナアドミニストレータに送信させる、コンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項２０】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
インターセプタにおいて、成功応答を受信させ、
前記要求された特権操作が成功した旨の通知を前記アプリケーションに送信させる、コンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
過去には、大規模なコンピューティングプロジェクトは、高くそびえるラックのコンピュータを有する大きな物理データセンタを所有する個人及び企業に限定されていた。現在、分散コンピューティングは、リソースを有する人は誰でも、サーバスペースを購入し、必要に応じて彼らの好ましいコンピューティングデバイスのインスタンスを実行することを可能にする。更なる効率の改善は、仮想化されたアプリケーションそれぞれのための仮想化されたオペレーティングシステム全体をシミュレートするために必要なリソースを必要とせずに、アドミニストレータがアプリケーションを実行することを可能にする、アプリケーションコンテナの形成により導入されてきた。コンテナは、各アプリケーションに対する処理要件を低減することができ、共有ホストコンピューティングデバイス上でより多くのアプリケーションを実行することを可能にする。コンテナは、数分続く短時間動作から数週間又は数ヶ月続く長時間動作までのいずれにも使用することができ、多種多様なコンピューティングタスクを完了するために、多種多様なアプリケーションを実行するように構成することができる。
【０００２】
共有ホストコンピューティングデバイスは、多数の異なる無関係な顧客（即ち、テナント）が、共有ホストコンピューティングデバイス上のアプリケーションコンテナの複数のそれぞれのセットを実行することができる、マルチテナンシーとして知られるアーキテクチャで実装されてもよい。マルチテナンシーは規模の利益を有利に提供するが、テナントのアプリケーションが、追加のＬｉｎｕｘ（登録商標）の能力を必要とする行為（例えば、ＣＡＰ＿ＳＹＳ＿ＡＤＭＩＮ）、及び／又は、共有ホストコンピューティングデバイスのリソースへのアクセスを得るために特権モードで動作することを必要とする行為などの、共有ホストコンピューティングデバイスのシステムアドミニストレータの能力を必要とする行為を実施するときに、望ましくない影響が生じ得る。これらの行為は、アプリケーションコンテナに、ホストストレージ、ホストネットワーキング、及びホストコンピューティングリソースへのアクセスを付与し得る。したがって、１つのテナントのアプリケーションコンテナは、他のテナントの情報及びデータへのアクセスすることができ、他のテナントのアプリケーションの動きを変更することによって、他のテナントの動作に悪影響を及ぼし得る。これらの有害な影響を防止する方法は、アプリケーションがシステムアドミニストレータの能力を必要とする行為及び／又は特権モードを使用することを必要とする行為を実施することを不可能にする、非特権モードでアプリケーションコンテナを実行することを含んでもよく、このことは次にアプリケーションのパフォーマンスに悪影響を及ぼす。
【０００３】
したがって、本開示は、マルチテナントコンテナプラットフォーム上でアプリケーションを実行するためのシステム及び方法に対する必要性を識別し、対処する。
【発明の概要】
【０００４】
以下により詳細に記載されるように、本開示は、マルチテナントコンテナプラットフォーム上で動作するアプリケーションの必要な特権操作を選択的に媒介することによって、マルチテナントコンテナプラットフォーム上でアプリケーションを実行するための様々なシステム及び方法を記載する。
【０００５】
一実施形態では、マルチテナントコンテナプラットフォーム上でアプリケーションを実行するための方法は、（１）コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスで、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信することと、（２）アプリケーションのユーザ識別子に基づいて、アプリケーションに関連付けられたユーザのセキュリティチェックを実施することと、（３）セキュリティチェックの結果として承認されると、要求された特権操作のプロセス識別子と許可された操作のホワイトリストとを比較して、要求された特権操作が許容されると判定することと、（４）要求された特権操作が許容されるときに、要求された特権操作を開始することと、を含み得る。
【０００６】
例では、本方法は、コンテナが開始された時点で、インターセプタ、コンテナアドミニストレータプログラム、及びホストアドミニストレータサービスソケットハンドルを、コンテナホストアドミニストレータサービスからコンテナに渡すことを含み得る。実施形態では、方法は、（１）インターセプタにおいて、アプリケーションから要求を受信することと、（２）インターセプタによって、要求のホワイトリストチェックを実施することと、（３）ホワイトリストチェックが成功したときにインターセプタによってコンテナアドミニストレータを呼び出すことと、（４）ホストアドミニストレータサービスソケットハンドルを使用したコンテナアドミニストレータによって、要求された操作のための条件が満たされたときに、コンテナアドミニストレータとホストアドミニストレータサービスとの間の接続を開始することと、（５）要求された操作の詳細と共に要求をホストアドミニストレータサービスに送信することと、を含み得る。
【０００７】
一例では、セキュリティチェックを実施することは、ユーザ識別子がルートユーザを示すときに承認のセキュリティチェック結果を発行することを更に含む。実施形態では、方法は、要求された特権操作が正常に完了したか又は拒絶されたときにと、それぞれの応答（例えば、「成功」又は「失敗」）をコンテナアドミニストレータに送信することを含み得る。いくつかの例では、方法は、インターセプタにおいて、成功応答を受信することと、要求された特権操作が正常に完了した旨の通知をアプリケーションに送信することと、を含み得る。更なる実施形態では、方法は、要求された特権操作が正常に実行するのに失敗したときにエラーメッセージをユーザディスプレイ上に表示することを含み得る。
【０００８】
一例では、マルチテナントコンテナプラットフォーム上でアプリケーションを実行するためのシステムは、（１）メモリに記憶された受信モジュールであって、コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスで、かつホストアドミニストレータサービスソケットハンドルを介して非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信する、受信モジュールと、（２）メモリに記憶された実施モジュールであって、アプリケーションのユーザ識別子に基づいて、アプリケーションに関連付けられたユーザのセキュリティチェックを実施する、実施モジュールと、（３）メモリに記憶された比較モジュールであって、セキュリティチェックの結果として承認されると、要求された特権操作のプロセス識別子と許可された操作のホワイトリストとを比較して、要求された特権操作が許容されると判定する、比較モジュールと、（４）メモリに記憶された開始モジュールであって、要求された特権操作が許容されるときに、要求された特権操作の実行を開始する、開始モジュールと、を含む、メモリに記憶されたいくつかのモジュールを含み得る。本システムはまた、受信モジュール、実施モジュール、比較モジュール、及び開始モジュールを実行する、少なくとも１つの物理プロセッサを含み得る。
【０００９】
いくつかの例では、上記の方法は、非一過性コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されると、コンピューティングデバイスに（１）コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスで、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信することと、（２）アプリケーションのユーザ識別子に基づいて、アプリケーションに関連付けられたユーザのセキュリティチェックを実施することと、（３）セキュリティチェックの結果として承認されると、要求された特権操作のプロセス識別子と許可された操作のホワイトリストとを比較して、要求された特権操作が許容されると判定することと、（４）要求された特権操作が許容されるときに、要求された特権操作の実行を開始することと、をさせ得る１つ以上のコンピュータ実行可能命令を含み得る。
【００１０】
上記で述べた実施形態のうちのいずれかからの特性は、本明細書で説明する一般原理に従って互いと組み合わせて使用されてもよい。これらの及び他の実施形態、特性、及び利点は、添付の図面及び請求項と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
【図面の簡単な説明】
【００１１】
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の種々の原理を実証及び説明する。
【図１】マルチテナントコンテナプラットフォーム上でアプリケーションを実行するための例示的なシステムのブロック図である。
【図２】マルチテナントコンテナプラットフォーム上でアプリケーションを実行するための更なる例示的なシステムのブロック図である。
【図３】マルチテナントコンテナプラットフォーム上でアプリケーションを実行するための例示的な方法のフローチャートである。
【図４】マルチテナントコンピューティングシステムの一例のブロック図である。  図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書において説明される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書において詳細に説明される。しかしながら、本明細書において説明される例示的な実施形態は、開示される特定の形態に限定されることを意図されない。むしろ、本開示は、添付の請求項の範囲内にある全ての修正物、同等物、及び代替物を網羅する。
【発明を実施するための形態】
【００１２】
本開示は、一般に、マルチテナントコンテナプラットフォーム上でアプリケーションを実行するためのシステム及び方法を対象とする。いくつかの例では、本明細書に記載されるシステム及び方法は、ボリュームのマウントなどのアプリケーションの要求された特権操作を媒介し、特権コンテナモデルから生じるセキュリティリスクを低減するアプリケーション固有の機能性を追加することによって、コンテナ実装ソフトウェア（例えば、ＤＯＣＫＥＲ）へのアンバサダーパターンのような拡張を提供することができる。この仲介は、安全なマルチテナントアプリケーションオーケストレーションを可能にし得る。いくつかの例では、本明細書に記載されるシステム及び方法は、２つのレベルの名前空間仮想化を使用することができ、コンテナ実装ソフトウェアは、（カーネルＡＰＩレベルで）一次レベルを提供し、ライブラリインターポジションは、特権及び仲介を必要とするシステムコールを選択的に取り扱う。これは、コンテナとコンテナ実装ソフトウェアとの間の制御点を提供する。実施形態では、開示される技術は、マルチテナントコンテナプラットフォームなどのコンテナホストに関連して利用されてもよい。
【００１３】
そうすることによって、本明細書に記載されるシステム及び方法は、アプリケーションコンテナが追加のシステムアドミニストレータ機能を伴わずに非特権モードで動作すること、及び特権操作のためのアプリケーションからの要求に応じてシステム管理操作を実施することを可能にすることによって、コンピューティングデバイスの機能を改善することができる。これにより、マルチテナントコンテナプラットフォーム上の非特権コンテナ内で、ルート相当特権を取得することなく、アプリケーションが全能力で動作することが可能になる。本明細書に記載されるシステム及び方法はまた、特権マルチテナントコンテナに関連付けられたセキュリティリスクを軽減することもできる。更に、本明細書に記載されるシステム及び方法は、特権操作のためのアプリケーションからの要求に応じて、システム管理操作を実施するためにコンテナが特権モードで再開されなければならない要件を除去することによって、コンピューティングデバイスの機能を改善することができる。また、例では、アプリケーションコンテナホストは、他のコンピューティングデバイスによる介入又は行為を必要とせずに、開示された特徴を提供することができる。例では、アプリケーションの観点から、本明細書に記載されるシステム及び方法は、アプリケーションに対して透明に見える場合がある。更に、本明細書に記載されるシステム及び方法は、アプリケーション固有の機能を提供するために、ＤＯＣＫＥＲなどのコンテナ実装ソフトウェアの能力を拡張することができる。
【００１４】
下記において、図１〜図２、及び図４を参照して、マルチテナントコンテナプラットフォーム上でアプリケーションを実行するための例示的なシステムについての詳細な説明を提供する。対応するコンピュータ実施方法についての詳細な説明もまた、図３に関連して提供される。
【００１５】
図１は、マルチテナントコンテナプラットフォーム上でアプリケーションを実行するための例示的なシステム１００のブロック図である。この図に例解されるように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含んでもよい。以下でより詳細に説明するように、モジュール１０２は、受信モジュール１０４、実施モジュール１０６、比較モジュール１０８、及び開始モジュール１１０を含んでもよい。別個の要素として例解されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
【００１６】
特定の実施形態では、図１のモジュール１０２のうちの１つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、１つ以上のタスクを実施させてもよい１つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、以下でより詳細に記載されるように、モジュール１０２のうちの１つ以上は、図２内に示されたデバイス（例えば、サーバ２０６）などの、１つ以上のコンピューティングデバイス上で記憶され、動作するように構成されたモジュールを表してもよい。図１のモジュール１０２のうちの１つ以上はまた、１つ以上のタスクを実施するように構成された１つ以上の特殊目的のコンピュータの全て又は一部分を表してもよい。
【００１７】
図１に示されているように、例示的なシステム１００はまた、ストレージデバイス１２０など、１つ以上のストレージデバイスも含み得る。ストレージデバイス１２０は、概して、データ及び／又はコンピュータ可読命令を記憶できる、任意の種類又は形式の揮発性又は不揮発性のストレージデバイス又は媒体を表す。一例では、ストレージデバイス１２０は、アプリケーションコンテナ１２１、アプリケーション１２２、コンテナアドミニストレータ１２３、インターセプタ１２４、ホストアドミニストレータサービス１２５、ホストアドミニストレータサービスソケット１２６、要求１２７、及び／又はホワイトリスト１２８のうちの１つ以上を示す情報を記憶、ロード、及び／又は維持することができる。ストレージデバイス１２０の例としては、限定することなく、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、光ディスクドライブ、キャッシュ、これらのうちの１つ以上の変形若しくは組み合わせ、及び／又は任意の他の好適なストレージメモリが挙げられる。アプリケーションコンテナ１２１は、概して、アプリケーションをホストすることができる、任意のタイプ又は形式の仮想化プラットフォームを表す。アプリケーション１２２は、概して、任意のタイプ又は形式の実行可能コードを表す。コンテナアドミニストレータ１２３は、一般に、アプリケーションコンテナ１２１内でシステム管理機能を実施することが可能な任意のタイプ又は形式の管理プログラムを表す。インターセプタ１２４は、コンテナアドミニストレータ１２３の構成要素部分であってもよく、一般に、アプリケーション１２２によるシステム管理動作をインターセプトし、ホストアドミニストレータサービス１２５に要求１２７を送信することができる任意のタイプ又は形式のインターセプタライブラリを表す。例では、インターセプタ１２４は、アプリケーション１２２によって開始されたクライアント（例えば、アプリケーション１２２）の接続及びトラップシステムの管理動作を待つことができる。ホストアドミニストレータサービス１２５は、一般に、アプリケーション１２２によって要求されたときに与えられ得るシステム管理動作のホワイトリスト１２８を実装することが可能な任意のタイプ又は形式の管理プログラムを表す。例示的な動作は、ＮＦＳ共有システム及び／又はＦＵＳＥファイルシステムをマウントすることを含み得る。ホストアドミニストレータサービス１２５は、システム１００などのコンテナホスト上で動作し、要求１２７などのコンテナ要求に応じてもよい。例では、ホストアドミニストレータサービス１２５は、ウェブ、送信制御プロトコル（ＴＣＰ）、又はＵｎｉｘドメインソケット（ＵＤＳ）を基盤としていてもよい。例えば、ホストアドミニストレータサービス１２５は、システム１００上のホストアドミニストレータサービスソケットハンドル１２６と共にＵＤＳサービスとして実行することができる。ホストアドミニストレータサービスソケットハンドル１２６は、一般に、ホストアドミニストレータサービス１２５のソケットを参照する、任意のタイプ又は形式の参照を表す。ホストアドミニストレータサービスソケットハンドル１２６は、図１に破線で示されるように、コンテナアドミニストレータ１２３がホストアドミニストレータサービス１２５とコンテナアドミニストレータ１２３との間の接続を形成するのに使用するために、アプリケーションコンテナ１２１内で利用可能であり得る。要求１２７は、概して、アプリケーションコンテナ１２１内の、ルート機能などの特権及び／又はシステム管理機能のためのアプリケーション１２２による任意のタイプ又は形式の要求を表す。ホワイトリスト１２８は、少なくとも１つの許可されたユーザ、許可された特権機能、及び／又は許可されたシステム管理機能を含む。
【００１８】
図１に示されているように、例示的なシステム１００はまた、物理プロセッサ１３０など、１つ以上の物理プロセッサも含み得る。物理プロセッサ１３０は、概して、コンピュータ可読命令を解釈でき、かつ／又は実行できる任意のタイプ又は形式のハードウェア実施処理ユニットを表す。一例では、物理プロセッサ１３０は、メモリ１４０に記憶されているモジュール１０２のうちの１つ以上にアクセスし得、かつ／又はこれらを修正し得る。追加的又は代替的に、物理プロセッサ１３０は、モジュール１０２のうちの１つ以上を実行して、マルチテナントコンテナプラットフォーム上でアプリケーションを実行することを容易にしてもよい。物理プロセッサ１３０の例としては、マイクロプロセッサ、マイクロコントローラ、中央処理ユニット（ＣＰＵ）、ソフトコアプロセッサを実装しているフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、これらのうちの１つ以上の部分、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適な物理プロセッサが挙げられるが、これらに限定されない。
【００１９】
図１に示されているように、例示的なシステム１００はまた、メモリ１４０など、１つ以上のメモリデバイスも含み得る。メモリ１４０は、データ及び／又はコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の揮発性又は不揮発性のストレージデバイス又は媒体を概して表す。一例では、メモリ１４０は、モジュール１０２のうちの１つ以上を記憶、ロード、及び／又は維持し得る。メモリ１４０の例としては、限定することなく、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、光ディスクドライブ、キャッシュ、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なストレージメモリが挙げられる。
【００２０】
本明細書において使用される際、用語「アプリケーション」は、概して、プロセスを開始することができる任意の実行可能コードを指す。いくつかの実施形態において、アプリケーションは、ソフトウェアであってもよい。追加的又は代替的に、アプリケーションはスクリプトであってもよい。いくつかの実施例において、アプリケーションはスタンドアロンアプリケーションであってもよい。他の実施例において、アプリケーションは、ウェブアプリケーションのためのインターフェースなど、より大きなシステムのためのフロントエンドであってもよい。いくつかの実施例において、アプリケーションは、相互動作プログラム及び／又は実行可能オブジェクトの集合を含んでもよい。一実施例において、アプリケーションは、バックアップアプリケーション、記憶アプリケーション、及び／又は重複排除アプリケーションであってもよい。
【００２１】
本明細書において使用される際、用語「コンテナ」は、概して、オペレーティングシステム全体を含まないが、ホストコンピューティングシステムのオペレーティングシステムからコンピューティングリソースによって補足されたときに、少なくとも１つのプロセス及び／又はアプリケーションを実行するのに十分なコンピューティングリソースを含む任意のタイプの仮想環境を指す。いくつかの実施形態において、コンテナ内のリソース及び／又はプロセスは、コンテナの外側のリソース及び／又はプロセスから分離されてもよい。例えば、コンテナは、他のソフトウェアとの共有カーネル空間によって提供されている間、配布システム上のユーザ空間を配布システム上の他のソフトウェアから分離してもよい。
【００２２】
本明細書において使用される際、用語「ユーザ空間」は、概して、アプリケーションソフトウェアが実行されるコンピューティング環境内のメモリの部分を指す。いくつかの実施形態において、ユーザ空間は、ライブラリ、グラフィックスエンジン、特定のデバイス用のデバイスドライバ、及び／又はシステムデーモンを含んでもよい。
【００２３】
本明細書において使用される際、用語「カーネル空間」は、オペレーティングシステムカーネル、カーネル拡張部、及びデバイスドライバを実行するために予約されたコンピューティング環境内のメモリの部分を指す。いくつかの実施形態において、コンテナは、単一のプロセス及び／又はアプリケーションのみを実行してもよく、他の実施形態において、コンテナは、複数のプロセス及び／又はアプリケーションを実行してもよい。いくつかの実施形態において、コンテナは、ＤＯＣＫＥＲコンテナであってもよい。
【００２４】
本明細書において使用される際、用語「アプリケーションコンテナ」は、概して、アプリケーションを記憶及び／又はホストするコンテナを指す。いくつかの実施例において、アプリケーションコンテナはまた、アプリケーションのためにバンドルされた構成要素をホストしてもよい。
【００２５】
図１の例示的なシステム１００は、様々な態様で実装され得る。例えば、例示的なシステム１００の全て又は一部分は、図２の例示的なシステム２００の部分を表し得る。図２に示されるように、システム２００は、ネットワーク２０４を介してサーバ２０６と通信するコンピューティングデバイス２０２を含み得る。一例では、モジュール１０２の機能性の全て又は一部分は、コンピューティングデバイス２０２、サーバ２０６、及び／又は任意の他の好適なコンピューティングシステムによって実施され得る。下記でより詳細に記載されるように、図１のモジュール１０２のうちの１つ以上は、サーバ２０６の少なくとも１つのプロセッサによって実行されるとき、サーバ２０６がマルチテナントコンテナプラットフォーム上でアプリケーションを実行することを可能にし得る。
【００２６】
コンピューティングデバイス２０２は、コンピュータ実行可能命令を読み出すことができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。いくつかの例では、コンピューティングデバイス２０２は、コンピュータ実行ユーザ側ソフトウェアを表すことができる。コンピューティングデバイス２０２の追加例としては、ノートブック、タブレット、デスクトップ、サーバ、携帯電話、個人情報機器（ＰＤＡ）、マルチメディアプレイヤー、組み込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラスなど）、スマートビークル、ＩｏＴデバイス（例えば、スマート家電など）、ゲーム機、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
【００２７】
ネットワーク２０４は、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概して表す。一実施例において、ネットワーク２０４は、コンピューティングデバイス２０２とサーバ２０６との間の通信を容易にし得る。この例では、ネットワーク２０４は、無線及び／又は有線接続を使用して、通信又はデータ転送を容易にし得る。ネットワーク２０４の例としては、限定するものではないが、イントラネット、ワイドエリアネットワークＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラネットワーク（例えば、汎欧州デジタル移動電話方式（ＧＳＭ）ネットワーク）、１つ以上の上記の部分、上記のうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なネットワークを含む。
【００２８】
サーバ２０６は、マルチテナントコンテナプラットフォーム上でアプリケーションを実行することができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。サーバ２０６の付加的な例としては、特定のソフトウェアアプリケーションを動作させ、かつ／又は様々なストレージ、データベース、及び／若しくはウェブサービスを提供するように構成された、ストレージサーバ、データベースサーバ、アプリケーションサーバ、及び／又はウェブサーバが挙げられるが、これらに限定されない。図２において単一体として例解されるが、サーバ２０６は、互いに連動して働き、かつ／又は動作する複数のサーバを含み、かつ／又は表してもよい。例では、サーバ２０６は、マルチテナンシーを促進することができるクラウドコンピューティングコンピューティング環境を提供することができる。換言すると、本明細書において説明されるモジュールは、本明細書において説明される機能のうちの１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成し得る。例えば、本明細書において説明されるモジュールのうちの１つ以上は、２つ以上のクライアント（例えば、顧客）が、サーバ２０６上で動作しているアプリケーション１２２を共有することを可能にするように、サーバ２０６をプログラムし得る。このようにプログラムされたサーバは、複数の顧客（即ち、テナント）間でアプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有し得る。本明細書において説明されるモジュールのうちの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び／又は構成情報を分割し得る。例示的なマルチテナントコンテナプラットフォームについて、図４に関して更に詳細に説明する。
【００２９】
多くの他のデバイス又はサブシステムは、図１のシステム１００及び／又は図２のシステム２００に接続され得る。逆に、図１及び図２に示す構成要素及びデバイスの全てが、本明細書において説明及び／又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図２に示すものとは異なる様式で相互接続されてもよい。システム１００及び２００はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を採用してもよい。例えば、本明細書において開示される例示的な実施形態のうちの１つ以上は、コンピュータ可読媒体上に、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、及び／又はコンピュータ制御論理とも称される）としてコード化され得る。
【００３０】
「コンピュータ可読媒体」という用語は、本明細書において使用される際、概して、コンピュータ可読命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波などの伝送タイプ媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光記憶媒体（例えば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、及びＢＬＵ−ＲＡＹディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュ媒体）などの非一時的タイプ媒体、並びに他の分散システムが挙げられる。
【００３１】
図３は、マルチテナントコンテナプラットフォーム上でアプリケーションを実行するための例示的なコンピュータ実装方法３００のフローチャートである。図３に示されている工程は、図１のシステム１００、図２のシステム２００、及び／又はこれらのうちの１つ以上の変形若しくは組み合わせを含む、任意の好適なコンピュータ実行可能コード及び／又はコンピューティングシステムによって実施され得る。一例では、図３に示されている工程のそれぞれは、複数の副工程を含む及び／又はそれらによって表される構造を有するアルゴリズムを表すものであり得、これらの例を以下に詳細に示す。
【００３２】
例では、方法３００は、コンテナが開始された時点で、インターセプタ、コンテナアドミニストレータプログラム、及びホストアドミニストレータサービスソケットハンドルを、コンテナホストからコンテナに渡すことを含み得る。
【００３３】
図３に示されるように、工程３０２において、本明細書に記載されるシステムのうちの１つ以上は、アプリケーションによる特権操作を開始し得る。本明細書に記載のシステムは、様々な方法で工程３０２を実施してよい。例えば、アプリケーションコンテナ１２１内のアプリケーション１２２（例えば、非特権コンテナ）は、特権操作の要求１２７を開始することができる。
【００３４】
図３に示すように、工程３０４において、本明細書に記載されるシステムのうちの１つ以上は、要求された特権操作がホストアドミニストレータサービスに送信されなければならない場合にインターセプタを呼び出すことができる。本明細書に記載のシステムは、様々な方法で工程３０４を実施してよい。例えば、インターセプタ１２４は、要求１２７がホストアドミニストレータサービス１２５に送信されなければならない場合に呼び出すことができる。
【００３５】
図３に示すように、工程３０６において、本明細書において説明されるシステムのうちの１つ以上は、インターセプタによってコンテナアドミニストレータを呼び出すことができる。本明細書に記載のシステムは、様々な方法で工程３０６を実施してよい。例えば、インターセプタ１２４は、コンテナアドミニストレータ１２３を呼び出すことができる。
【００３６】
図３に示すように、工程３０８において、本明細書に記載されるシステムのうちの１つ以上は、コンテナ内で利用可能なホストアドミニストレータサービスソケットハンドルを使用して接続を開始し、特権操作の要求を送信することができる。本明細書に記載のシステムは、様々な方法で工程３０８を実施してよい。例えば、コンテナアドミニストレータ１２３は、アプリケーションコンテナ１２１内で利用可能なホストアドミニストレータサービスソケットハンドル１２６を使用して、ホストアドミニストレータサービス１２５との接続を開始し、特権操作の要求１２７を送信することができる。
【００３７】
図３に示すように、工程３１０において、本明細書に記載されるシステムのうちの１つ以上は、コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスにおいて、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作しているアプリケーションから特権操作の要求を受信することができる。本明細書に記載のシステムは、様々な方法で工程３１０を実施してよい。例えば、受信モジュール１０４は、図２のサーバ２０６の一部として、システム１００（コンテナホストコンピューティングデバイス）上のホストアドミニストレータサービス１２５で、かつホストアドミニストレータサービスソケットハンドル１２６を介して、アプリケーションコンテナ１２１内で動作しているアプリケーション１２２から特権操作の要求１２７を受信することができる。
【００３８】
追加の例では、方法３００は、オンデマンドで、ホストアドミニストレータサービスソケットハンドルをコンテナホストからコンテナに渡すことを含み得る。例えば、図２のサーバ２０６は、ホストアドミニストレータサービスソケットハンドル１２６をアプリケーションコンテナ１２１に渡すことができる。
【００３９】
いくつかの実施形態では、方法３００は、（１）インターセプタにおいて、アプリケーションから要求を受信することと、（２）インターセプタによって、要求のホワイトリストチェックを実施することと、（３）ホワイトリストチェックが成功したときにインターセプタによってコンテナアドミニストレータを呼び出すことと、（４）ホストアドミニストレータサービスソケットハンドルを使用したコンテナアドミニストレータによって、要求された操作のための条件が満たされたときに、コンテナアドミニストレータとホストアドミニストレータサービスとの間の接続を開始することと、（５）要求された操作の詳細と共に要求をホストアドミニストレータサービスに送信することと、を含み得る。いくつかの実施形態では、図２のサーバ２０６は、アプリケーション１２２から要求１２７を受信し、要求１２７のホワイトリストチェックを実施し、ホワイトリストチェックが成功したときに、コンテナアドミニストレータモジュール１２３を呼び出すインターセプタ１２４、並びに、要求された操作のための条件が満たされたときにホストアドミニストレータのソケットハンドル１２６を使用してホストアドミニストレータサービス１２５との接続を開始することと、要求１２７を操作の詳細と共にホストアドミニストレータサービス１２５に送信することとの両方を行うコンテナアドミニストレータモジュール１２３を含み得る。更なる例では、インターセプタは、操作を再開する時点を示すために、他のソフトウェアモジュール（例えば、コンテナアドミニストレータ）への予想される関数呼び出しの指示を提供することができる。
【００４０】
図３に示すように、工程３１２において、本明細書に記載されるシステムのうちの１つ以上は、アプリケーションのユーザ識別子に基づいて、アプリケーションに関連付けられたユーザのセキュリティチェックを実施してもよい。本明細書に記載のシステムは、様々な方法で工程３１２を実施してよい。例えば、実施モジュール１０６は、図２のサーバ２０６の一部として、アプリケーション１２２のユーザ識別子（ＵＩＤ）に基づいて、アプリケーション１２２に関連付けられたユーザのセキュリティチェックを実施してもよい。例では、ＵＤＳ接続を使用して、要求された特権操作のＵＩＤ及びプロセス識別子（ＰＩＤ）にアクセスすることができる。
【００４１】
追加の例では、セキュリティチェックを実施することは、ユーザ識別子がルートユーザを示すときに承認のセキュリティチェック結果を発行することを更に含む。いくつかの実施形態では、実施モジュール１０６は、図２のサーバ２０６の一部として、ユーザ識別子がルートユーザを示すときに承認のセキュリティチェック結果を発行することができる。例では、実施モジュール１２６は、要求１２７がルートユーザによって開始されない場合に要求１２７を拒否し、そうでなければ続行する。
【００４２】
図３に示すように、工程３１４において、本明細書に記載されるシステムのうちの１つ以上は、セキュリティチェックの結果として承認されると、要求された特権操作のプロセス識別子を、許可された操作のホワイトリストと比較して、要求された特権操作が許容されると判定することができる。本明細書に記載のシステムは、様々な方法で工程３１４を実施してよい。例えば、比較モジュール１０８は、図２のサーバ２０６の一部として、セキュリティチェックの結果として承認されると、要求１２７における要求された特権操作のＰＩＤを、許可された操作のホワイトリスト１２８と比較して、要求１２７における要求された特権操作が許容されると判定することができる。実施形態では、要求１２７における要求された特権操作がホワイトリスト１２８上にない場合、比較モジュール１０８は要求１２７を拒否し、そうでなければ続行する。更に、ターゲットコンテナは、ＰＩＤを使用して識別されてもよい。
【００４３】
図３に示すように、工程３１６において、本明細書に記載されるシステムのうちの１つ以上は、要求された特権操作が許容される場合に、要求された特権操作の実行を開始することができる（例えば、共有ホストコンピューティングシステム上で）。本明細書に記載のシステムは、様々な方法で工程３１６を実施してよい。例えば、開始モジュール１１０は、図２のサーバ２０６の一部として、要求１２７における要求された特権操作が許容される場合に、サーバ２０６上で要求された特権操作の実行を開始することができる。例えば、開始モジュール１１０は、アプリケーションコンテナ１２１内のＮＦＳ共有のマウントを開始してもよい。実施形態では、開始モジュール１１０は、特権操作（例えば、ｎｓｅｎｔｅｒ−ｍ−ｕ−ｉ−ｎ−ｐ−ｔ「＄｛ｃｏｎｔａｉｎｅｒ＿ｐｉｄ｝」＄｛ｃｌｉｅｎｔ＿ｏｐｅｒａｔｉｏｎ｝）を実行するターゲットとして、アプリケーションコンテナ１２１を用いてｎｓｅｎｔｅｒコマンドを使用してもよい。
【００４４】
追加の例では、方法３００は、要求された特権操作が成功したか又は拒絶されたときに、それぞれの応答（例えば、「成功」又は「失敗」）をコンテナアドミニストレータに送信することを含み得る。いくつかの実施形態では、開始モジュール１１０は、要求１２７における要求された特権操作が正常に完了したか、又は拒絶されたときに、それぞれの応答をコンテナアドミニストレータモジュール１２３に送信する。
【００４５】
図３に示すように、工程３１８において、本明細書に記載されるシステムのうちの１つ以上は、ホストアドミニストレータからコンテナアドミニストレータへ、コンテナアドミニストレータからインターセプタへ、及びインターセプタからアプリケーションへ応答（成功又は失敗を示す）を送信することができることができる。いくつかの実施形態では、方法３００は、コンテナアドミニストレータにおいて、成功応答又は拒絶応答を受信することと、要求された特権操作が正常に完了したか又は拒絶された旨の対応する通知をインターセプタを介してアプリケーションに送信することと、を含み得る。本明細書に記載のシステムは、様々な方法で工程３１８を実施してよい。例えば、コンテナアドミニストレータ１２３は、図２のサーバ２０６の一部として、成功応答を受信し、要求された特権操作が正常に完了した旨の通知を、インターセプタ１２４を介して、アプリケーション１２２に送信することができる。別の例では、コンテナアドミニストレータ１２３は、図２のサーバ２０６の一部として、失敗応答を受信し、要求された特権操作が拒絶された旨の通知を、インターセプタ１２４を介してアプリケーション１２２に送信することができる。例では、アプリケーション１２２の観点から、方法３００は、アプリケーション１２２に対して透明に見える。
【００４６】
追加の実施形態では、方法３００は、要求された特権操作が正常に実行するのに失敗したときにエラーメッセージをユーザディスプレイ上に表示することを含み得る。例えば、開始モジュール１１０は、図２のサーバ２０６の一部として、要求された特権操作が正常に実行するのに失敗したときにエラーメッセージをユーザディスプレイ上に表示することを開始することができる。
【００４７】
上で詳述したように、図３の方法３００に概説される工程は、アプリケーションの要求された特権操作を媒介し、特権コンテナモデルから生じるセキュリティリスクを低減するアプリケーション固有の機能性を追加することによって、コンテナ実装ソフトウェアへのアンバサダーパターンのような拡張を提供することができる。そうすることによって、本明細書に記載されるシステム及び方法は、マルチテナントコンテナプラットフォーム上の非特権コンテナ内で、ルート相当特権を取得することなく、アプリケーションが全能力で動作することが可能になる安全なマルチテナントアプリケーションオーケストレーションを可能にすることができる。
【００４８】
図４は、マルチテナントコンピューティングシステム４００の一例のブロック図である。図４に示すように、マルチテナントコンピューティングシステム４００は、非特権アプリケーションコンテナ４０４を提供する、コンテナホストコンピューティングデバイス４０２を含んでもよい。一例では、モジュール１０２の機能性の全て又は一部分は、コンテナホストコンピューティングデバイス４０２によって実施され得る。コンテナホストコンピューティングデバイス４０２は、一般に、マルチテナントコンテナプラットフォーム上のアプリケーション１  ４０６及びアプリケーション２  ４０８などのアプリケーションを実行することができる、任意のタイプ又は形式のコンピューティングデバイスを表す。コンテナホストコンピューティングデバイス４０２の付加的な例としては、特定のソフトウェアアプリケーションを動作させ、かつ／又は様々なストレージ、データベース、及び／若しくはウェブサービスを提供するように構成された、ストレージサーバ、データベースサーバ、アプリケーションサーバ、及び／又はウェブサーバが挙げられるが、これらに限定されない。図４において単一体として例解されるが、コンテナホストコンピューティングデバイス４０２は、互いに連動して働き、及び／又は動作する複数のサーバを含み、及び／又は表してもよい。例では、コンテナホストコンピューティングデバイス４０２は、マルチテナンシーを促進することができるクラウドコンピューティング環境を提供することができる。本明細書において説明されるモジュールのうちの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び／又は構成情報を分割し得る。例えば、コンテナホストコンピューティングデバイス４０２は、ユーザ１  ４１０及びユーザ２  ４１２がアプリケーション２  ４０８を共有することを可能にし、一方で、ユーザ１  ４１０のみがアプリケーション１  ４０６を使用することを可能にすることができる。いくつかの実施形態では、本明細書に記載されるモジュールのうちの１つ以上は、アプリケーション２  ４０８がアプリケーション１  ４０６に悪影響を及ぼすことなく、非特権アプリケーションコンテナ４０４内でシステム管理操作を実施することを可能にするように、コンテナホストコンピューティングデバイス４０２をプログラムすることができる。これにより、コンテナホストコンピューティングデバイス４０２上の非特権コンテナ４０４内で、ルート相当特権を取得することなく、アプリケーション１  ４０６及びアプリケーション２  ４０８が全能力で動作することが可能になる。
【００４９】
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書において説明及び／又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア（又はこれらの任意の組み合わせ）構成を使用して、個々に、かつ／又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成し得るため、事実上、例として見なされるべきである。
【００５０】
いくつかの例では、図１の例示的なシステム１００の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど）は、ウェブブラウザ又は他のリモートインターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、リモートデスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
【００５１】
種々の実施形態において、図１の例示的なシステム１００の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナンシーを容易にし得る。換言すると、本明細書において説明されるモジュールは、本明細書において説明される機能のうちの１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成し得る。例えば、本明細書において説明されるモジュールのうちの１つ以上は、２つ以上のクライアント（例えば、顧客）が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客（即ち、テナント）間でアプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有し得る。本明細書において説明されるモジュールのうちの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び／又は構成情報を分割し得る。
【００５２】
種々の実施形態によれば、図１の例示的なシステム１００の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書において説明されるモジュール及び／又はデータは、仮想マシン内に存在し得る、かつ／又はそこで実行し得る。本明細書において使用される際、「仮想マシン」という用語は、概して、仮想マシンマネージャ（例えば、ハイパーバイザ）によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。
【００５３】
いくつかの例では、図１の例示的なシステム１００の全て又は一部分は、モバイルコンピューティング環境の部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス（例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス）、これらのうちの１つ以上の変形若しくは組み合わせ、又は任意の他の好適なモバイルコンピューティングデバイスを含む、広範なモバイルコンピューティングデバイスによって実装され得る。一部の例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に１つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、かつ／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力を制限する、制限されたプラットフォーム、アプリケーションのインストールを制限する（例えば、承認されたアプリケーションストアのみから得る）管理などを含む、１つ以上の異なる特性を含み得る。本明細書において説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、かつ／又はモバイルコンピューティング環境と相互作用し得る。
【００５４】
本明細書において説明及び／又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させてもよい。例えば、本明細書において例解及び／又は説明される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書において説明及び／又は例解される種々の例示的な方法もまた、本明細書において説明若しくは例解される工程のうちの１つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
【００５５】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書において説明及び／又は例解されているが、これらの例示的な実施形態のうちの１つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書において開示される実施形態はまた、あるタスクを実施するモジュールを使用して、実装され得る。これらのモジュールは、コンピュータ可読記憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのモジュールは、本明細書において開示される例示的な実施形態のうちの１つ以上を実施するように、コンピューティングシステムを構成し得る。
【００５６】
先述の説明は、当業者が、本明細書において開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、網羅的であることを意図するものでも、開示されたいずれかの正確な形態に限定されることを意図するものでもない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書において開示される実施形態は、全ての点において、例解的であり、制限的ではないと見なされるべきである。本開示の範囲を判定する上では、添付の請求項及びそれらの同等物を参照するべきである。
【００５７】
別途記載されない限り、「〜に接続される（connected to）」及び「〜に連結される（coupled to）」という用語（及びそれらの派生語）は、本明細書及び請求項において使用される際、直接的及び間接的（即ち、他の要素又は構成要素を介した）接続の両方を許容するとして解釈されるものとする。加えて、「ａ」又は「ａｎ」という用語は、本明細書及び請求項において使用される際、「〜のうちの少なくとも１つ（at least one of）」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む（including）」及び「有する（having）」という用語（及びそれらの派生語）は、本明細書及び請求項において使用される際、「備える（comprising）」という語と同義的であり、かつ同じ意味を有する。
【図１】
2021513710.tif 000003
【図２】
2021513710.tif 000004
【図３】
2021513710.tif 000005
【図４】
2021513710.tif 000006
【手続補正書】
【提出日】令和1年7月15日(2019.7.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチテナントコンテナプラットフォーム上でアプリケーションを実行するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを含むコンテナホストコンピューティングデバイスによって実施され、前記方法は、
前記コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスにおいて、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信することと、
前記アプリケーションに関連付けられたユーザのセキュリティチェックを実施することと、
前記セキュリティチェックの結果として承認されると、前記要求された特権操作と許可された操作のホワイトリストとを比較して、前記要求された特権操作が許容されると判定することと、
前記要求された特権操作が許容されるときに、前記要求された特権操作の実行を開始することと、を含むコンピュータ実装方法。
【請求項２】
前記ホストアドミニストレータサービスソケットハンドルを前記コンテナホストアドミニストレータサービスから前記コンテナに渡すことを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
インターセプタにおいて、前記アプリケーションから前記要求を受信することと、
前記インターセプタによって、前記要求のホワイトリストチェックを実施することと、
前記ホワイトリストチェックが成功したときに、前記インターセプタによってコンテナアドミニストレータを呼び出すことと、
前記コンテナアドミニストレータによって、前記ホストアドミニストレータサービスソケットハンドルを使用して、要求された操作のための条件が満たされたときに、前記コンテナアドミニストレータと前記ホストアドミニストレータサービスとの間の接続を開始することと、
前記要求された操作の詳細と共に前記要求を前記ホストアドミニストレータサービスに送信することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記セキュリティチェックを実施することは、前記ユーザ識別子がルートユーザを示すときに、承認の前記セキュリティチェック結果を発行することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記要求された特権操作が正常に完了したか又は拒絶されたときに、それぞれの応答をコンテナアドミニストレータに送信することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
インターセプタにおいて、成功応答を受信することと、
前記要求された特権操作が成功した旨の通知を前記アプリケーションに送信することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記要求された特権操作が正常に実行するのに失敗したときにエラーメッセージをユーザディスプレイ上に表示することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
マルチテナントコンテナプラットフォーム上でアプリケーションを実行するためのシステムであって、前記システムは、
メモリに記憶された、受信モジュールであって、コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスにおいて、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信する、受信モジュールと、
前記メモリに記憶された、実施モジュールであって、前記アプリケーションに関連付けられたユーザのセキュリティチェックを実施する、実施モジュールと、
前記メモリに記憶された、比較モジュールであって、前記セキュリティチェックの結果として承認されると、前記要求された特権操作と許可された操作のホワイトリストとを比較して、前記要求された特権操作が許容されると判定する、比較モジュールと、
前記メモリに記憶された、開始モジュールであって、前記要求された特権操作が許容されるときに、前記要求された特権操作の実行を開始する、開始モジュールと、
前記受信モジュール、前記実施モジュール、前記比較モジュール、及び前記開始モジュールを実行する、少なくとも１つの物理プロセッサと、を備える、システム。
【請求項９】
前記ホストアドミニストレータサービスが、前記ホストアドミニストレータサービスソケットハンドルを前記コンテナに渡す、請求項８に記載のシステム。
【請求項１０】
インターセプタモジュールであって、前記インターセプタモジュールは、
前記アプリケーションから前記要求を受信し、
前記要求のホワイトリストチェックを実施し、
前記ホワイトリストチェックが成功したときに、コンテナアドミニストレータモジュールを呼び出す、インターセプタモジュールと、
前記コンテナアドミニストレータモジュールであって、前記コンテナアドミニストレータモジュールは、
前記ホストアドミニストレータサービスソケットハンドルを使用して、要求された操作のための条件が満たされたときに、前記コンテナアドミニストレータモジュールと前記ホストアドミニストレータサービスとの間の接続を開始し、
前記要求された操作の詳細と共に前記要求を前記ホストアドミニストレータサービスに送信する、前記コンテナアドミニストレータモジュールと、を更に備える、請求項８に記載のシステム。
【請求項１１】
前記セキュリティチェックを実施することは、前記ユーザ識別子がルートユーザを示すときに、承認の前記セキュリティチェック結果を発行することを更に含む、請求項８に記載のシステム。
【請求項１２】
前記開始モジュールは、前記要求された特権操作が正常に完了したか又は拒絶されたときに、それぞれの応答をコンテナアドミニストレータモジュールに送信する、請求項８に記載のシステム。
【請求項１３】
成功応答を受信し、
前記要求された特権操作が成功した旨の通知を前記アプリケーションに送信する、インターセプタモジュールを更に備える、請求項８に記載のシステム。
【請求項１４】
前記開始モジュールは、前記要求された特権操作が正常に実行するのに失敗したときにエラーメッセージをユーザディスプレイ上に表示する、請求項８に記載のシステム。
【請求項１５】
１つ以上のコンピュータ実行可能命令を備える非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスにおいて、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信させ、
前記アプリケーションに関連付けられたユーザのセキュリティチェックを実施させ、
前記セキュリティチェックの結果として承認されると、前記要求された特権操作と許可された操作のホワイトリストとを比較させて、前記要求された特権操作が許容されると判定させ、
前記要求された特権操作が許容されるときに、前記要求された特権操作の実行を開始させる、非一過性コンピュータ可読媒体。
【請求項１６】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
前記ホストアドミニストレータサービスソケットハンドルを前記ホストアドミニストレータサービスから前記コンテナに渡させるコンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１７】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
インターセプタにおいて、前記アプリケーションから前記要求を受信させ、
前記インターセプタによって、前記要求のホワイトリストチェックを実施させ、
前記ホワイトリストチェックが成功したときに、前記インターセプタによってコンテナアドミニストレータを呼び出させ、
前記コンテナアドミニストレータによって、前記ホストアドミニストレータサービスソケットハンドルを使用して、要求された操作のための条件が満たされたときに、前記コンテナアドミニストレータと前記ホストアドミニストレータサービスとの間の接続を開始させ、
前記要求された操作の詳細と共に前記要求を前記ホストアドミニストレータサービスに送信させる、コンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１８】
前記セキュリティチェックを実施することは、前記ユーザ識別子がルートユーザを示すときに、承認の前記セキュリティチェック結果を発行することを更に含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１９】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、前記要求された特権操作が正常に完了したか又は拒絶されたときに、それぞれの応答をコンテナアドミニストレータに送信させる、コンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項２０】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
インターセプタにおいて、成功応答を受信させ、
前記要求された特権操作が成功した旨の通知を前記アプリケーションに送信させる、コンピュータ実行可能命令を含む、請求項１５に記載の非一過性コンピュータ可読媒体。
【手続補正書】
【提出日】令和2年8月13日(2020.8.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチテナントコンテナプラットフォーム上でアプリケーションを実行するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを含むコンテナホストコンピューティングデバイスによって実施され、前記方法は、
前記コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスにおいて、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信することと、
前記アプリケーションに関連付けられたユーザのセキュリティチェックを実施することと、
前記セキュリティチェックの結果として承認されると、前記要求された特権操作と許可された操作のホワイトリストとを比較して、前記要求された特権操作が許容されると判定することと、
前記要求された特権操作が許容されるときに、前記要求された特権操作の実行を開始することと、を含むコンピュータ実装方法。
【請求項２】
インターセプタにおいて、前記アプリケーションから前記要求を受信することと、
前記インターセプタによって、前記要求のホワイトリストチェックを実施することと、
前記ホワイトリストチェックが成功したときに、前記インターセプタによってコンテナアドミニストレータを呼び出すことと、
前記コンテナアドミニストレータによって、前記ホストアドミニストレータサービスソケットハンドルを使用して、要求された操作のための条件が満たされたときに、前記コンテナアドミニストレータと前記ホストアドミニストレータサービスとの間の接続を開始することと、
前記要求された操作の詳細と共に前記要求を前記ホストアドミニストレータサービスに送信することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記セキュリティチェックを実施することは、前記ユーザ識別子がルートユーザを示すときに、承認の前記セキュリティチェック結果を発行することを更に含む、請求項１又は２に記載のコンピュータ実装方法。
【請求項４】
前記要求された特権操作が正常に完了したか又は拒絶されたときに、それぞれの応答をコンテナアドミニストレータに送信することを更に含む、請求項１又は２又は３に記載のコンピュータ実装方法。
【請求項５】
インターセプタにおいて、成功応答を受信することと、
前記要求された特権操作が成功した旨の通知を前記アプリケーションに送信することと、を更に含む、請求項１又は２又は３又は４に記載のコンピュータ実装方法。
【請求項６】
マルチテナントコンテナプラットフォーム上でアプリケーションを実行するためのシステムであって、前記システムは、
メモリに記憶された、受信するための手段であって、コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスにおいて、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信する、受信するための手段と、
前記メモリに記憶された、実施するための手段であって、前記アプリケーションに関連付けられたユーザのセキュリティチェックを実施する、実施するための手段と、
前記メモリに記憶された、比較するための手段であって、前記セキュリティチェックの結果として承認されると、前記要求された特権操作と許可された操作のホワイトリストとを比較して、前記要求された特権操作が許容されると判定する、比較するための手段と、
前記メモリに記憶された、開始するための手段であって、前記要求された特権操作が許容されるときに、前記要求された特権操作の実行を開始する、開始するための手段と、
前記受信するための手段、前記実施するための手段、前記比較するための手段、及び前記開始するための手段を実行する少なくとも１つの物理プロセッサと、を備える、システム。
【請求項７】
インターセプトするための手段であって、前記インターセプトするための手段は、
前記アプリケーションから前記要求を受信し、
前記要求のホワイトリストチェックを実施し、
前記ホワイトリストチェックが成功したときに、コンテナ管理のための手段を呼び出す、インターセプトするための手段と、
前記コンテナ管理のための手段であって、前記コンテナ管理のための手段は、
前記ホストアドミニストレータサービスソケットハンドルを使用して、要求された操作のための条件が満たされたときに、前記コンテナ管理のための手段と前記ホストアドミニストレータサービスとの間の接続を開始し、
前記要求された操作の詳細と共に前記要求を前記ホストアドミニストレータサービスに送信する前記コンテナ管理のための手段と、を更に備える、請求項６に記載のシステム。
【請求項８】
前記セキュリティチェックを実施することは、前記ユーザ識別子がルートユーザを示すときに、承認の前記セキュリティチェック結果を発行することを更に含む、請求項６又は７に記載のシステム。
【請求項９】
前記開始するための手段は、前記要求された特権操作が正常に完了したか又は拒絶されたときに、それぞれの応答をコンテナ管理のための手段に送信する、請求項６又は７又は８に記載のシステム。
【請求項１０】
インターセプトするための手段であって、前記インターセプトするための手段は、
成功応答を受信し、
前記要求された特権操作が成功した旨の通知を前記アプリケーションに送信する、インターセプトするための手段を更に備える、請求項６又は７又は８又は９に記載のシステム。
【請求項１１】
１つ以上のコンピュータ実行可能命令を備える非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
コンテナホストコンピューティングデバイス上のホストアドミニストレータサービスにおいて、かつホストアドミニストレータサービスソケットハンドルを介して、非特権コンテナ内で動作するアプリケーションから特権操作の要求を受信させ、
前記アプリケーションに関連付けられたユーザのセキュリティチェックを実施させ、
前記セキュリティチェックの結果として承認されると、前記要求された特権操作と許可された操作のホワイトリストとを比較させて、前記要求された特権操作が許容されると判定させ、
前記要求された特権操作が許容されるときに、前記要求された特権操作の実行を開始させる、非一過性コンピュータ可読媒体。
【請求項１２】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
インターセプタにおいて、前記アプリケーションから前記要求を受信させ、
前記インターセプタによって、前記要求のホワイトリストチェックを実施させ、
前記ホワイトリストチェックが成功したときに、前記インターセプタによってコンテナアドミニストレータを呼び出させ、
前記コンテナアドミニストレータによって、前記ホストアドミニストレータサービスソケットハンドルを使用して、要求された操作のための条件が満たされたときに、前記コンテナアドミニストレータと前記ホストアドミニストレータサービスとの間の接続を開始させ、
前記要求された操作の詳細と共に前記要求を前記ホストアドミニストレータサービスに送信させる、コンピュータ実行可能命令を含む、請求項１１に記載の非一過性コンピュータ可読媒体。
【請求項１３】
前記セキュリティチェックを実施することは、前記ユーザ識別子がルートユーザを示すときに、承認の前記セキュリティチェック結果を発行することを更に含む、請求項１１又は１２に記載の非一過性コンピュータ可読媒体。
【請求項１４】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、前記要求された特権操作が正常に完了したか又は拒絶されたときに、それぞれの応答をコンテナアドミニストレータに送信させる、コンピュータ実行可能命令を含む、請求項１１又は１２又は１３に記載の非一過性コンピュータ可読媒体。
【請求項１５】
前記コンピュータ実行可能命令が、前記コンピューティングデバイスに、
インターセプタにおいて、成功応答を受信させ、
前記要求された特権操作が成功した旨の通知を前記アプリケーションに送信させる、コンピュータ実行可能命令を含む、請求項１１又は１２又は１３又は１４に記載の非一過性コンピュータ可読媒体。
【国際調査報告】
2021513710.tif 000007
2021513710.tif 000008