JP2022508899A - 個別化されたネットワークサービスのためのコンテナビルダ - Google Patents

個別化されたネットワークサービスのためのコンテナビルダ Download PDF

Info

Publication number
JP2022508899A
JP2022508899A JP2021546473A JP2021546473A JP2022508899A JP 2022508899 A JP2022508899 A JP 2022508899A JP 2021546473 A JP2021546473 A JP 2021546473A JP 2021546473 A JP2021546473 A JP 2021546473A JP 2022508899 A JP2022508899 A JP 2022508899A
Authority
JP
Japan
Prior art keywords
container
builder
data
image
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021546473A
Other languages
English (en)
Other versions
JP7434342B2 (ja
Inventor
トーマス ネッチ
トーマス エリック アムソー
ヨルン ボーガート
マイケル ギーンター ヘル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of JP2022508899A publication Critical patent/JP2022508899A/ja
Application granted granted Critical
Publication of JP7434342B2 publication Critical patent/JP7434342B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

幾つかの実施例は、データベース121における機密データ122に基づいて、個別化されたネットワークサービスを提供するための、コンテナイメージを構築するためのコンテナビルダ110に関する。コンテナビルダ110は、データベース121から機密データ122を取得し、コンテナイメージ140を構築し、該コンテナイメージをクラウドサービスプロバイダ111への展開のため提供する。コンテナイメージ140は、機密データ122と、コンテナとして展開されたときに、該コンテナに、コンテナイメージ140に含まれる機密データ122に基づいて、該個別化されたネットワークサービスを提供させる命令と、を有する。

Description

本発明は、コンテナビルダ、クラウドサービスプロバイダ、コンテナビルダ方法、クラウドサービスプロバイダ方法、及びコンピュータ読み取り可能な媒体に関する。
米国特許出願公開US2011/314466A1は、クラウドコンピューティング環境のインスタンスを作成することを開示している。
欧州特許出願公開EP3267351A1は、Dockerイメージを安全に管理することを開示している。
種々の設定では、インターネット等の公衆ネットワークを介して、機密(sensitive)情報に基づくWebアプリケーション等のネットワークサービスを提供することが有益である。例えば、患者が電子医療記録を検査すること、又は例えばアンケートのようなオンライン評価に記入することを可能にするといった、患者に関する医療情報に基づいて様々なサービスを提供することができる。サービスはまた、他の種類の機密情報に基づいて提供されても良く、例えば、企業に関する商業的に機密な情報が、ベンチマーキング、会計等に使用されても良い。
公衆ネットワークを介してサービスを提供することは、様々なセキュリティリスクを有し得る。特に、攻撃者は、様々な方法で機密情報の機密性及び/又は完全性を危うくしようとすることがある。例えば攻撃者は、例えばサービスが提供される患者又は企業に関する、機密情報を格納するデータベースサーバに侵入しようと試み得る。あるいは、攻撃者は、ネットワークサービスを提供するサーバ、例えば、ウェブアプリケーションに侵入しようとする可能性がある。これを行うには、攻撃者は、例えば、サーバによって使用される様々なソフトウェアの弱点を使用したり、サイドチャネルを使用したりする等、様々な既知の技術を使用する可能性がある。例えば、最新のプロセッサの最近の脆弱性Spectre及びMeltdownは、サーバへの非特権的アクセスを持つ攻撃者が、サーバで同時に実行されているプロセスから不正にデータを取得することを可能にし得る。攻撃者は、外部の攻撃者である可能性があるが、ネットワークサービスの内部者及び/又は正当なユーザ、例えば別のユーザの情報を取得又は編集しようとするユーザである可能性もある。
従って、機密データに基づいてネットワークサービスを提供することに関する様々なセキュリティリスクに対処する必要がある場合がある。
これらのリスクの少なくとも一部に対処するための既知の技術は、コンテナ化である。例えば、米国特許出願公開第US2017/0098092A2には、仮想プライベートコンテナを生成するための技術が開示されている。仮想プライベートコンテナは、コンテナ内のデータに対して指定された分析機能を実行するように設定された1つ以上の分析コンポーネントを有する自己完結型のソフトウェア環境を定義する。分析コンポーネントは、コンテナ間のデータ共有を防止するために、コンテナ内で動作するように離隔される。仮想プライベートコンテナは、HDFSストアのような外部システムからユーザデータにアクセスすることができ、そのためにサービスのユーザは許可情報、例えばアイデンティティを提供することができる。
米国特許出願公開US2017/0098092A2のような機密データに基づくネットワークサービスシステムを提供する既存のシステムの欠点は、機密データに基づくネットワークサービスの提供に関連する様々なセキュリティリスクに十分に対処できないことである。例えば、機密データは、データベースのような外部記憶装置に記憶することができる。現存するシステムでは、種々の装置がこの外部記憶装置に接近する必要がある。例えば、種々のホストに展開(deploy)された仮想プライベートコンテナは、それぞれ外部記憶装置へのアクセスを必要とする場合がある。それ故、外部記憶装置は、公的に又は少なくとも広くアクセス可能である必要があり、それによって攻撃の魅力的な標的になることがある。更に、米国特許出願公開US2017/0098092A2の既存のシステムでは、更新されたデータを記憶装置に書き戻すことはできない。より一般的には、既存のシステムでは、システムの複数のユーザ又は潜在的なユーザに関する機密情報が、十分に保護されていない可能性がある中央位置に格納され得る。
これらの問題のうちの1つ以上により良く対処するために、独立請求項に定義されるようなコンテナビルダ及び/又はクラウドサービスプロバイダが提案される。該コンテナビルダは、データベース内の機密データに基づいて、個別化されたネットワークサービス、例えばWebアプリケーションを提供するためのコンテナイメージを構築する。本発明者らは、機密データがコンテナイメージに含まれる場合、機密データの曝露を制限できる可能性があることを認識した。データベースは、コンテナビルダの専用データベースにすることができる。コンテナビルダは、データベースから機密データを取得し、コンテナイメージを構築して、クラウドサービスプロバイダに展開するために提供する。コンテナイメージは、機密データと、コンテナとして展開されると、機密データに基づいて個別化されたネットワークサービスをコンテナに提供させる命令と、を有する。クラウドサービスプロバイダは、斯かるコンテナイメージを展開のために受信し、コンテナとして展開する。
この構成により、セキュリティが向上する。例えば、データベースが公開されない可能性があるためである。例えば、クラウドサービスプロバイダや、コンテナが展開されているコンテナホスト(あるいはその両方)は、データベースに直接アクセスする必要がないため、データベースを利用可能にする必要はなく、例えば、コンテナビルダにおいて又はコンテナビルダの近くに展開することができる。更に、コンテナビルダの曝露は制限され、例えば、コンテナビルダは、到来する接続を受け入れる必要があり、ファイアウォールの背後にあっても良く、及び/又はコンテナイメージを提供するためだけにネットワークに接続しても良い。コンテナホストは、より暴露され、例えば、ネットワークサービスを提供するために到来するネットワーク接続を受け入れても良いが、違反の影響がより小さくなるように、限られた量のデータしか記憶しない。また、機密データを取得するために外部ソースにアクセスする必要がないため、コンテナホストからの低いネットワーク接続性しか必要とされないこととなり得る。
一実施例においては、機密データは、個別化されたネットワークサービスが提供されるユーザに関する個人情報を有する。一実施例においては、個人情報は、電子医療記録を有する。斯かる実施例においては、データの機密性が高い場合、機密情報の保護は特に有益である。
一実施例においては、コンテナイメージは、時間制限の後、及び/又は個別化されたネットワークサービスの使用が完了した後に終了し、露出を更に低減する。
一実施例においては、コンテナビルダは、個別化されたネットワークサービスによって更新された更新されたデータを取得し、それをデータベースに記憶する。このようにして、ネットワークサービスは、データベースからの機密データを使用するだけでなく、データベースのためのデータを生成することができ、データベースを外部に公開する必要がない。保護を向上させるために、コンテナは更新されたデータを暗号化しても良い。コンテナビルダはまた、プライベートアドレス及び/又はトークンのような、個別化されたネットワークサービスの意図されたユーザに認証情報を提供することができ、それによりネットワークサービスへの不正アクセスのリスクを低減することができる。
本発明の更なる態様は、コンテナビルダ方法及びクラウドサービスプロバイダ方法に関する。これらの方法の実施例は、コンピュータ実施方法として、又は専用のハードウェアで、あるいは両方の組み合わせで、コンピュータ上に実施することができる。方法の実施例のための実行可能コードは、コンピュータプログラム製品上に格納されても良い。コンピュータプログラム製品の例には、メモリ装置、光記憶装置、集積回路、サーバ、オンラインソフトウェア等が含まれる。好適には、コンピュータプログラム製品は、前記プログラム製品がコンピュータ上で実行されるときに、方法の実施例を実行するためのコンピュータ読み取り可能な媒体上に記憶された非一時的プログラムコードを含む。
一実施例においては、コンピュータプログラムは、コンピュータプログラムがコンピュータ上で実行されるとき、コンテナビルダ方法又はクラウドサービスプロバイダ方法の実施例の全てのステップを実行するように構成されたコンピュータプログラムコードを含む。好適には、コンピュータプログラムは、コンピュータ読み取り可能な媒体上に実施化される。
本発明の更なる態様は、個別化されたネットワークサービスを提供するためのコンテナイメージを表すデータを有するコンピュータ読み取り可能な媒体に関する。コンテナイメージは、機密データと、機密データに基づいて個別化されたネットワークサービスを提供するための命令とを含み、限定されたデータ露出でサービスを提供することを可能にする。
本発明の別の態様は、コンピュータプログラムをダウンロードに利用可能にする方法を提供する。 この態様は、コンピュータプログラムがアップロードされるとき、例えば、AppleのApp Store、Google社のPlay Store、又はMicrosoft社のWindows Storeに使用され、コンピュータプログラムが斯かるストアからダウンロードできるときに使用される。
本発明の更なる詳細、態様、及び実施例は、単なる例として、図面を参照して説明される。図中の要素は、簡単さ及び明確さのため示されており、必ずしも縮尺通りに描かれていない。図面において、既に説明された要素に対応する要素は、同じ参照番号を有し得る。
ネットワークサービスシステムの一実施例を模式的に示す。 ネットワークサービスシステムの一実施例を模式的に示す。 ネットワークサービスシステムの一実施例を模式的に示す。 クラウドサーバの実施例を模式的に示す。 個別化されたネットワークサービスの実施例を模式的に示す。 コンテナビルダの実施例を模式的に示す。 ネットワークサービスの実施例を模式的に示す。 一実施例による装置を実装するためのハードウェア図を示す。 コンテナビルダ方法の実施例を模式的に示す。 コンテナサービスプロバイダの実施例を模式的に示す。 一実施例によるコンテナイメージを有する書き込み可能部分を持つコンピュータ読み取り可能媒体を模式的に示す。 一実施例によるコンピュータプログラムを有する書き込み可能部分を持つコンピュータ読み取り可能媒体を模式的に示す。
本発明は、多くの異なる形態の実施例が可能であるが、図面に示されており、本明細書では、1つ以上の特定の実施例を詳細に説明するが、本開示は、本発明の原理の例示と見なされるべきであり、本発明を、図示され説明された特定の実施例に限定することを意図するものではないことを理解されたい。
以下では、理解のために、実施例の要素が動作中に説明される。しかしながら、それぞれの要素は、それらによって実行されるよう説明されている機能を実行するように構成されていることは明らかであろう。
更に、本発明は、実施例に限定されず、本発明は、ここに記載された、又は相互に異なる従属請求項に列挙された、全ての新規な特徴又は特徴の組み合わせに存する。
図1乃至図3の詳細な実施例を論じる前に、まず図4a乃至図4cに関して本発明の様々な態様を論じる。
以下に述べる実施例の様々な態様を説明する動機付けとなる例として、患者評価のためのウェブベースのポータルを考える。例えば、患者は、ある種の治療を受けた後に、患者の健康状態に関する情報を提供するために、斯かるポータルを使用することができる。斯かるシステムは、典型的には、医療データに基づいており、例えば、患者に尋ねられる質問は、受け取った特定の治療に依存し、及び/又はユーザは、電子医療記録の少なくとも一部を調べることができる。更に、該システムはまた、例えば、治療に関与する医療専門家に提供される、記憶され更に処理される必要がある、例えば患者によって提供される健康状態に関する情報等、新しいデータを生成しても良い。ポータルで使用される医療情報及びポータルで生成される情報の両方が、典型的には患者に関する機密性の高い個人情報である。これとは別に、使用されるソフトウェア、例えばどの質問をするか又はどのアドバイスを与えるかを決定する臨床決定支援アルゴリズムも、機密資産であり得る。それ故、データ及び/又はソフトウェアが誤った手へと落ちないことを保証するために、セキュリティ対策が必要である。
図4aは、プライベートデータベース又はコンテナイメージを利用しない、上述の患者評価のためのウェブベースポータル等のクラウドサーバ400上の機密データに基づくシステムの実施を示す。ウェブアプリケーションは、斯かるクラウドサーバ400、例えばリモートクラウドサーバ上で実行され、例えば、要求-応答パターンを使用してクライアントにネットワークサービスを提供することができる。クラウドサーバ400は、例えば、ネットワークサービスを提供するアプリケーションソフトウェア411と、1つ以上のデータベースとを有しても良い。例えば、データベースは、例えば暗号鍵、パスワード、トークン等を含む認証データベース401、例えば電子医療記録又は他の機密情報を含む記録データベース402、及び/又は、例えばアプリケーションデータを含むアプリケーションデータベース403を含んでも良い。ユーザは、ウェブブラウザを使用して、例えばHTTPインタフェース421を介して提供される、アプリケーションソフトウェア411によって提供されるウェブアプリケーションにアクセスすることができる。アプリケーションソフトウェア411は、ウェブAPI422を介して、1つ以上のウェブサービス、例えばRESTサービスを提供することもできる。アプリケーションにアクセスする前に、ユーザは、例えば、アプリケーションソフトウェア411が、認証データベース401内の情報に基づいて、ユーザによって与えられた信用証明を認証する、アプリケーションソフトウェア411に対して、自身を識別する必要があり得る。アプリケーションソフトウェア411は、機密情報をレコードデータベース402に検索及び/又は記憶することができ、例えば、ユーザは、アプリケーションの一部としてレコードデータベース402のレコードを検索及び/又は更新することができる。
図4aのもののようなシステムでは、複数のユーザのデータは、クラウドサーバ400、例えばデータベース401及び/又は402に格納されても良い。暗号化及び/又は他のセキュリティ対策を使用して、データの安全性、プライバシーを改善し、及び/又はデータの侵害、悪用、又はユーザデータへのアクセスを得る他の試みを防止することができる。クラウド400は、ハッカーがクラウドサーバ400を危険にさらすことが可能である場合、全てのユーザ、潜在的には数千又は数百万のユーザのデータが盗まれ、他の攻撃に使用され、及び/又は公表される可能性があるセキュリティリスクを持ち得る。
データ侵害のリスクを最小限に抑えるために、アプリケーションソフトウェア411へのアクセスが高度に制御され得、潜在的に、ユーザ体験の低下につながる。依然として、クラウドサーバ400と同様に構成されたシステムには、様々なセキュリティ関連の問題が存在する可能性がある。例えば、盗まれたパスワードによる単一ユーザアカウントの無効化に加えて、アプリケーションソフトウェア411におけるプログラミングエラー又は弱点が、攻撃者が多数のアカウント及び/又は大量のデータにレコードデータベース402からアクセスすることを可能にする。本発明者は、この問題の原因として、ユーザデータ、例えば記録データベース402に含まれる複数のユーザに関するユーザデータ、及びアプリケーションソフトウェア411が同じ場所に存在すること、又は少なくとも、アプリケーションソフトウェア411が複数のユーザに関するユーザデータにアクセスする可能性があることを認識した。更に、クラウドサーバ400は、例えば、SSHインタフェース420を介してアクセス可能な管理コンソール410を有し得、斯かる追加のアクセスチャネルの存在は、更なるセキュリティ問題に相当し得る。以下で説明する様々な実施例は、データ違反のリスクを低減し、及び/又は追加の管理チャネルの必要性を回避することができる。
様々な実施例は、機密データに基づいて個別化されたネットワークサービスを提供することに関する。本発明者らは、特定のサービスを特定のユーザに提供するために、システムの全ての部分が必要とされるわけではなく、例えばシステム400は、特定のユーザ及び/又は特定のサービスのために個別化されても良いことを認識した。図4bは、個別化されたネットワークサービス430の実施例の一例を示す。個別化とは、1人以上の特定のユーザ、例えば特定の人、システム又は装置に、1人以上の特定のユーザに固有の機密データ、例えばデータベースからのデータのサブセットに基づいて、特定のサービスを提供することを示し得る。例えば、該データは、特定のサービス及び/又は特定のユーザ又はユーザのセットに固有のデータを有しても良い。例えば、データは、ユーザ又はユーザに関するデータ、及び/又はユーザ又はユーザが特にアクセス権を有するデータであっても良い。例えば、個別化されたネットワークサービスは、機密データを入力として使用し、及び/又は更新されたデータを出力として提供することができる。
一例として、個別化されたネットワークサービスは、特定の患者又は患者のグループが専用のアンケートに記入することを可能にするために個別化された、上述したウェブベースの患者評価ポータル等のウェブアプリケーションであっても良い。別の例として、個別化されたウェブサービスは、特定のユーザに対して個別化されたウェブサービス、例えば、RESTウェブサービスであっても良い。個別化されたネットワークサービスは、HTTPに基づく必要はなく、実際には、個別化されたネットワークサービスは、例えばFTP、IMAP、POP又は非IPベースのプロトコル、例えばNet-BIOSベースのもののような、既知のプロトコルを使用して提供された、機密データに基づいて個別化された任意の種類のネットワークサービスであっても良い。
様々な実施例による、そのユーザに固有の機密データに基づいて、個別化されたウェブサービスをユーザに提供することは、他のユーザに固有のデータが個別化されたウェブサービスから効果的に遮蔽され、そのユーザのデータが別のユーザ又は第三者によって不注意にアクセスされるという特定のユーザのリスクを低減することができるという利点を持ち得る。一実施例においては、機密データは、ユーザに関する個人情報を有しても良い。個別化されたネットワークサービスは、そのユーザに提供される可能性がある。一実施例においては、個人情報は、電子医療記録を有する。個人化は、特に個人情報及び医療データの処理に関するデータの特定の機密性及び/又は特定の法的要件のために、斯かる設定において特に重要である。
前述したように、個別化されたネットワークサービス430は、クラウドサーバ400の全てのデータ及び/又はコンポーネントを動作させる必要がないものとなり得る。例えば、認証データベース431は、特定のユーザ又は複数の特定のユーザの認証情報441を含むだけで良い。記録データベース432は、ユーザ又は複数のユーザに特有のデータ442を含むだけで良い。同様に、アプリケーションデータベース433は、特定のサービスに必要なデータ443、例えばイメージ、UI素子、又は特定のサービスに使用されるが、別の時点で同一又は他のユーザに提供され得る他のサービスには使用されない他の種類のデータのみを含む必要があり得る。また、アプリケーションソフトウェアは、特定のサービスに必要なコンポーネント451、例えばソフトウェアモジュール、ライブラリ等を含むだけで良い。外部には、特定のサービスのためのインタフェース460しか提供される必要がないこととなり得る。例えば、この場合、ウェブAPI又はSSHインタフェースは必要でないかもしれない。クラウドサービス400と比較すると、個別化されたネットワークサービス430は、実際には、完全なクラウドサーバの展開の構成要素を除去するか、又は構成要素の選択のみを使用して個別化されたネットワークサービスをゼロから構築するか、又はその2つの組み合わせを使用して構築することによって、個別化されたネットワークサービスを構築することができるが、個別化されたネットワークサービスは、余分なものを取り除いたバージョンと見なすことができる。クラウドサーバ400と比較して、斯かる個別化されたネットワークサービスを利用可能にする利点は、潜在的なデータ漏洩が、最悪でも、ネットワークサービスが個別化されたユーザに固有の信用証明及び/又はデータを明らかにすることである。更に、より少ないインタフェース及び/又はより少ないソフトウェアは、脆弱性が利用されるリスク及び/又は貴重なソフトウェア資産が危険にさらされるリスクを減少させる。
様々な実施例において、ネットワークサービスの個別化は、コンテナ化技術によって提供される。コンテナ化を使用する場合、アプリケーションは、典型的には、コンテナイメージにパッケージ化される。例えば、コンテナイメージは、コンテナホスト上でアプリケーションを実行するための内蔵パッケージを含むことができ、例えば、1つ以上のコンポーネント、例えばアプリケーションコンポーネント及び/又はアプリケーションを実行するためのランタイムコンポーネントを有しても良い。例えば、コンテナイメージは、コンテナプラットフォーム上でアプリケーションを実行するためのものであっても良い。幾つかの実施例においては、ランタイムコンポーネントは、オペレーティングシステムを含まず、イメージサイズを減少させ、性能を改善する。他の実施例においては、ランタイムコンポーネントは、イメージをより自己完結型にするオペレーティングシステムを有しても良い。コンテナイメージ内のコンポーネントは、例えばウェブサーバ、データベースサーバ、データ分析ツールキット、シミュレータ等を有しても良い。一般に、コンテナイメージを使用することは、それらが軽量であるが自己完結型である、例えばアプリケーションコード、ランタイム、システムツール、ライブラリ、及び/又はアプリケーションを実行するための設定のうちの1つ以上を含むという利点を持ち得る。例えば、このことは、コンテナホスト上で実行されるアプリケーションのためのライブラリを別々にインストール及び/又は維持する必要性を排除する可能性がある。
今日、様々なタイプのコンテナイメージに基づいて、様々なコンテナ化技術が利用可能である。例えば、Docker技術は、「Dockerfile」と呼ばれる構成ファイルに基づいてDockerコンテナイメージを構築し、次いで、例えば、Docker Engineを実行するシステム上、又はHeroku、Amazon Elastic Container Service等の市場で入手可能な様々なクラウドプロバイダ上にコンテナとして展開することを可能にする。他のタイプのコンテナイメージは、JARファイル、WARファイル、Herokuスラグファイル、ディスクイメージ、例えばハイパーバイザで実行するためのもの、ZIPやTARファイルのようなアーカイブ、例えばchroot環境で実行するためのものである。使用されるコンテナ化技術及びターゲットプラットフォーム上で利用可能なソフトウェアに応じて、様々なソフトウェアライブラリは、コンテナイメージに含まれるか、又はプラットフォームによって提供されるように使用されても良く、例えば、Ruby on Railsアプリケーションのためのコンテナイメージは、アプリケーション自体を含み、更に、Ruby on Railsプラットフォーム、ウェブサーバ、システムライブラリ及び/又はオペレーティングシステムを含み得る。例えば、これらのコンポーネントのどれが展開プラットフォーム上で利用可能であるかに依存する。例えば、Heroku及びAmazon Elastic Container Serviceは、他のタイプのコンテナイメージの中でもDockerコンテナイメージを受け入れるクラウドサービスプロバイダの例である。
特に、様々な実施例は、コンテナビルダを含む。コンテナファクトリ又はコンテナビルダ装置としても知られているコンテナビルダは、コンテナイメージ、例えば上述のコンテナ化技術のうちの1つを使用して展開することができるコンテナイメージを構築するための装置とすることができる。斯かるコンテナビルダの実施例の一例が、図4cに模式的に示されている。図4cのコンテナビルダ470は、データベース内の機密データに基づいて個別化されたネットワークサービスを提供するためのコンテナイメージを構築する。コンテナビルダ470は、例えば、データインタフェースを介して、機密データ、例えば、上記のような記録データベースを含む私設データベース472へのアクセスを有する。コンテナビルダ470はまた、データ及び/又はソフトウェアの様々な他のソース、例えば認証データベース471、アプリケーションデータベース473、及び/又は個別化されたネットワークサービスを提供するためのソフトウェアコンポーネント474のセットへのアクセスを有しても良い。高レベルでは、コンテナビルダ470は、コンテナイメージを構築し、例えば、通信インタフェースを使用して、それらをクラウドサービスプロバイダに展開するために提供する。コンテナイメージ、例えばコンテナイメージ480、488、又は489は、データベース471、472及び473、並びにソフトウェアコンポーネント474のうちの1つ以上に基づくことができる。例えば、コンテナイメージ480は、非公開化されたネットワークサービスが提供される機密データ481、例えば非公開用データベース472及び/又は他のデータベースから取得される、及びコンテナとして展開される場合、コンテナが機密データに基づいて個別化されたネットワークサービスを提供するように命令を有しても良い。例えば、該命令は、ソフトウェア構成要素のセット474から個別化されたネットワークサービスを提供するためのソフトウェア構成要素のサブセット482を含み、同様に他のコンテナイメージのためのものであっても良い。個人情報は、例えば、コンテナイメージ内のデータベースに格納することができる。コンテナビルダの種々の実施例を以下に記載する。
興味深いことに、コンテナビルダ470は、比較的大量の情報、例えば複数のユーザに関する情報を含むデータベース472にアクセスすることができるが、限られたネットワーク曝露しかなく、例えばユーザに直接サービスを提供する必要がない。一方、コンテナビルダ470によって構築されたコンテナイメージ、例えばコンテナイメージ480、488及び489から展開されたコンテナは、ユーザに個別化されたネットワークサービスを提供する必要があるので、コンテナビルダ470よりも露出される必要がある。しかしながらこれらコンテナイメージは、コンテナビルダ470がアクセスできる情報のうちのサブセット、典型的には僅かな一部しか保存しない及び/又はアクセスを持たない。この構成は、機密データの曝露が減少するので、データ保護の全体的な改善を提供する。
図1は、個別化されたネットワークサービスを提供するためのネットワークサービスシステム100の実施例の一例を模式的に示す。ネットワークサービスシステム100は、コンテナビルダ110、例えばコンテナビルダ装置を有しても良い。ネットワークサービスシステム100は、コンテナイメージをコンテナとして展開するためのクラウドサービスプロバイダ111、例えばクラウドサービスプロバイダ装置を有しても良い。コンテナは、クラウドサービスプロバイダ111自体及び/又はクラウドサービスプロバイダによって管理される別個のコンテナホスト、例えばコンテナホスト装置に展開することができる。図に示すのは、斯かるコンテナホスト112の1つであるが、一実施例においては、ネットワークサービスシステム100は、クラウドサービスプロバイダ111によって管理される複数のコンテナホストを有し、別の実施例においては、ネットワークサービスシステム100は、クラウドサービスプロバイダ111自身以外のコンテナホストを有さない。
以下で更に説明するように、図1は、機能ユニット、例えばユニット131、132、133、135及び/又は136を示しており、これらは例えば、コンテナビルダ110又はクラウドサービスプロバイダ111のプロセッサ等のそれぞれの装置のプロセッサの機能ユニットであっても良い。例えば、図1のコンテナビルダ110は、プロセッサの可能な機能構成の青写真として使用することができる。プロセッサは、図中のユニットとは別個に示されていない。例えば、コンテナビルダ110の機能ユニットは、コンテナビルダ110に、例えばコンテナビルダ110の電子メモリに格納され、コンテナビルダ110のマイクロプロセッサによって実行可能なコンピュータ命令で、全体的又は部分的に実装されても良い。混成型の実施例においては、機能ユニットは、部分的にハードウェアで、例えば暗号コプロセッサのようなコプロセッサとして、及び部分的にコンテナビルダ110に記憶され実行されるソフトウェアで、ここでもまた様々な図の他の装置のために、実装される。
ネットワークサービスシステム100の様々な装置は、データベース121内の機密データ122に基づいて、個別化されたネットワークサービスをユーザ装置113に提供するよう協調しても良い。一実施例においては、機密データは、ユーザに関する個人情報を含む。例えば、ネットワークサービスシステム100は、ユーザ装置113を介して、このユーザに個別化されたネットワークサービスを提供するためのものであっても良い。一実施例においては、個人情報は、電子医療記録を有する。実施例においては、機密データは、認証又は認可情報を有さず、例えば機密データは、データベース信用証明を有さない。ユーザ装置113は、例えば個別化されたサービスがウェブアプリケーションである場合には、例えばラップトップ、デスクトップコンピュータ、又は携帯電話やタブレットのような携帯装置といった、ネットワーク接続性を有する任意の装置であっても良く、又は、例えば個別化されたサービスがウェブサービスである場合には、サーバであっても良い。
実施例においては、個別化されたネットワークサービスは、複数のユーザ、例えばデータベース121のエントリの厳密なサブセットに対応するサービスの潜在的なユーザの厳密なサブセットに提供される。例えば、ユーザの数は、設定可能であっても良い。このことは、より高いセキュリティ及びより低い効率で、単一のユーザに個別化されたネットワークサービスと、より低いセキュリティ及びより高い効率で、全てのユーザに同時に提供されるネットワークサービスと、の両極端の間の動的なセキュリティ/効率のトレードオフを可能にする。
システム100の種々の装置は、コンピュータネットワーク190を介して互いに通信する。コンピュータネットワークは、インターネット、イントラネット、ローカルエリアネットワーク、無線ローカルエリアネットワーク等である。コンピュータネットワーク190は、インターネットであっても良い。コンピュータネットワークは、全体又は一部が有線、及び/又は全体又は一部が無線であっても良い。例えば、コンピュータネットワークは、Ethernet(登録商標)接続を有しても良い。例えば、コンピュータネットワークは、Wi-Fi(登録商標)、ZigBee等のような無線接続を有しても良い。装置は、必要に応じて装置180の他の装置と通信するように構成された接続インタフェースを含む。例えば、接続インタフェースは、例えばEthernet(登録商標)コネクタのような有線コネクタ又は無線コネクタといったコネクタ、例えばWi-Fi(登録商標)、4G又は5Gアンテナのようなアンテナ、を有しても良い。例えば、コンテナビルダ110及びクラウドサービスプロバイダ111は、それぞれ通信インタフェース150及び151を有しても良い。コンピュータネットワーク190は、追加の要素、例えばルータ、ハブ等を有しても良い。
ネットワークサービスシステム100は、コンテナ化技術を利用して、機密データの曝露を制限することができる。コンテナビルダ110は、コンテナイメージ140を構築し、それをクラウドサービスプロバイダ111に展開のために提供することができる。クラウドサービスプロバイダ111は、例えばコンテナホスト112上にコンテナイメージ140を展開することができる。興味深いことに、コンテナイメージ140は、機密データ122と、コンテナとして展開されたときに、コンテナに機密データ122に基づいて個別化されたネットワークサービスを提供させる命令と、を有しても良い。これにより、クラウドサービスプロバイダ111は、それ自体が機密情報121のデータベースへのアクセスを持たないホスト上でクラウドサービスを提供することができ、それによってデータベース121の曝露を制限することができる。
クラウドサービスプロバイダ及び/又はコンテナホスト自体を動作させる様々な技術が、文献から知られている。典型的には、コンテナホスト112は、コンテナプラットフォーム160と、このコンテナプラットフォームの上部にある1つ以上のコンテナ、例えばコンテナ170、171及び172とを実行するように構成される。一実施例においては、コンテナプラットフォーム160は、オペレーティングシステム上で動作し、コンテナ170、171、172は、オペレーティングシステム自体を含まない。例えば、コンテナプラットフォーム160は、Docker Engineを有することができ、コンテナ170、171及び172は、Dockerコンテナとすることができる。一実施例においては、コンテナプラットフォーム160はハイパーバイザを含み、1つ以上のコンテナ170、171、172は、例えばディスクイメージを含むコンテナイメージから展開された仮想マシンとすることができる。この場合、コンテナ170、171、172は、オペレーティングシステムを有しても良い。一実施例においては、コンテナプラットフォーム160は、Unix(登録商標)のようなオペレーティングシステムを有することができ、1つ以上のコンテナ170、171、172は、chroot jailにおいて作動するソフトウェアを有しても良い。例えば、斯かるchroot jailのコンテナイメージは、chroot jail内のソフトウェアがアクセスできるファイルのセットを有しても良い。一実施例においては、170、171、172は、Herokuプラットフォーム160のDynoである。
以上に議論されたように、クラウドサービスプロバイダ111は、別個のコンテナホスト上ではなく、クラウドサービスプロバイダ111自体上にコンテナイメージを展開することができる。斯かる場合、クラウドサービスプロバイダ111は、コンテナホスト自体として動作し、例えば、クラウドサービスプロバイダ111自体は、例えば上述のように、コンテナプラットフォーム及びこのコンテナプラットフォームの上部にある1つ以上のコンテナを実行することができる。斯かる実施例においては、サービスプロバイダ111は、このコンテナプラットフォームの上部にコンテナとしてコンテナ140を展開するように構成される。
クラウドサービスプロバイダ111はまた、一つ以上のコンテナホストを管理する管理ノードであっても良い。例えば、クラウドサービスプロバイダ111は、Kubernetesクラスタのマスターノード、コンテナホスト112及び/又はKubernetesクラスタの計算ノードとして構成される他のコンテナホストとして構成されても良い。又は、クラウドサービスプロバイダ111は、Dockerスウォームのスウォームマネージャ、コンテナホスト112及び/又はDockerスウォームのノードとして構成される他のコンテナホストとして構成されても良い。クラウドサービスプロバイダ111は、例えば、OpenStackコントローラノード、コンテナホスト112及び/又はOpenStackクラスタの計算ノードとして構成される他のコンテナホストであっても良い。複数のコンテナホストを使用すると、スケーラビリティが増大するが、コンテナイメージがコンテナとして展開されるホストや、同じコンテナホスト上で他のコンテナが実行されるホストの予測性が低下し、同じインフラストラクチャで実行されるコンテナ間での攻撃が複雑になる可能性もある。幾つかの実施例においては、クラウドサービスプロバイダ111は、Heroku、Amazon Elastic Container Service、Amazon EC2等の従来のクラウドサービスプロバイダ111とすることができる。
特に、クラウドサービスプロバイダ111は、例えばコンピュータネットワーク190を用いた、コンテナビルダ110及び/又はコンテナホスト112及び/又は他の装置のネットワークサービスシステム100とのディジタル通信用に構成された通信インタフェース151を有しても良い。クラウドサービスプロバイダ111はまた、例えばコンテナビルダ110から通信インタフェース151を使用してコンテナイメージ140を受け取るように構成されたビルダ処理ユニット135を有しても良い。クラウドサービスプロバイダ111は、コンテナイメージをコンテナとして展開するように構成された展開ユニット136を更に有しても良い。例えば、クラウドサービスプロバイダは、コンテナホスト112のようなコンテナホスト、又はクラウドサービスプロバイダ111上で動作するコンテナプラットフォーム上に、コンテナイメージ140を展開することができる。このことは、コンテナビルダ110に対して透明であっても良く、例えば、コンテナビルダ110は、どの特定のホストにそのコンテナイメージが展開されるかを、展開の前及び/又は後に知っていなくても良い。
コンテナイメージ140の展開は、コンテナビルダ110によって開始することができる。例えば、コンテナビルダ110は、機密データに基づいて個別化されたネットワークサービスを提供するためのコンテナイメージを構築する命令を受け取ることができる。例えば、この命令は、例えば、事前定義された複数のネットワークサービスのセットからのネットワークサービスの識別の1つ以上、及びネットワークサービスの1つ以上の意図されたユーザの識別を含むことができ、ここでユーザは、例えば個人又は他のネットワークエンティティ、例えばデータベース121が機密データを記憶するユーザであっても良い。該命令は、例えば、外部ネットワークエンティティから定期的に受信されても良く、例えばコンテナビルダ110が、命令を受信するため外部ネットワークエンティティに定期的にコンタクトしても良く、これら命令は、コンテナビルダ110のユーザから、例えばコンテナビルダ110のユーザインタフェースを介して受信されても良く、又は、コンテナビルダ110の別のコンポーネント、例えば、データベース及び/又は任意の展開されたコンテナイメージのステータスを定期的に監視して、1つ以上の個別化されたネットワークサービスが提供されるべきであることを決定するコンポーネントから、受信されても良い。
幾つかの実施例においては、個別化されたネットワークサービスを提供するためのタイムラインは、比較的予測可能であり得る。例えば、ウェブベースの患者評価ポータルでは、患者は定期的に、例えば毎週又は毎月、調査に記入するように求められても良い。その上、個別化されたネットワークサービスは、全ての時間の同じユーザ組に利用可能にされない可能性があり、例えば患者は、平均して、全ての患者の約10分の1の患者のみが待機中の調査を受けるように、3日間で月1回の調査に記入するよう依頼される。それ故、幾つかの実施例においては、個別化されたネットワークサービスは、潜在的なユーザのセットのサブセット、例えばデータベース121が機密データを記憶するユーザのサブセットにのみ、同時に提供される。斯かる場合、個別化されたネットワークサービスを提供することは、提供されるサービスが提供されないユーザの機密データが公開されないので、特に有益であり得る。
コンテナイメージ140が基づく機密データ122を含むデータベース121にアクセスするために、コンテナビルダ110は、データインタフェース120を有しても良い。データベース121は、複数のユーザに関する機密データ、例えば複数の機密レコードを記憶することができ、各レコードは、1人以上のユーザに関する機密データを表す。例えば、レコードは、特定の人物、例えば、患者に関する医療情報の一部を有しても良い。データベース121は、ローカルに記憶されたデータベースであっても良い。データベース121は、データインタフェース120が外部データベースに接続する外部データベースであっても良い。例えば、データベースからの機密情報が必要とされるとき、データインタフェース120は、それを要求され得、その後データインタフェース120は、例えば外部データベースからそれを検索し得る。このことは、装置110の残りの部分に対して透明であっても良い。データベース121は、コンテナビルダのプライベートデータベース、例えばローカルデータベースとして構成されても良い。例えば、データベース121は、ローカルエリアネットワーク(LAN)を介して、又はこれのみを介してアクセス可能であっても良く、又は、データベース121は、コンテナビルダ110で実行されるローカルデータベースであっても良い。特に、データベース121は、コンピュータネットワーク190を介してアクセスできない場合もあれば、少なくとも、コンテナホスト112、クラウドサービスプロバイダ111及びユーザ装置113の1つ以上によってアクセスできない場合もある。このことは、データベース121の曝露を有利に減少させることができる。
コンテナビルダ110は、データインタフェース120を使用してデータベース121から機密データ122を検索するように構成されたデータ処理ユニット131を更に有しても良い。例えば、特定のユーザに関する機密データに基づいて特定の個別化されたネットワークサービスを提供する要求を受信すると、データ処理ユニット131は、ユーザに関するデータ、例えばレコードのサブセットを選択し、データベース121からデータのサブセットを取得しても良い。
コンテナビルダ110は、個別化されたネットワークサービスを提供するためのコンテナイメージ140を構築するように構成されたイメージ処理ユニット132も有しても良い。上述のように、様々なタイプのコンテナイメージ140及びコンテナイメージを構築するためのツール、例えば特定のネットワークサービスを提供するためのコンテナイメージが知られており、ここで適用することができる。例えば、コンテナイメージ140は、Dockerコンテナイメージであっても良く、イメージ処理ユニット132は、Dockerを使用して、例えば、「docker build」コマンド等を使用して、Dockerファイルに基づいてコンテナイメージ140を構築するように構成される。コンテナイメージ140を構築することは、例えば図4cを参照して議論されたように、特定の個別化されたネットワークサービスを提供するために必要とされるソフトウェアコンポーネント、例えばモジュール及び/又はライブラリを選択することを有しても良い。必要なソフトウェアコンポーネントだけを選択することは、コンテナが不正アクセスされる可能性、及び/又はコンテナから抽出され得るソフトウェア資産の価値が損なわれる可能性が低減される利点を有することができ、例えば、限られた組の臨床決定サポート又は手近なケースに関連するMRI再構成コンポーネントだけが含まれる必要があり、含まれていないコンポーネントは露出されないままであることができる。
イメージ処理ユニット132は、例えば構成ファイルのような構成に基づいてコンテナイメージ140を構築し、任意にこの構成を生成するように構成されても良い。例えば、Dockerに基づく実施例においては、構成はDockerファイルを有しても良い。イメージ処理ユニット132は、例えば、テンプレート構成をインスタンス化することによって、例えば斯かるテンプレートの一部を選択することによって、及び/又はフィールドを埋めることによって、構成を生成することができる。例えばこのことは、提供される特定のネットワークサービス及び/又はネットワークサービスが提供される特定のユーザに基づくことができる。イメージ処理ユニット132は、同じ構成を再使用することもでき、例えば、個別化されたコンテナイメージ140を構築することは、提供される特定のネットワークサービス及び/又はサービスが提供される特定のユーザに基づいて、構成において参照される様々なファイルを構成することを有しても良い。OpenStackのdiskimage-builderやchroot 環境を構築するjailkitツール等、他の種々のイメージ構築ツールも同様に使用できる。
上述のように、コンテナイメージ140は機密データ122を有する。例えば、機密データは、ローカルデータベースの形でコンテナイメージ140に含まれても良く、例えば、イメージ処理ユニット132は、機密データ122でデータベースソフトウェアをセットアップするために、コンテナイメージ140データベースソフトウェア及び命令及び/又はデータに追加しても良い。例えば、データベースソフトウェアは、sqliteのようなサーバレスデータベースソフトウェアであっても良い。含まれるデータベースは、データベース121のサブデータベースであっても良い。例えば、イメージ処理ユニット132は、例えば機密データ122を含む個別化されたネットワークサービスを提供するために必要な、データベース121のテーブル、列、及び/又は行のサブセットとして、含まれるデータベースをセットアップしても良い。例えば、データは、図4bを参照して説明したように、信用証明441、ユーザデータ442、及び/又はサービスデータ443を有しても良い。コンテナイメージ140内のソフトウェア、例えば、命令141は、例えばリモートのデータベース121に接続する代わりにローカルデータベースに接続するようにセットアップされても良い。このことは、例えば、データベース接続パラメータを調整する以外に、データベースにアクセスするコンテナイメージ140内のソフトウェアに対して透明であっても良く、リモートのデータベースからではなく、コンテナイメージ140からの機密データ122を使用するために、ソフトウェアの他の適応は必要でなくても良い。しかしながらこのことは、例えば、データベースの代わりにテキストファイルを使用するように、又は機密データ122が命令内でハードコードされるように、コンテナ140のソフトウェアを適応させることによっても達成されても良い。一実施例においては、コンテナイメージ140は、コンテナとして展開されたときに、コンテナに外部データベースから機密データを取り出させる命令を含まない。一般に、コンテナイメージ140に機密データ122を含むことにより、クラウドサービスプロバイダ111及び/又はコンテナホスト120及び/又はユーザ装置113がデータベース131にアクセスする必要性が軽減され、セキュリティが向上する。
一実施例においては、コンテナイメージ140は終了命令143を有する。終了命令143は、コンテナとして展開されたとき、コンテナを時間制限後に終了させることができる。このことは、通知及び/又は終了のための定期的なチェックの必要がないという利点を有し得る。別の利点は、サービスの曝露が不必要に延長されないことである。終了命令143は、個別化されたネットワークサービスの使用が完了した後に、代わりに又はそれに加えて、コンテナを終了させることができる。例えば、コンテナは、個別化されたネットワークサービスへの事前に定義された数の成功したアクセスの後、例えば、単一のアクセスの後、又は少なくとも3つ若しくは多くても10回のアクセスの後、終了する。例えば、ウェブベースの患者評価ポータルを提供するコンテナは、評価が完了した後に終了することができる。使用後の終了は、サービスの曝露が不必要に延長されない、及び/又は、検出が、例えばコンテナビルダ110によって、個別化されたネットワークサービスの使用が完了したことの表示として使用され得るという利点を有し得る。終了命令143はまた、コンテナから特定のデータを削除するための命令、例えば、機密ソフトウェア資産を含むソフトウェアモジュール、又は保管される必要のない機密データを含み得、このことは、機密情報の公開を更に低減し得る。
一実施例においては、イメージ処理ユニット132は、例えば、コンテナイメージを構築する要求を受信する前に、最初にコンテナイメージを準備し、要求を受信すると、機密データ122に基づいてコンテナイメージをカスタマイズすることによって、コンテナイメージ140を構築するように構成される。例えば、コンテナイメージ140を構築することは、複数の構築ステップを有することができ、第1のセットの構築ステップを有するコンテナイメージを準備し、第2のセットの構築ステップを有するコンテナイメージをカスタマイズすることができ、第2のセットの構築ステップは、特定のユーザ信用証明及び/又は機密データをコンテナイメージに追加するステップを有する。イメージ処理ユニット132はまた、機密データ122の代わりにプレースホルダデータを使用してコンテナイメージを構築し、次にデータベース121から機密データ122を検索した後、プレースホルダデータを機密データ122に置き換えても良い。例えば、プレースホルダデータは、コンテナイメージの1つ以上の特定ファイルで構成されても良い。イメージ処理ユニット132は、機密データ122に基づいて、これらの特定のファイルを個別化されたファイルに置き換えることができる。例えば、これらの特定のファイルは、上述したように、データベースソフトウェアのためのテキストファイル又はデータベースファイルであっても良い。いずれにせよ、カスタマイズ中に実行される作業量は比較的小さい、全体的なスケーラビリティを改善することができる。
コンテナビルダ110は、例えば、上でより詳細に説明したように、コンピュータネットワーク190を介して、クラウドサービスプロバイダ111及び/又は他の装置のネットワークサービスシステム100とディジタル通信するように構成された通信インタフェース150を更に有しても良い。一実施例においては、コンテナビルダ110は、ファイアウォール191の背後でクラウドサービスプロバイダ111に接続される。例えば、ファイアウォール191は、コンテナビルダ110と他の装置との間のトラフィックを制御するネットワークファイアウォールを含んでも良い。一実施例においては、コンテナビルダは、コンテナビルダ111及び/又はコンテナホスト112及び/又はユーザ装置113からの入力ネットワーク接続を受け入れない。例えば、クラウドサービスプロバイダ111は、コンピュータネットワーク190からの着信接続のために直接アクセスすることができない。ファイアウォール191は、代替的に又は追加的に、ホストベースのファイアウォール、例えばコンテナビルダ110上で実行されるホストベースのファイアウォール、例えばコンピュータネットワーク190からの幾つか又は全ての着信接続をブロックするファイアウォールを有しても良い。ファイアウォールを使用することは、機密データ、例えば、データベース121からの機密データの曝露の更なる減少につながり得る。コンテナビルダ110は、コンピュータネットワーク190に連続的に接続される必要はない。一実施例においては、コンテナビルダ110は、コンテナイメージ140を展開のために提供する前にコンピュータネットワーク190に接続し、及び/又はコンテナイメージ140を提供した後にコンピュータネットワーク190から切断し、その露出を更に低減するように構成される。
コンテナビルダ110はまた、通信インタフェース150を使用してクラウドサービスプロバイダ111に展開するためのコンテナイメージ140を提供するように構成された、クラウド処理ユニット133を有しても良い。例えば、クラウド処理ユニット133は、「Docker stack deploy」シェルコマンド又はDocker Engine APIの対応する呼び出しを使用して、コンテナイメージ140をクラウドプロバイダ111にアップロードし、コンテナイメージをクラウドプロバイダ111に展開する命令を、例えばSSH、RESTful API等を介して、送信することができる。クラウド処理ユニット133は、コンテナイメージ140を非公開レジストリに格納し、クラウドサービスプロバイダ111に、非公開レジストリからイメージをプルし、それを展開するように命令することもできる。
いずれにしても、上述の様々なステップは、機密データの露出が少なくなるような態様で、ユーザ装置113に提供される個別化されたネットワークサービスをもたらすことができる。コンテナビルダ110は、機密データ122をプライベートのデータベース121から検索し、それをコンテナイメージ140に入れることができるが、他の装置、例えば、クラウドサービスプロバイダ111もコンテナホスト112もユーザ装置113も、例えばファイアウォール191のためにデータベース121に直接アクセスすることができない。コンテナビルダ110は、コンテナイメージ140をクラウドサービスプロバイダ111に提供し、クラウドサービスプロバイダは、コンテナホスト112がユーザ装置113に個別化されたサービスを提供できるように、それをコンテナホスト112に展開する。これらのステップは、現在の個別化されたネットワークサービスに必要とされる機密データ122のいくらかの公開をもたらし得るが、例えば、他のユーザに関連する、データベース121内の他の機密データは、公開され得ず、例えば、個別化されたネットワークサービスの提供中に生じる不正アクセスは、他のユーザに対してより少ない影響を有し得る。更に、様々なコンテナ化技術は、例えば、任意の数のコンテナホストが使用され得、及び/又はその数が動的に調整され得るため、及び/又はコンテナホストは、類似の又は部分的にオーバーラップするコンテナを比較的効率的に実行することを可能にし得るため、比較的良好なスケーラビリティを可能にし得る。
図2は、データベースに記憶される更新されたデータを含むネットワークサービスシステム200の一実施例の一例を模式的に示す。ネットワークサービスシステム200は、上述したネットワークサービスシステム100であっても良い。例えば、ネットワークサービスシステム200は、機密データ223、例えばコンテナビルダ210のプライベートのデータベースを記憶するプライベートデータベース221と、機密データに基づいて個別化されたネットワークサービスを提供することを可能にする様々な構成要素とを含んでも良い。
機密データの使用に加えて、個別化されたネットワークサービスを提供することは、個別化されたネットワークサービスによって更新された更新されたデータを取得することを含むこともある。例えば、更新されたデータ223は、個別化されたネットワークサービスのユーザの入力及び/又はコンテナによるデータ処理の結果を有しても良い。更新されたデータは、機密の更新されたデータ、例えば機密データ122への更新を含んでも良い。更新されたデータは、個別化されたネットワークサービスのユーザに関する情報、例えば、個人情報、例えば、医療情報を有しても良い。上記のウェブベースの患者評価ポータルの動機付けの例を続けると、患者は、彼らの健康に関する様々な質問を提示されても良く、更新されたデータは、これらの質問に対する回答を有する。一般に、個別化されたネットワークサービスの使用から生じる更新されたデータは、サービスの提供の前にデータベースに記憶されなかった、提供されたサービス及び/又は新しいデータに基づく既存の機密データに対する更新を有しても良い。ここでは、更新されたデータ223がコンテナビルダ210によって取得され、データベース221に格納される様々な実施例について説明する。
ネットワークサービスシステム200は、コンテナホスト212、例えば、図1のコンテナホスト112を有しても良い。コンテナホスト112は、コンテナ270を有しても良い。コンテナ270は、コンテナプラットフォーム260の頂部上を走行することができる。コンテナイメージ、例えばコンテナイメージ240は、機密データ223に基づいて個別化されたネットワークサービスを提供するために、コンテナ270として展開することができる。ネットワークサービスシステム200はまた、サービスが提供されるユーザ装置213、例えば、図1のユーザ装置113を含んでも良い。図1と同様に、本図は、機能ユニット、例えば、ユニット231、232、233、235及び/又は236を示し、これらは、それぞれの装置のプロセッサの機能ユニットであっても良い。
特に、ネットワークサービスシステム200は、コンテナビルダ210、例えば図1のコンテナビルダ110を有しても良い。コンテナビルダ210は、機密データ223に基づいて個別化されたネットワークサービスを提供するためのものであっても良い。コンテナビルダ240は、データベース221にアクセスするためのデータインタフェース220を有しても良い。コンテナビルダ240はまた、例えばコンピュータネットワーク290を介してクラウドサービスプロバイダ211と接続するための通信インタフェース250を有しても良い。コンテナビルダ240は、データインタフェース223を使用してデータベース221から機密データ223を取得するように構成されたデータ処理ユニット、機密データを含むコンテナイメージ240を構築するように構成されたイメージ処理ユニット232、及び/又は通信インタフェース250を使用してクラウドサービスプロバイダ211に展開するためのコンテナイメージ223を提供するように構成されたクラウド処理ユニット233を、更に有しても良い。コンテナイメージ240は、コンテナとして展開されたときに、コンテナイメージ240に含まれる機密データ223に基づいて、コンテナに個別化されたネットワークサービスを提供させる命令を有しても良い。
ネットワークサービスシステム200は、コンテナビルダ、例えば図1のクラウドサービスプロバイダ111と共に使用するためのクラウドサービスプロバイダ211を更に有しても良い。クラウドサービスプロバイダ211は、コンテナビルダ210及び/又はコンテナホスト212と接続するための通信インタフェース251を有しても良い。クラウドサービスプロバイダ211は、通信インタフェース251を使用してコンテナビルダ210から展開のためのコンテナイメージ240を受信するように構成されたビルダ処理ユニット235を更に有しても良い。クラウドサービスプロバイダ211は、コンテナイメージ240をコンテナとして展開するように構成された展開ユニット236も有しても良い。図2に示す例示的な実施例においては、コンテナイメージ240は、コンテナホスト212上のコンテナ270として展開されるが、上述したように、コンテナホスト212は、クラウドサービスプロバイダ211と一致していても良い。
個別化されたネットワークサービスを提供する結果として、コンテナ270は、上述したように、更新されたデータ223を有しても良い。例えば、コンテナ270に展開された1つ以上のファイルが修正及び/又は削除されても良く、及び/又は1つ以上の新しいファイルがコンテナ270に作成されても良い。例えば、更新されたデータは、コンテナイメージ240内に構成された1つ以上のファイルに対する更新を含んでも良い。更新されたデータは、メモリ及び/又はコンテナ270の記憶装置に記憶することができる。
様々な実施例においては、コンテナビルダ210は、コンテナ270の更新データ223を取得する。例えば、イメージ処理ユニット232は、コンテナ270が更新されたデータ223を収集し、それをコンテナビルダ210及び/又はクラウドサービスプロバイダ211に提供するための命令をコンテナイメージ240に含むように構成されても良い。例えば、コンテナ270は、収集された更新データ223をリモートの記憶装置280、例えば、リモートのデータベース又はリモートのファイルシステムにアップロードすることができ、コンテナ270は、収集された更新データをコンテナビルダ211等によってアクセス可能な電子メールアドレスに電子メールすることができる。リモート記憶装置280は、ここでは別個のネットワークエンティティとして示されているが、例えば、クラウドサービスプロバイダ211の外部アクセス可能な記憶装置であっても良い。コンテナビルダ210は、例えば、リモート記憶装置280からそれを検索することによって、それに応じて更新されたデータ223を取得するように構成されても良い。更新されたデータ223は、例えば、コンテナビルダ210、クラウドサービスプロバイダ212、又はコンテナプラットフォーム260によって、コンテナ270から取得することもできる。例えば、コンテナ270は、Dockerバインドマウント又はボリューム、ネットワーク共有等、クラウドサービスプロバイダ212又はコンテナプラットフォーム260によってアクセス可能な記憶装置等、外部からアクセス可能な記憶装置内の処理中に、更新されたデータ223を記憶する。クラウドサービスプロバイダ212又はコンテナプラットフォーム260は、斯かる場合、更新されたデータ223を収集し、例えば、それをリモート記憶280にアップロードすることによって、それをコンテナビルダ210に提供するように構成されても良い。例えば、更新されたデータを収集することは、コンテナ270の終了後に実行される後処理スクリプトによって実行されても良く、このことは、コンテナ内のソフトウェアに対するより少ないカスタマイズが必要とされるという利点を持ち得る。
更新されたデータ223は、様々なフォーマットで、例えば、1つ以上のデータベースファイル、テキストファイル等の形で、コンテナビルダ210に提供されても良い。一実施例においては、クラウド処理ユニット233は、クラウドサービスプロバイダ211から更新されたコンテナイメージを取り出し、イメージ処理ユニット132は、更新されたコンテナイメージから更新されたデータ244を抽出する。例えば、更新されたコンテナイメージは、コンテナイメージ240と同様のフォーマットのものとすることができる。このことは、必要とされるコンテナ内のソフトウェアのカスタマイズが少なく、例えば、更新されたデータ223を提供することが、コンテナ内のソフトウェアに対して透明であり得るという利点を有し得る。
様々な実施例においては、更新されたデータ223は、暗号化鍵244による収集時に暗号化され、クラウド処理ユニット233は、暗号化鍵244に対応する復号キー245を使用して、取得された更新されたデータ223を復号するように構成される。例えば、イメージ処理ユニット232は、暗号化鍵244を使用した収集時に収集された更新データ223を暗号化するためのコンテナイメージ240暗号化命令246を含むことができ、又は、クラウド処理ユニット233は、収集時に暗号化のために暗号化鍵244をクラウドサービスプロバイダ211及び/又はコンテナホスト212に提供することができる。イメージ処理ユニット232は、暗号化鍵244及び復号化キー245を生成するか、又はそれ以外の方法で取得するように構成されても良い。暗号化を使用することにより、更新されたデータ223の曝露を減少させることができる。幾つかの実施例においては、暗号化鍵244と復号化キー245は両方とも同じ対称鍵であり、他の実施例においては、暗号化鍵244と復号化キー245は公開/秘密鍵ペアを形成する。後者は、暗号化を行っている主体や、その鍵素材を侵害している主体でさえ、いったん暗号化されると、更新されたデータ223を復号できるという利点を有する。
典型的には、クラウド処理ユニット233は、コンテナ270の終了時に更新されたデータ223を取得する。例えば、クラウド処理ユニット233は、コンテナが終了したかどうかを定期的にチェックするように構成されても良い。例えば、クラウド処理ユニット232は、クラウドサービスプロバイダ211にコンタクトして、コンテナ270に関するステータス更新を取得することができ、クラウドサービスプロバイダ232のビルダ処理ユニット235は、要求に応じて、斯かるステータス更新をコンテナビルダ210に提供するように構成される。クラウド処理ユニット232はまた、例えば、コンテナ270によって提供される個別化されたネットワークサービスにアクセスしようと試みることによって、又は別の方法でコンテナ270にコンタクトすることによって、ステータス更新を取得するためにコンテナ270に直接コンタクトしても良い。記憶装置280内の更新されたデータの存在は、クラウド処理ユニット233に終了を示すこともできる。クラウド処理ユニット232による定期的なチェックは、コンテナビルダ210が、着信接続を受け入れて終了を検出する必要がなく、例えば、通知を受信する必要がないという利点を有しても良い。しかしながら、ここに記載される周期的チェック以外の他のオプションを使用することができ、例えば、クラウドサービスプロバイダ211は、コンテナ270の終了時にコンテナビルダ210に通知するように、例えば、コンテナビルダ210によって提供されるRESTful APIを使用して、電子メールによって、又は任意の適切な通知メカニズムを使用して、構成されても良い。しかしながら、終了のチェックは必要でなくても良く、例えば、コンテナ270は、上述のように、時間後に終了するように構成されても良く、クラウド処理ユニット232は、時間後に更新されたデータ223を取り出すように構成される。また、例えば、クラウド処理ユニット233は、実行中のコンテナから更新されたデータ223を取得することができるので、終了を全く待つ必要がない場合がある。
コンテナビルダ210のデータ処理ユニット231は、データインタフェース220を使用して、データベース221に更新されたデータ223を記憶するように構成しても良い。更新されたデータ223を記憶することは、更新されたデータ223の有効性をチェックすることを含んでも良い。データ処理ユニット231は、有効であることが検出された場合にのみ、更新されたデータ223をデータベース221に記憶することができる。例えば、有効性のチェックは、更新されたデータが個別化されたネットワークサービスの意図されたユーザに関連するデータのみを含むことをチェックすることと、更新されたデータ223が個別化されたネットワークサービスに関連するデータのみを含むことをチェックすることと、及び/又は更新されたデータ223が改ざんされていないことをチェックすることと、例えば、データ上のチェックサム及び/又はディジタル署名を検証することと、を有しても良い。例えば、データ処理ユニット231は、展開のために提供される各コンテナイメージに識別子、例えば、ランダムに生成される一意の識別子を割り当てることができる。斯かる識別子は、コンテナイメージ240に含まれても良い。データ処理ユニット231は、更に、エントリのリスト、コンテナイメージの識別子を含むエントリ、それが個別化されるユーザ又はユーザの組、及び/又は変更が許可されるデータフィールドの仕様を保持しても良い。更新されたデータ223を検索すると、データ処理ユニット231は、例えば更新されたデータ223の一部として、対応するコンテナイメージに含まれる識別子を取得し、更新されたデータ223がユーザ又はユーザのセット及び/又は対応するエントリのデータフィールドの仕様に関連することをチェックすることができる。更新されたデータ223をチェックすることは、たとえ個別化されたネットワークサービスを提供するコンテナが構成されていても、斯かる侵害は、特定のユーザ及び/又は特定のネットワークサービスに関連するデータにのみ影響を与え、及び/又はデータの有効性に影響を与えない可能性があるという利点を有する可能性がある。
全体として、上述され図2に示されるシステムによって例示される様々な実施例は、データベース221が更新されたデータ223で更新されることを可能にし得る。更新されたデータ223は、破線で示されるように、例えば、ユーザ装置213によって挿入又は入力されて、コンテナ270に提供されても良い。更新されたデータ223は、次いで、コンテナビルダ210によって取得されても良く、例えば、コンテナ270は、別の破線によって示されるように、それをリモートデータベースにアップロードし、コンテナビルダ210は、それをリモートデータベースからダウンロードする。最後に、コンテナビルダ210は、更新されたデータ223をデータベース221に格納しても良い。それ故、データベース221は、遠隔アクセスにさらさずに更新されても良い。
図3は、ユーザ認証を伴うネットワークサービスシステム300の一実施例の一例を模式的に示す。ネットワークサービスシステム300は、コンテナビルダ310、クラウドサービスプロバイダ311、コンテナホスト312、及びユーザ装置313のうちの1つ以上を有しても良い。
例えば、コンテナビルダ310は、上述のようなコンテナビルダ、例えば、図1のコンテナビルダ110又は図2のコンテナビルダ210であっても良い。特に、コンテナビルダ310は、イメージ処理ユニット332、例えば、イメージ処理ユニット132又はイメージ処理ユニット232を有しても良い。図示されていないが、コンテナビルダ310は、データインタフェース、データ処理ユニット、及び/又はクラウド処理ユニット、例えば、ユニット120、131、133、220、231及び/又は233を有することもできる。
同様に、クラウドサービスプロバイダ311は、上述のようなクラウドサービスプロバイダ、例えば、クラウドサービスプロバイダ111又は211とすることができ、例えば、展開ユニット136又は展開ユニット236等の展開ユニット336を有する。図には示されていないが、クラウドサービスプロバイダ311は、ビルダ処理ユニット、例えばユニット135又は235も有しても良い。
コンテナホスト312は、コンテナホスト112又は212であっても良く、例えば、コンテナ170又は270等のコンテナ370を含む。ユーザ装置313は、ユーザ装置113又はユーザ装置213とすることができる。該装置は、コンピュータネットワーク390を使用して、例えば、コンピュータネットワーク190又は290と通信することができる。図1と同様に、本図は、機能ユニット、例えば、ユニット332及び/又は236を示し、これらは、それぞれの装置のプロセッサの機能ユニットであっても良い。
コンテナビルダ310のイメージ処理ユニット332は、特定の認証情報を所有するユーザのみに個別化されたネットワークサービスへのアクセスを提供するようにコンテナ370を構成しても良い。イメージ処理ユニット332は、この認証情報を個別化されたネットワークサービスの意図されたユーザ、例えばユーザ装置313又はその所有者に更に提供しても良い。このことは、攻撃者が認証情報を得るための追加の努力を行う必要がある可能性があるので、データ露出を更に制限する利点をもつ可能性がある。様々な種類の認証情報、又はそれらの様々な組み合わせ、例えば、マルチファクタ認証、例えば、2ファクタ認証を使用することができる。
一実施例においては、認証情報は、コンテナに接続するためのプライベートアドレス348、例えばURL、ドメイン名等を有する。プライベートアドレス348は、所与のユーザ又はユーザの集合に対して固有であっても良い。例えば、プライベートアドレス348は、隠されたサブドメインであっても良い。コンテナイメージ340を展開のために提供するとき、コンテナビルダ310は、クラウドサービスプロバイダ311に、プライベートアドレスでコンテナイメージ340を展開するように要求することができる。クラウドサービスプロバイダ311は、コンテナイメージ340をコンテナホスト312に展開し、プライベートアドレス、例えば、「a0123.networkservice.com」を生成し、プライベートアドレスをコンテナに、例えば、DNSエントリにマッピングすることができる。プライベートアドレスは、ネットワークサービス、例えばウェブアプリケーションを展開することができるランダムポート番号、例えば4824を有しても良い。クラウドサービスプロバイダ311は、プライベートアドレスをコンテナビルダ310に提供することができ、代替としては、コンテナビルダ310は、プライベートアドレスの少なくとも一部を選択又は提案する。いずれの場合においても、コンテナビルダは、例えば「http://a0123.networkservice.com:4824」といったプライベートアドレス348へのリンク、例えば、患者評価を記入するための招待を使用して、プライベートアドレス348に接続するようにユーザ装置313に指示することができる。プライベートアドレスは、ユーザフレンドリであるが、推測するのが難しいため、システムのセキュリティを危うくするのがより難しくなる。
一実施例においては、認証情報は、トークン347、例えば秘密トークンを有する。コンテナイメージ340は、コンテナとして展開されたときに、接続ユーザがトークン347を所有することをコンテナに検証させる命令349を有しても良い。例えば、トークン347は、ランダムな文字列、例えば最小の長さ又は最小のエントロピー、例えば少なくとも5又は少なくとも10文字又は少なくとも10又は20ビットのエントロピー、例えば「XHnRRIdykv」であっても良い。例えば、イメージ処理ユニット332は、トークン347をランダムに生成しても良く、コンテナは、例えば、トークンを使用してアクセスされる場合にのみ、例えば、トークンがプライベートアドレス348、例えば「http://a0123.networkservice.com:4824/?token=XHnRRIdykv」に含まれる場合にのみ、ウェブアプリケーションを提供するように構成されても良い。代替としては、トークン347は、個別化されたウェブサービス/ウェブAPIのためのパラメータであっても良い。トークンを使用すると、ユーザに高い負担をかけることなく、システムを危険にさらす可能性がある。
上記の認証情報の例は、セキュリティを更に向上させるために互いに、及び他のタイプの認証情報と組み合わせることができる。例えば、ウェブアプリケーションのユーザは、例えば、図4a及び図4bを参照して説明したように、通常の信用証明でログインするように求められても良い。コンテナイメージ340は、通常はユーザ認証にも使用される認証データベースからの意図されたユーザの信用証明441を有しても良い。代替として又はこれに加えて、他のタイプの認証、例えばハードウェアトークンを使用することが用いられても良い。興味深いことに、通常の認証メカニズムがコンテナビルダ310によって提供される認証情報と組み合わされるとき、コンテナの使用は、ユーザに対して透明であっても良く、例えば、ユーザは、図4aのような非個別化されたネットワークサービスを使用する場合と同様に、個別化されたネットワークサービスを使用しても良い。
図5は、コンテナによって提供される個別化されたネットワークサービスが、別のネットワークサービス、例えば、非個別化されたネットワークサービスと組み合わされている、ネットワークサービスシステム500の実施例の一例を示す。斯かる実施例は、例えば、機密データ522が実際に使用される場合及びそのときにのみコンテナ化を適用することによって、不必要なオーバーヘッドを招くことなく機密データ522の曝露を制限することを可能にすることができる。
図5に示すのは、例えば、アプリケーションソフトウェア534を介して非個別化されたネットワークサービスを提供する、クラウドサーバ514、例えば、図4のクラウドサーバ400である。クラウドサーバ514は、ユーザ装置にネットワークサービス580、例えばウェブアプリケーションを提供する従来の任意のサーバとすることができる。また、斯かるサービスが提供されるユーザ装置513が示されており、該装置はここでは、例示の目的のみのためにラップトップとして示されており、例えば上述したようなユーザ装置113、213又は313である。動機的な例として、アプリケーションソフトウェア534は、ユーザ装置513のユーザにウェブショップアプリケーションを提供しても良く、ユーザは、これを使用して、様々な商品を購入のために選択しても良い。ブラウジング中、アプリケーションは、ユーザの住所及び/又はクレジットカード情報等の機密データ522を必要としない場合がある。
ある時点で、提供されるアプリケーションは、機密情報522へのアクセスを必要とし得る。この時点で、アプリケーションソフトウェア534は、コンテナホスト512で実行されているコンテナ570にユーザ装置513をリダイレクトするリダイレクト581を提供し得る。リダイレクト481は、コンテナ570のためのアプリケーションソフトウェア534の着信情報を有しても良い。コンテナ570は、コンテナビルダ510によって構築されたコンテナイメージから展開され、上述のように、機密情報522を含むデータベース521にアクセスする(例えばコンテナビルダ510は、上述のように、コンテナビルダ110、コンテナビルダ210又はコンテナビルダ310とすることができる)。例えば、クラウドサーバ514は、コンテナビルダ510にコンテナを展開するように指示することができ、コンテナビルダ510は、展開のためのコンテナイメージを提供するように構成されても良い。上述のように、コンテナイメージを事前に準備し、機密データ522に基づいてコンテナイメージをカスタマイズすることは、ユーザの待ち時間を最小限に抑えたいという要望が与えられた場合、この設定において特に有益であり得る。展開のためのコンテナイメージを提供した後、コンテナビルダ510は、個別化されたネットワークサービスに到達できるアドレスをクラウドサーバ514に提供することができる。そして、クラウドサーバ514は、このアドレスに、ユーザ装置513をリダイレクト(581)することができる。代替としては、コンテナ570へのアクセスは、例えば、コンテナホスト512のコンテナプラットフォーム560によって検出されても良く、その時点で、コンテナビルダ510は、展開のためのコンテナイメージを提供しても良い。
コンテナ570にリダイレクトされると、ユーザ装置513は、コンテナによって提供される個別化されたネットワークサービスを利用することができる。上記の例示を続けると、ユーザ装置513は、ショッピングカードをチェックアウトするために、リダイレクト581によってコンテナ570にリダイレクトされても良い。この場合、コンテナイメージに含まれる機密情報522は、例えば、ユーザに関するクレジットカード情報及び/又は住所情報を有しても良い。リダイレクト581に含まれる着信情報は、例えば、ショッピングカートのコンテンツを有しても良い。コンテナイメージ570は、個別化されたネットワークサービスを提供することができ、例えば、ユーザの支払いを処理することができる。個別化されたネットワークサービスを提供されると、コンテナ570は、ユーザ装置513をクラウドサーバ、例えばクラウドサーバ514にリダイレクトするリダイレクト582を提供することができる。リダイレクト582は、例えば、支払いの例では、支払いが成功したかどうかを示す、個別化されたネットワークサービスの戻り値を有しても良い。ユーザ装置513は、ウェブアプリケーションを使用し続けることができ、一方、機密情報522に基づくコンテナ570は、クリーンアップ又は終了することができる。
それ故、図5に模式的に示される様々な実施例は、データベース521からの情報に部分的に基づいており、データベース521からの情報の公開が制限されるアプリケーションをユーザ装置513に提供することを可能にすることができ、同時に、データベースにアクセスする必要のないアプリケーションの部分が、より従来のクラウドサーバ514等の様々な技法を使用して提供されることを可能にする。
図6は、コンテナビルダ、クラウドサービスプロバイダ、コンテナホスト、又はユーザ装置を実装するための例示的なハードウェア図1100を示す。例示的なハードウェア1100は、例えばコンテナビルダ110、210、310、470若しくは510、クラウドサービスプロバイダ111、211若しくは311、コンテナホスト112、212、312若しくは512、又はユーザ装置113、213、313若しくは513のうちの任意の1つに対応し得る。図示のように、装置1100は、1つ以上のシステムバス1110を介して相互接続されたプロセッサ1120、メモリ1130、ユーザインタフェース1140、通信インタフェース1150、及び記憶装置1160を含む。図6aは、幾つかの点で抽象化を構成し、装置1100の構成要素の実際の編成は、図示されたものよりも複雑であり得ることが理解されるであろう。
プロセッサ1120は、メモリ1130又は記憶装置1160に記憶された命令、又は他の方法でデータを処理することができる任意のハードウェア装置であって良い。従って、プロセッサは、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は他の同様の装置を有しても良い。プロセッサ1120は、例えば、クラウドコンピューティングアーキテクチャ内等に備えられても良い。更なる例をここに示す。プロセッサ1120は、分散方式で、例えば、複数のサブプロセッサ、例えば、サブプロセッサ回路として実装されても良い。
メモリ1130は、例えば、L1、L2又はL3キャッシュ又はシステムメモリのような様々なメモリを含んでも良い。このように、メモリ1130は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックRAM(DRAM)、フラッシュ(登録商標)メモリ、読み取り専用メモリ(ROM)、又は他の同様のメモリ装置を有しても良い。プロセッサが、本明細書で説明される機能のうちの1つ以上をハードウェアで実装する1つ以上のASIC(又は他の処理装置)を含む実施例においては、他の実施例における斯かる機能に対応するものとして説明されるソフトウェアを省略することができることは明らかであろう。メモリの一部又は全部は、電子メモリ、磁気メモリ等であっても良い。
ユーザインタフェース1140は、管理者のようなユーザとの通信を可能にするための1つ以上の装置を含んでも良い。例えば、ユーザインタフェース1140は、ユーザコマンドを受信するためのタッチスクリーン、ディスプレイ、マウス及び/又はキーボードを有しても良い。幾つかの実施例においては、ユーザインタフェース1140は、通信インタフェース1150を介してリモート端末に提示されても良いコマンドラインインタフェース又はグラフィカルユーザインタフェースを含んでも良い。
通信インタフェース1150は、他のハードウェア装置との通信を可能にするための1つ以上の装置を含んでも良い。通信インタフェースは、ネットワークインタフェースであっても良い。例えば、通信インタフェース1150は、Ethernet(登録商標)プロトコルに従って通信するように構成されたネットワークインタフェースカード(NIC)を含んでも良い。ネットワークインタフェースは、ローカル又はワイドエリアネットワーク、例えばインターネットに対するものであっても良い。更に、通信インタフェース1150は、TCP/IPプロトコルに従って通信するためのTCP/IP積層を実装しても良い。通信インタフェースは、内部又は外部データ記憶装置、キーボード、アプリケーションインタフェース(API)等に対する記憶インタフェースであっても良い。通信インタフェース1150のための様々な代替又は追加のハードウェア又は構成が明らかであろう。
記憶装置1160は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュ(登録商標)メモリ装置、又は同様の記憶媒体のような1つ以上の機械読み取り可能な記憶媒体を有しても良い。記憶装置1160は、前記記憶装置を構成する複数の離散的なメモリを一緒に有しても良い。記憶装置1160は、一時メモリ、例えばRAMであっても良い。一時記憶装置の場合、前記記憶装置は、使用前にデータを取得するための何らかの手段、例えば、オプションのネットワーク接続(図示せず)を介してデータを取得する手段を含む。様々な実施例においては、記憶装置1160は、プロセッサ1120による実行のための命令を格納することができ、又はプロセッサ1120が動作することができるデータを格納することができる。例えば、該命令は、対応するメモリ、例えばRAMのような揮発性メモリ、又はフラッシュ(登録商標)のような不揮発性メモリにダウンロード及び/又は格納されていても良い。例えば、記憶装置1160は、ハードウェア1100の様々な基本動作を制御するための基本オペレーティングシステム1161を格納することができる。記憶装置はまた、本明細書で説明される様々な実施例による、例えば、データ処理ユニット、イメージ処理ユニット、クラウド処理ユニット、ビルダ処理ユニット、又は展開ユニット等の、上述される様々なユニットの機能を実行するための命令1162乃至1164を格納することができる。記憶装置は、複数の分散されたサブ記憶装置にわたって分散されても良い。例えば、記憶装置は、揮発性部分と不揮発性メモリ部分とを有しても良い。記憶装置の一部は、読み取り専用であっても良い。
記憶装置1160に記憶されるように記載された様々な情報は、追加的又は代替的に、メモリ1130に記憶されても良いことは明らかであろう。この点で、メモリ1130は「記憶装置」を構成すると考えることもでき、記憶装置1160は「メモリ」と考えることができる。更に、メモリ1130及び記憶装置1160は、両方とも「非一時的機械読み取り可能な媒体」であると考えることができ、ここで用いられる「非一時的」という用語は、一時的な信号を除外するが、揮発性メモリ及び不揮発性メモリの両方を含む全ての形式の記憶装置を含むと理解されるであろう。
装置1100は、説明された各構成要素のうちの1つを含むものとして示されているが、様々な構成要素は、様々な実施例において重複することができる。例えば、プロセッサ1120は、ここで説明された方法を独立して実行するように構成された、又は複数のプロセッサが協働してここで説明された機能を達成するように、ここで説明された方法のステップ又はサブルーチンを実行するように構成された複数のマイクロプロセッサを有しても良い。また、装置1100がクラウドコンピューティングシステムに実装されている場合、様々なハードウェア構成要素は別々の物理システムに属し得る。例えば、プロセッサ1120は、第1のサーバ内に第1のプロセッサを含み、第2のサーバ内に第2のプロセッサを含んでも良い。装置1100は、マイクロプロセッサ及びメモリを装備することもできる。代替としては、該装置は、全体的に又は部分的に、プログラマブルロジック、例えばフィールドプログラマブルゲートアレイ(FPGA)として実装されても良い。該装置は、全体的に又は部分的に、いわゆる特定用途向け集積回路(ASIC)、例えば特定用途のためにカスタマイズされた集積回路(IC)として実施することができる。
一実施例においては、コンテナビルダは、データ回路、プロセッサ回路及び通信回路を有しても良い。一実施例においては、クラウドサービスプロバイダは、通信回路及びプロセッサ回路を有しても良い。コンテナビルダは、データ処理回路、イメージ処理回路及びクラウド処理回路のうちの1つ以上を有しても良い。クラウドサービスプロバイダは、ビルダ処理回路及び展開回路のうちの1つ以上を有しても良い。これら回路は、ここに記載された対応するユニットを実施する。これら回路は、プロセッサ回路及び記憶回路であっても良く、プロセッサ回路は、記憶回路内に電子的に表される命令を実行する。また、回路は、FPGA、ASIC等であっても良い。
プロセッサは、分散方式で、例えば、複数のサブプロセッサ回路として実装されても良い、プロセッサ回路であっても良い。記憶装置は、複数の分散サブ記憶装置にわたって分散されても良い。メモリの一部又は全部は、電子メモリ、磁気メモリ等であっても良い。例えば、記憶装置は、揮発性部分と不揮発性メモリ部分とを有しても良い。
記憶装置の一部は、読み取り専用であっても良い。
図1、図2、図3、図5は、プロセッサ1120の機能ユニットであり得る機能ユニットを示す。例えば、図1のコンテナビルダ110は、プロセッサの可能な機能構成の青写真として使用することができる。プロセッサは、図中のユニットとは別個に示されていない。例えば、コンテナビルダ110の機能ユニットは、コンテナビルダ110に、例えばコンテナビルダ110の電子メモリに格納され、コンテナビルダ110のマイクロプロセッサによって実行可能なコンピュータ命令で、全体的又は部分的に実装されても良い。混成型の実施例においては、機能ユニットは、部分的にハードウェアで、例えば暗号コプロセッサのようなコプロセッサとして、及び部分的にコンテナビルダ110に記憶され実行されるソフトウェアで、及び同様に様々な図の他の装置のために、実装される。
典型的には、コンテナビルダ、クラウドサービスプロバイダ、コンテナホスト及びユーザ装置の各々は、それぞれの装置に記憶された適切なソフトウェアを実行するマイクロプロセッサを有する。例えば、そのソフトウェアは、対応するメモリ、例えばRAMのような揮発性メモリ又はフラッシュ(登録商標)のような不揮発性メモリにダウンロード及び/又は記憶されていても良い。また、各装置は、マイクロプロセッサやメモリを備えていても良い。代替としては、該装置は、全体的に又は部分的に、プログラム可能な論理回路、例えばフィールドプログラマブルゲートアレイ(FPGA)として実装されても良い。それぞれの装置は、全体的に又は部分的に、いわゆる特定用途向け集積回路(ASIC)、例えば特定用途のためにカスタマイズされた集積回路(IC)として実装されても良い。例えば、これら回路は、例えばVerilog、VHDL等のハードウェア記述言語を使用して、CMOSで実装されても良い。
図7aは、コンテナイメージを構築するためのコンテナビルダ方法1200の実施例の一例を模式的に示す。コンテナイメージは、データベース内の機密データに基づいて個別化されたネットワークサービスを提供するためのものである。
コンテナビルダ方法1200は、以下を有する:
-データベースへのアクセスを提供するステップ1210、
-クラウドサービスプロバイダとのディジタル通信を提供するステップ1220、
-データベースからの機密データを検索するステップ1230、
-コンテナイメージを構築し、このコンテナイメージは機密データを含むステップ1240、
-クラウドサービスプロバイダに展開するためのコンテナイメージを提供するステップであって、このコンテナイメージは、コンテナとして展開されたときに、コンテナイメージ内に含まれる機密データに基づいてコンテナを個別化されたネットワークサービスに提供させる命令を含むステップ1250。
図7bは、一実施例による、コンテナビルダと共に使用するためのクラウドサービスプロバイダ方法1300の一実施例の一例を模式的に示す。クラウドサービスプロバイダ方法1300は、以下を有する:
-コンテナビルダとのディジタル通信を提供するステップ1310、
-コンテナビルダから展開のためのコンテナイメージを受信するステップであって、該コンテナイメージは、機密データと、コンテナとして展開されると、機密データに基づいてコンテナに個別化されたネットワークサービスを提供させる命令とを含むステップ1320、
-コンテナイメージをコンテナとして展開するステップ1330。
当業者には明らかなように、これら方法を実行する多くの異なる方法が可能である。例えば、ステップの順序を変えることができ、又は幾つかのステップを並列に実行することができる。更に、ステップの間に、他の方法ステップが挿入されても良い。挿入されるステップは、ここで説明されるような方法の改良を表しても良く、又は該方法とは無関係であっても良い。例えば、ステップ1210及び1220は、少なくとも部分的に並列に実行されても良い。更に、所与のステップは、次のステップが開始される前に完全に終了していなくても良い。
本方法の実施例は、プロセッサシステムに方法1200又は1300を実行させるための命令を含むソフトウェアを使用して実行することができる。ソフトウェアは、システムの特定のサブエンティティによって実行されるステップのみを有しても良い。ソフトウェアは、ハードディスク、フロッピー(登録商標)、メモリ、光ディスク等の適当な記憶媒体に記憶されても良い。ソフトウェアは、有線、無線、又はデータネットワーク(例えばインターネット)を使用して、信号として送信され得る。ソフトウェアは、サーバ上でのダウンロード及び/又はリモート使用のために利用可能にされても良い。本方法の実施例は、本方法を実行するために、プログラム可能な論理回路、例えばフィールドプログラマブルゲートアレイ(FPGA)を構成するように構成されたビットストリームを使用して実行されても良い。
本発明はまた、本発明を実施するように適合されたコンピュータプログラム、特に搬送波上又は搬送波内のコンピュータプログラムに拡張されることが理解されるであろう。該プログラムは、ソースコード、オブジェクトコード、コード中間ソース、及び部分的にコンパイルされた形等のオブジェクトコードの形成であっても良く、又は方法の実施形成の実装で使用するのに適した任意の他の形成であっても良い。コンピュータプログラム製品に関する実施例は、記載された方法のうちの少なくとも1つの処理ステップのそれぞれに対応するコンピュータ実行可能命令を有する。これらの命令は、サブルーチンに分割されても良く、及び/又は静的又は動的にリンクされても良い1つ以上のファイルに格納されても良い。コンピュータプログラム製品に関する別の実施例は、記載されたシステム及び/又は製品のうちの少なくとも1つの手段のそれぞれに対応するコンピュータ実行可能命令を有する。
図7cは、機密データに基づいて個別化されたネットワークサービスを提供するためのコンテナイメージ1920を有する書き込み可能部分1910を有するコンピュータ読み取り可能な媒体1900を示す。コンテナイメージ1920は、機密データ1921を有する。コンテナイメージ1920は更に、コンテナとして展開されたときに、コンテナに機密データ1921に基づいて個別化されたネットワークサービスを提供させる命令1922を含む。コンテナイメージ1920は、物理的なマークとして又はコンピュータ読み取り可能な媒体1900の磁気化によって、コンピュータ読み取り可能な媒体1900上に実施化することができる。しかしながら、任意の他の適切な実施例も考えられる。更に、コンピュータ読み取り可能な媒体1900は、ここでは光ディスクとして示されているが、コンピュータ読み取り可能な媒体1900は、ハードディスク、固体メモリ、フラッシュ(登録商標)メモリ等の任意の適切なコンピュータ読み取り可能な媒体であっても良く、記録不可能又は記録可能であっても良いことは理解されるであろう。
図7dは、コンピュータプログラム2020を有する書き込み可能部分2010を有するコンピュータ読み取り可能な媒体2000を示し、コンピュータプログラム2020は、一実施例によるコンテナビルダ方法又はクラウドサービスプロバイダ方法をプロセッサシステムに実行させるための命令を有する。コンピュータプログラム2020は、物理的なマークとして又はコンピュータ読み取り可能な媒体2000の磁化によって、コンピュータ読み取り可能な媒体2000上に実施化することができる。しかしながら、任意の他の適切な実施例も考えられる。更に、コンピュータ読み取り可能な媒体2000は、ここでは光ディスクとして示されているが、コンピュータ読み取り可能な媒体2000は、ハードディスク、固体メモリ、フラッシュ(登録商標)メモリ等の任意の適切なコンピュータ読み取り可能な媒体であっても良く、記録不可能又は記録可能であっても良いことは理解されるであろう。コンピュータプログラム2020は、プロセッサシステムに前記コンテナビルダ方法又はクラウドサービスプロバイダ方法を実行させるための命令を有する。
上述の実施例は本発明を限定するものではなく説明するものであって、当業者は多くの代替実施例を設計することが可能であろうことは留意されるべきである。
請求項において、括弧に挟まれたいずれの参照記号も、請求の範囲を限定するものとして解釈されるべきではない。動詞「有する(comprise)」及びその語形変化の使用は、請求項に記載されたもの以外の要素又はステップの存在を除外するものではない。要素に先行する冠詞「1つの(a又はan)」は、複数の斯かる要素の存在を除外するものではない。本発明は、幾つかの別個の要素を有するハードウェアによって、及び適切にプログラムされたコンピュータによって実装されても良い。幾つかの手段を列記した装置請求項において、これら手段の幾つかは同一のハードウェアのアイテムによって実施化されても良い。特定の手段が相互に異なる従属請求項に列挙されているという単なる事実は、これら手段の組み合わせが有利に利用されることができないことを示すものではない。
100 ネットワークサービスシステム
110 コンテナビルダ
111 クラウドサービスプロバイダ
112 コンテナホスト
113 ユーザ装置
120 データインタフェース
121 データベース
122 機密データ
131 データ処理ユニット
132 イメージ処理ユニット
133 クラウド処理装置
135 ビルダ処理ユニット
136 展開ユニット
140 コンテナイメージ
141 個別化されたネットワークサービスを提供するための指示
143 停止命令
150、151 通信インタフェース
160 コンテナプラットフォーム
170、171、171、172 コンテナ
190 コンピュータネットワーク
191 ファイアウォール
200 ネットワークサービスシステム
210 コンテナビルダ
211 クラウドサービスプロバイダ
212 コンテナホスト
213 ユーザ装置
220 データインタフェース
221 データベース
223 更新されたデータ
231 データ処理ユニット
232 イメージ処理ユニット
233 クラウド処理装置
235 ビルダ処理ユニット
236 展開ユニット
240 コンテナイメージ
244 暗号化鍵
245 復号化鍵
246 暗号化命令
250、251 通信インタフェース
260 コンテナプラットフォーム
270 コンテナ
280 記憶装置
290 コンピュータネットワーク
300 ネットワークサービスシステム
310 コンテナビルダ
311 クラウドサービスプロバイダ
312 コンテナホスト
313 ユーザ装置
332 イメージ処理ユニット
336 展開ユニット
340 コンテナイメージ
347 トークン
348 プライベートアドレス
349 トークンの所有を検証するための命令
350、351 通信インタフェース
370 コンテナ
390 コンピュータネットワーク
400 クラウドサーバ
401 認証データベース
402 レコードデータベース
403 アプリケーションデータベース
410 管理コンソール
411 アプリケーションソフトウェア
420 SSHインタフェース
421 HTTPインタフェース
422 ウェブAPI
430 個別ネットワークサービス
431 認証データベース
432 レコードデータベース
433 アプリケーションデータベース
441 特定のユーザの信用証明
442 特定のユーザに固有のデータ
443 特定のサービスに必要なデータ
450 アプリケーションソフトウェア
451 特定のサービスに必要なコンポーネント
460 特定のサービスに関するインタフェース
470 コンテナビルダ
471 認証データベース
472 データベース
473 アプリケーションデータベース
474 ソフトウェアコンポーネント
480、488、488、489 コンテナイメージ
481 機密データ
482 ソフトウェアコンポーネントのサブセット
500 ネットワークサービスシステム
510 コンテナビルダ
512 コンテナホスト
513 ユーザ装置
514 クラウドサーバ
521 データベース
522 機密データ
534 アプリケーションソフトウェア
560 コンテナプラットフォーム
570 コンテナ
580 ネットワークサービス
581、582 リダイレクト
1100 装置を実施するためのハードウェア図
1110 システムバス
1120 プロセッサ
1130 メモリ
1140 ユーザインタフェース
1150 通信インタフェース
1160 記憶装置
1161 基本オペレーティングシステム
1162乃至1164 データ処理ユニット、イメージ処理ユニット、…のための命令
1200 コンテナビルダ方法
1210 データベースへのアクセスを提供
1220 ディジタル通信の提供
1230 機密データの取得
1240 コンテナイメージの構築
1250 コンテナイメージの提供
1300 クラウドサービスプロバイダ方法
1310 ディジタル通信の提供
1320 コンテナイメージの受信
1330 コンテナイメージの展開
1900 コンピュータ読み取り可能な媒体
1910 書き込み可能部分
1920 コンテナイメージ
1921 機密データ
1922 個別化されたネットワークサービスを提供するための命令
2000 コンピュータ読み取り可能な媒体
2010 書き込み可能部分
2020 コンピュータプログラム

Claims (15)

  1. コンテナイメージを構築するためのコンテナビルダであって、前記コンテナイメージは、データベースにおける機密データに基づいて個別化されたネットワークサービスを提供するためのものであり、前記コンテナビルダは、
    前記コンテナビルダのプライベートなデータベースとして構成された前記データベースにアクセスするよう構成された、データインタフェースと、
    クラウドサービスプロバイダとのディジタル通信のために構成された通信インタフェースと、
    前記データインタフェースを用いて前記データベースから前記機密データを取得し、
    前記機密データを有する前記コンテナイメージを構築し、
    前記通信インタフェースを用いて前記クラウドサービスプロバイダへの展開のための前記コンテナイメージを提供する
    よう構成されたプロセッサと、
    を有し、前記コンテナイメージは、コンテナとして展開されたときに、前記コンテナイメージに含まれる前記機密データに基づいて前記個別化されたネットワークサービスを前記コンテナに提供させる命令を有する、コンテナビルダ。
  2. 前記個別化されたネットワークサービスは、ウェブアプリケーションである、請求項1に記載のコンテナビルダ。
  3. 前記機密データは、ユーザについての個人情報を有し、前記コンテナイメージは、前記個別化されたネットワークサービスを前記ユーザに提供するよう構成された、請求項1又は2に記載のコンテナビルダ。
  4. 前記コンテナイメージは、コンテナとして展開されたときに、制限時間の後に及び/又は前記個別化されたネットワークサービスの利用が完了した後に、前記コンテナに終了させる命令を有する、請求項1乃至3のいずれか一項に記載のコンテナビルダ。
  5. 前記プロセッサは更に、
    前記個別化されたネットワークサービスにより更新された、更新されたデータを取得し、
    前記データインタフェースを用いて前記データベースに前記更新されたデータを保存する
    よう構成された、請求項1乃至4のいずれか一項に記載のコンテナビルダ。
  6. 前記コンテナイメージは更に、コンテナとして展開されたときに、前記コンテナに、前記更新されたデータを収集させ、前記コンテナビルダ又は前記クラウドサービスプロバイダに提供させる命令を含む、請求項5に記載のコンテナビルダ。
  7. 前記コンテナイメージは更に、コンテナとして展開されたときに、前記コンテナに、前記更新されたデータを暗号化させる暗号化命令を有し、前記更新されたデータの取得は、暗号化鍵に対応する復号化鍵を用いて、前記暗号化された前記更新されたデータを復号化することを有する、請求項5又は6に記載のコンテナビルダ。
  8. 前記コンテナビルダは更に、前記更新されたデータの有効性をチェックし、有効である場合にのみ前記データベースに前記更新されたデータを保存するよう構成された、請求項5乃至7のいずれか一項に記載のコンテナビルダ。
  9. 前記コンテナビルダは更に、前記個別化されたネットワークサービスの意図されるユーザに認証情報を提供するよう構成され、前記コンテナは、前記認証情報を処理したユーザにのみ前記個別化されたネットワークサービスへのアクセスを提供するよう構成された、請求項1乃至8のいずれか一項に記載のコンテナビルダ。
  10. 前記認証情報は、トークンを有し、前記コンテナイメージは、コンテナとして展開されたときに、前記コンテナに、接続したユーザが前記トークンを処理したことを確認させる命令を有する、請求項9に記載のコンテナビルダ。
  11. 請求項1乃至10のいずれか一項に記載のコンテナビルダとともに使用するためのクラウドサービスプロバイダであって、前記クラウドサービスプロバイダは、
    前記コンテナビルダとのディジタル通信のために構成された通信インタフェースと、
    プロセッサと、
    を有し、前記プロセッサは、
    展開のためのコンテナイメージを前記通信インタフェースを用いて前記コンテナビルダから取得するよう構成され、前記コンテナイメージは、機密データと、コンテナとして展開されたときに、前記機密データに基づいて前記個別化されたネットワークサービスを前記コンテナに提供させる命令と、を有し、前記プロセッサは更に、
    前記機密データに基づいて、前記コンテナイメージをコンテナとして展開し、前記個別化されたネットワークサービスを提供するよう構成された、
    クラウドサービスプロバイダ。
  12. コンテナイメージを構築するためのコンテナビルダ方法であって、前記コンテナイメージは、データベースにおける機密データに基づいて個別化されたネットワークサービスを提供するためのものであり、前記コンテナビルダ方法は、
    データベースへのアクセスを提供するステップと、
    クラウドサービスプロバイダとのディジタル通信を提供するステップと、
    前記データベースから前記機密データを取得するステップと、
    前記機密データを有する前記コンテナイメージを構築するステップと、
    前記クラウドサービスプロバイダへの展開のため前記コンテナイメージを提供するステップと、
    を有し、前記コンテナイメージは、ンテナとして展開されたときに、前記コンテナイメージに含まれる前記機密データに基づいて前記個別化されたネットワークサービスを前記コンテナに提供させる命令を有する、コンテナビルダ方法。
  13. 請求項1乃至10のいずれか一項に記載のコンテナビルダとともに利用されるためのクラウドサービスプロバイダ方法であって、前記クラウドサービスプロバイダ方法は、
    前記コンテナビルダとのディジタル通信を提供するステップと、
    展開のためのコンテナイメージを前記コンテナビルダから取得するステップであって、前記コンテナイメージは、機密データと、コンテナとして展開されたときに、前記機密データに基づいて個別化されたネットワークサービスを前記コンテナに提供させる命令と、を有するステップと、
    前記機密データに基づいて、前記コンテナイメージをコンテナとして展開し、前記個別化されたネットワークサービスを提供するステップと、
    を有する、クラウドサービスプロバイダ方法。
  14. 機密データに基づいて個別化されたネットワークサービスを提供するためのコンテナイメージを表す一時的又は非一時的なデータを有するコンピュータ読み取り可能な媒体であって、前記コンテナイメージは、
    機密データと、
    コンテナとして展開されたときに、前記機密データに基づいて前記個別化されたネットワークサービスを前記コンテナに提供させる命令と、
    を有する、コンピュータ読み取り可能な媒体。
  15. 請求項12又は13に記載の方法をプロセッサシステムに実行させるための命令を表す一時的又は非一時的データを有する、コンピュータ読み取り可能な媒体。
JP2021546473A 2018-10-22 2019-10-22 個別化されたネットワークサービスのためのコンテナビルダ Active JP7434342B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18201688.1 2018-10-22
EP18201688.1A EP3644206A1 (en) 2018-10-22 2018-10-22 A container builder for individualized network services
PCT/EP2019/078694 WO2020083891A1 (en) 2018-10-22 2019-10-22 Container builder for individualized network services

Publications (2)

Publication Number Publication Date
JP2022508899A true JP2022508899A (ja) 2022-01-19
JP7434342B2 JP7434342B2 (ja) 2024-02-20

Family

ID=63965216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021546473A Active JP7434342B2 (ja) 2018-10-22 2019-10-22 個別化されたネットワークサービスのためのコンテナビルダ

Country Status (5)

Country Link
US (1) US11914753B2 (ja)
EP (2) EP3644206A1 (ja)
JP (1) JP7434342B2 (ja)
CN (1) CN112912880A (ja)
WO (1) WO2020083891A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210409409A1 (en) * 2020-06-29 2021-12-30 Illumina, Inc. Temporary cloud provider credentials via secure discovery framework
CA3129292C (en) * 2020-09-03 2023-12-19 Banque Nationale Du Canada Systems and methods for executing dynamic code in a software container
CN114036223A (zh) * 2020-11-13 2022-02-11 武汉联影医疗科技有限公司 医疗信息管理方法、系统、装置、计算机设备和存储介质
US11748489B2 (en) * 2021-04-02 2023-09-05 Dell Products, L.P. Unified software library access and vulnerability correction prioritization
US11665139B2 (en) 2021-04-30 2023-05-30 Palo Alto Networks, Inc. Distributed offload leveraging different offload devices
US11477165B1 (en) * 2021-05-28 2022-10-18 Palo Alto Networks, Inc. Securing containerized applications
CA3221198A1 (en) * 2021-06-29 2023-01-05 Kinova Inc. Containerized plug-in system for robotics
US20230036739A1 (en) * 2021-07-28 2023-02-02 Red Hat, Inc. Secure container image builds
US20230037986A1 (en) * 2021-08-09 2023-02-09 International Business Machines Corporation Autoencryption system for data in a container
CN114266060B (zh) * 2021-12-28 2024-03-26 航天科工智能运筹与信息安全研究院(武汉)有限公司 一种模型容器加密与部署方法
TWI795262B (zh) * 2022-04-06 2023-03-01 中華電信股份有限公司 高可用服務之部署系統、方法及其電腦可讀媒介
CN115665172B (zh) * 2022-10-31 2023-04-28 北京凯思昊鹏软件工程技术有限公司 一种嵌入式终端设备的管理系统
US11979746B1 (en) 2023-07-21 2024-05-07 Palo Alto Networks, Inc. Selective intelligent enforcement in mobile networks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2626871A1 (fr) 1988-02-04 1989-08-11 Corning Glass Works Article en vitroceramique, procede pour sa fabrication et verre thermiquement cristallisable
US6618764B1 (en) 1999-06-25 2003-09-09 Koninklijke Philips Electronics N.V. Method for enabling interaction between two home networks of different software architectures
US8904382B2 (en) * 2010-06-17 2014-12-02 International Business Machines Corporation Creating instances of cloud computing environments
US9152812B2 (en) * 2013-12-03 2015-10-06 Paypal, Inc. Sensitive data protection during user interface automation testing systems and methods
US20170154017A1 (en) * 2014-05-08 2017-06-01 Telefonaktiebolaget Lm Ericsson (Publ) Web Application Management
JP6536804B2 (ja) 2015-06-19 2019-07-03 日本電気株式会社 情報処理システム
WO2017035536A1 (en) * 2015-08-27 2017-03-02 FogHorn Systems, Inc. Edge intelligence platform, and internet of things sensor streams system
US9940470B2 (en) 2015-10-06 2018-04-10 Symantec Corporation Techniques for generating a virtual private container
US10002247B2 (en) 2015-12-18 2018-06-19 Amazon Technologies, Inc. Software container registry container image deployment
JP6749094B2 (ja) 2015-12-18 2020-09-02 エヌ・ティ・ティ・コミュニケーションズ株式会社 コンテナ収容装置、コンテナ作成方法、及びプログラム
US10855725B2 (en) 2016-06-02 2020-12-01 Microsoft Technology Licensing, Llc Hardware-based virtualized security isolation
EP3267351A1 (en) * 2016-07-07 2018-01-10 Gemalto Sa Method for securely managing a docker image
JP6616262B2 (ja) 2016-08-16 2019-12-04 日本電信電話株式会社 通信システム及びトラヒック制御方法
US10031735B2 (en) * 2016-09-30 2018-07-24 International Business Machines Corporation Secure deployment of applications in a cloud computing platform

Also Published As

Publication number Publication date
EP3644206A1 (en) 2020-04-29
EP3871126A1 (en) 2021-09-01
WO2020083891A1 (en) 2020-04-30
US11914753B2 (en) 2024-02-27
JP7434342B2 (ja) 2024-02-20
CN112912880A (zh) 2021-06-04
US20210271777A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
JP7434342B2 (ja) 個別化されたネットワークサービスのためのコンテナビルダ
JP6301534B2 (ja) 仮想化サーバ
US11153303B2 (en) Secure authentication of a device through attestation by another device
CN105379223B (zh) 管理对企业资源的访问的方法和装置
JP6348661B2 (ja) サードパーティの認証サポートを介した企業認証
CN105378744B (zh) 在企业系统中的用户和设备认证
CN109558721A (zh) 客户端应用程序的安全单点登录和条件访问
CN105359486B (zh) 使用代理安全访问资源
US9654508B2 (en) Configuring and providing profiles that manage execution of mobile applications
CN105308923B (zh) 对具有多操作模式的应用的数据管理
CN109155781A (zh) 对托管应用程序的动态访问
CN109074274A (zh) 虚拟浏览器集成
CN108028845A (zh) 使用导出凭证注册企业移动装置管理服务
US9059987B1 (en) Methods and systems of using single sign-on for identification for a web server not integrated with an enterprise network
US9787668B1 (en) Sensitive user information management system and method
US20200151617A1 (en) Systems and methods for machine generated training and imitation learning
US20130031000A1 (en) System and Method for Detecting Fraudulent Financial Transactions
JP6994607B1 (ja) Saasアプリケーションのためのインテリセンスのためのシステムおよび方法
CN113574837A (zh) 跟踪客户端设备上的图像发送者
DeJonghe et al. Application Delivery and Load Balancing in Microsoft Azure
MacDonald et al. Deploying ASP. NET Applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240207

R150 Certificate of patent or registration of utility model

Ref document number: 7434342

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150