JP7244527B2 - ストレージリソースの安全な共用 - Google Patents
ストレージリソースの安全な共用 Download PDFInfo
- Publication number
- JP7244527B2 JP7244527B2 JP2020538615A JP2020538615A JP7244527B2 JP 7244527 B2 JP7244527 B2 JP 7244527B2 JP 2020538615 A JP2020538615 A JP 2020538615A JP 2020538615 A JP2020538615 A JP 2020538615A JP 7244527 B2 JP7244527 B2 JP 7244527B2
- Authority
- JP
- Japan
- Prior art keywords
- computer system
- controller
- storage
- logical block
- block
- 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.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims description 221
- 238000004891 communication Methods 0.000 claims description 49
- 230000002085 persistent effect Effects 0.000 claims description 35
- 230000004913 activation Effects 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 2
- 230000014759 maintenance of location Effects 0.000 claims 1
- 238000002955 isolation Methods 0.000 description 24
- 230000001010 compromised effect Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000001459 lithography Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000005204 segregation Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000002435 venom Substances 0.000 description 1
- 210000001048 venom Anatomy 0.000 description 1
- 231100000611 venom Toxicity 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Description
本発明は、複数の異なるユーザによって使用されるストレージリソースを安全に共用するためのコンピュータシステム及び方法に関する。
インフラストラクチャアズアサービス(IaaS)は、アマゾン(登録商標)のElastic Compute Cloud(登録商標)、マイクロソフト(登録商標)、及びデジタルオーシャン(登録商標)などの様々な「クラウド」プロバイダによって提供される。IaaSサービスでは、物理的なコンピューティングインフラストラクチャの中央プールは、任意の所与の顧客のデータ及びプロセスが他の顧客のものから隔離されることを保証するためのセキュリティ分離を使用することによって、複数の独立した顧客(又は「ユーザ」)によって使用される。
この隔離は、任意の所与の時点及び異なる時点の両方に関連する必要がある。これは、第1の時間(T1)に1つの顧客(顧客A)によって使用されたコンピューティングインフラストラクチャが、その後の時間(T2)に他の顧客(顧客B)によって使用される可能性があるためである。顧客Bのプロセスが顧客Aのデータへのアクセスを得ること、又は顧客Aのプロセスが時間T2まで持続し、顧客Bのデータへのアクセスを得ること(又は顧客Bのプロセスの挙動を修正すること)は、可能であってはならない。
既存のIaaSは、仮想化層又はハイパーバイザ層を使用して、この隔離を実施する。仮想化技術は、IaaSプロバイダが隔離された「仮想マシン」を定義することを可能にし、その各々は、異なる顧客によって使用され得る。任意の所与の時点で仮想マシンを互いに隔離することに加えて、仮想化技術は、任意の所与の仮想マシンがその時点でその仮想マシンを使用している顧客に属するデータのみにアクセスできるようにすることによって、複数の時点にわたって隔離を提供することも行う。
しかしながら、場合により、仮想化によって提供される隔離レベルが、顧客のセキュリティ要件に十分ではない場合がある。仮想化技術の脆弱性(たとえば、VENOMの脆弱性)により、悪意のある顧客が、同じ物理的ホスト上で仮想マシンを動作させている他の顧客に属するデータ及びプロセスへのアクセスを得る可能性がある。
これらの懸念のいくつかに対処するために、顧客は、顧客間のより強力な隔離レベルを提供するために、仮想マシンではなく、自分自身の専用の物理的装置(処理リソース、及び潜在的に永続性ストレージ(persistent storage)などの周辺機器を含む)を提供され得る。
しかしながら、これは、ある時点での適切な隔離を提供するが、それ自身では複数の時点にわたる隔離を提供しない。例えば、専用の物理的装置P1が時間T1に顧客Aによって使用され、次いで時間T2に顧客Bによって使用される場合、顧客Aのプロセスは時間T2まで持続し、顧客Bのデータへのアクセスを得ることがある。他の例として、P1が永続性ストレージを含む場合、顧客Bは、顧客Aによって永続性ストレージに保存されたデータにアクセスし得る。顧客Aがデータを暗号化していたとしても、顧客Bが暗号化されたデータを上書きして、顧客Aが時間T3にP1を使用するために戻ってきたときに、そのデータは利用できなくなっていることがあり得る。
さらに、顧客Aは、異なる物理的装置(P2)が割り当てられた場合であっても、時間T3に自分のデータへのアクセスを得ることを望むことがある。これを可能にするために、顧客Aのデータは、時間T1にP1からアクセス可能で、時間T3にP2からアクセス可能な何らかの共用ストレージ設備に記憶される必要がある。これは、P1及びP2にも接続するネットワークに接続されているネットワーク接続ストレージ(NAS)装置によって提供されてもよい。この場合、顧客間の適切な隔離を達成するために、任意の所与の物理的装置は、その時点でその所与の物理的装置が割り当てられている顧客によって所有されている、共用ストレージ設備に記憶されたデータだけにアクセス可能でなければならない。
この隔離要件を実施するための様々なアプローチが存在する。例えば、iSCSI又はNBDなどのネットワークストレージプロトコルを使用するストレージ装置は、装置にアクセスしている物理的装置のネットワーク識別に基づいてアクセス制御を実施する能力を提供し得る。しかしながら、これらのプロトコルは、典型的には比較的複雑であって、TCP、IP、及びイーサネットなどの、低いレベルのプロトコルに依存する。
この複雑さのため、これらのプロトコルのサポートは、典型的には、攻撃者によって悪用され得るセキュリティ脆弱性を含む方法で実装される。顧客がセキュリティについて非常に懸念しており、仮想化技術に頼ることを望まない場合、顧客は、そのようなアクセス制御によって提供されるセキュリティのレベルに満足する可能性は低い。
英国特許出願公開第GB2545010号は、所与の時点で顧客に自身の専用の物理的論理ブロックを割り当てることができ、それによってある時点における顧客間の隔離を提供するIaaSコンピュータシステムを記載している。複数の時点にわたる隔離を提供するために、各々の論理ブロックは、論理ブロックの電源投入時又はリセット時に、専用ストレージコントローラからの起動命令をリクエストするように事前構成されており、ストレージコントローラは、コントロール接続(control connection)を使用して論理ブロックの電源投入及びリセットを行うことができる。コントロール接続を使用して論理ブロックの電源投入又はリセットを行うことにより、ストレージコントローラは、それが提供する起動命令の実行結果である状態に、各々の論理ブロックを配置することができる。論理ブロックが起動命令をストレージコントローラに書き込まないようにする手順を実行することで、起動命令の実行結果である既知の状態は、論理ブロックで実行されるソフトウェアが電源投入時又はリセット時に実行される起動命令を変更できない「既知の良好な(known good)」状態になる。この方法では、顧客が論理ブロックに割り当てられるたびに、ロジックが電源投入又はリセットをされ、顧客は論理ブロックがこの「既知の良好」状態で開始することを認識する。
GB2545010に記載されているシステムは、ある時点において、及び複数の時点にわたって、顧客間の隔離を提供し、高保証の方法で実装されることができる一方で、顧客に永続性ストレージへの制限されたアクセスを提供する。各々の論理ブロックがそれ自身の永続性ストレージを備えていれば、複数の時点にわたる顧客間の隔離レベルが大幅に低減され、顧客が後で異なる論理ブロックを割り振られた場合に、顧客が自身のデータにアクセスすることもできない。論理ブロックに共用ストレージリソースを提供することで後者の問題は解決されるが、この場合、ある顧客が他の顧客の保存されたデータにアクセス又は上書きし得ることがあり、特定の時点において及び特定の複数の時点にわたっての両方で顧客間の隔離レベルが低下する可能性がある。
本明細書で説明される実施形態は、IaaSシステムの複数の異なる顧客がストレージ設備を共用することを可能にし、ある時点において、及び複数の時点にわたって、顧客間の隔離(isolation)を提供する。
本発明は独立請求項に定義されており、ここでは、独立請求項を参照する。好ましい特徴は、従属請求項に記載されている。
本発明の一態様によれば、複数の異なるユーザにコンピューティングリソースを提供するサーバシステムにおいて使用されるコンピュータシステムが提供される。コンピュータシステムは、命令を実行する1つ又は複数の処理ユニットを含む論理ブロック(処理ブロックとも称される)であって、第1のインタフェース(第1の接続とも称される)を介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されている、論理ブロックを含む。コンピュータシステムは、ストレージへの通信リンクを実装し、第2のコンピュータシステムへの通信リンクを実装し、第2のコンピュータシステムから、論理ブロックの現在のユーザを識別する情報を受信し、第1のインタフェースを介して論理ブロックからストレージへの読み出し及び書き込みのリクエストを受信し、リクエストを完了する、コントローラをさらに含む。第1のインタフェースは、論理ブロックとコントローラとの間の専用の物理的インタフェースであり、それにより、コントローラは、第1のインタフェースを介した通信が論理ブロックとの通信であると判定することができる。コントローラは、第2のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されているストレージの1つ又は複数の記憶位置を使用して、ストレージへの読み出し及び書き込みのリクエストを完了するように構成されている。
論理ブロックとコントローラとの間に専用の物理的インタフェース(すなわち、専用の物理的接続)(すなわち、論理ブロックとコントローラとの間の物理的なポイントツーポイントインタフェース(すなわち、物理的なポイントツーポイント接続))を提供することによって、コントローラは、論理ブロックから受信されるデータと論理ブロックから受信されないデータとを完全に確実に区別することができる。言い換えると、コントローラは、受信したデータではなく、データを受信した物理的インタフェースに基づいて、通信が論理ブロックから来たものであると判断するため、論理ブロックは、うまく他のエンティティになりすましたり、他のエンティティになりすまされたりすることはできない。これは、システムの物理的な内部構造にアクセスしないと変更できない。これは、特に、コンピュータシステムが複数の論理ブロックを含み、その各々がコントローラへの専用の物理的インタフェースを有している場合に、コントローラが完全に安全で信頼性のある方法で論理ブロックを区別することを意味するために、重要である。
さらに、コントローラが論理ブロックから完全に独立している第2のコンピュータシステムから論理ブロックの現在のユーザ(すなわち、論理ブロックに現在割り当てられている顧客)の識別(identity)を受信するので、コントローラは、論理ブロックがコントローラによるユーザの判定に影響を及ぼすことができないことを完全に確信することができる。実際、第2のコンピュータシステムが信頼されている限り、コントローラは現在のユーザの識別を絶対的に確信することができる。
さらに、これは、コントローラがストレージへの読み出し又は書き込みのリクエストを受信したとき、コントローラは、リクエストの要求元による使用が確実に許可され得る共用ストレージリソースの記憶位置を識別し得ることを意味する。このようにして、実施形態は、論理ブロックのユーザ間の高度な隔離を維持しながら、ストレージ設備を複数の異なるユーザによって共用することを可能にする。
コントローラは、論理ブロックの後続のユーザを識別する情報を第2のコンピュータシステムから受信することに応答して、論理ブロックの後続のユーザが使用を許可されているストレージの1つ又は複数の事前定義された記憶位置を使用して、論理ブロックからのストレージへの読み出し及び書き込みのリクエストを完了するように構成されていてもよい。後続のユーザは、本開示では新たなユーザとも称されるが、現在のユーザとは異なるユーザであり、現在/前のユーザとは異なるユーザであるという意味で「新たな」ユーザであってもよい。疑いを避けるために、後続のユーザは現在/前のユーザに続くが、以前に論理ブロックを使用していてもよい。論理ブロックの新たなユーザに関する命令は、論理ブロックから独立した第2のコンピュータシステムから受信されるので、コンピュータシステムが、論理ブロック上で実行されているソフトウェアによって騙されて、論理ブロックの真の現在のユーザがアクセスを許可されていない記憶位置へのデータの読み出し又は書き込みを行うことはない。
コンピュータシステムは、論理ブロックとコントローラとの間のコントロール接続をさらに含んでもよく、コントローラは、コントロール接続を使用して、論理ブロックを電源投入又はリセットするように構成されていてもよい。コントローラは、第2のコンピュータシステムから命令を受信することに応答して、論理ブロックを電源投入又はリセットするように構成されていてもよい。論理ブロックで実行されているソフトウェアは、電源切断又はリセットされると存続できないため、論理ブロック上でソフトウェアが実行されている論理ブロックを「フラッシュ(flush)」する機能が提供される。これは、異なる顧客が使用するために論理ブロックを準備する場合、又は論理ブロックがマルウェアを実行していると考えられる場合に役立ち得る。
コントローラは、第2のコンピュータシステムから命令を受信することに応答して、後続のユーザが使用するために論理ブロックを構成するように、論理ブロックを電源投入又はリセットするように構成されていてもよい。論理ブロックをリセットすることは、論理ブロックの前のユーザのプロセスが論理ブロックの後続のプロセス及びデータに影響を与えないようにするのに役立つ。
論理ブロックを後続のユーザが使用するために構成する命令は、論理ブロックの後続のユーザを識別する情報を含んでもよい。コントローラは、異なるユーザ間のセキュリティ分離を維持しながら、論理ブロックの後続のユーザによって発行されるリクエストを処理して、ストレージへのデータの読み出し及び書き込みを行う場合、論理ブロックの後続のユーザのアイデンティティを知る必要がある。
論理ブロックを後続のユーザが使用するために構成する命令は、論理ブロックをリセットする前に、コントローラに、論理ブロックからストレージへの読み出し及び書き込みのリクエストの通信を停止させる命令を含んでもよい。
論理ブロックは、例えば、論理的にハード配線され、第1のインタフェースを介してストレージへの読み出し及び書き込みのリクエストを発行するときに、1つ又は複数の事前定義された記憶位置を特定するように構成されていてもよい。この場合、コントローラは、論理ブロックによって特定される事前定義された記憶位置を、第2のコンピュータシステムによって識別される論理ブロックのユーザが使用を許可されているユーザ固有の記憶位置に変換し、ユーザ固有の記憶位置を使用してリクエストを完了するように構成されていてもよい。このように、論理ブロックは、論理ブロックのユーザに関係なく、常に同じ記憶位置を特定するので、ユーザ固有の記憶位置を論理ブロックに伝える必要はない。これにより、論理ブロックのユーザ間の切り替え処理を簡略化することができる。また、使用中に侵害される可能性がある論理ブロックは、ユーザ固有の記憶位置を知らないため、それらをコンピュータシステムの外部へ通信することができず、セキュリティを向上させ得る。論理ブロックを論理的にハード配線して記憶位置を特定することにより、論理ブロック上で動作するソフトウェアによって動作を変更することができないので、さらなるセキュリティが提供される。
コントローラは、第2のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されているユーザ固有の記憶位置を、論理ブロックに提供するように構成されていてもよく、この場合、論理ブロックは、ストレージへの読み出し及び書き込みのリクエストを発行するときに、これらのユーザ固有の記憶位置を特定するように構成され得る。これにより、コントローラが論理ブロックから受信する記憶位置を変換する必要がないので、コントローラの処理要件及び複雑さを低減することができる。この場合、コントローラは、論理ブロックによって特定される記憶位置が、第2のコンピュータシステムによって識別された論理ブロックの現在のユーザに関連付けられたユーザ固有の記憶位置と一致することを検証するように構成されていてもよい。このように、論理ブロックが使用中に侵害され、ユーザがアクセスを許可されていない保管場所が特定される可能性があるため、セキュリティ実施が提供される。
論理ブロックは、例えば論理的にハード配線され、論理ブロックの電源投入時又はリセット時にコントローラから使用を許可されているユーザ固有の記憶位置をリクエストするように構成されていてもよい。この動作を論理ブロックの起動シーケンスに統合することで、より堅牢なシステムを提供することができる。
コントローラは、ネットワークと通信するためのネットワークインタフェースを備えてもよく、コントローラは、ネットワークインタフェースを介して受信したネットワークデータを論理ブロックに送信し、論理ブロックから受信したネットワークデータを、ネットワークインタフェースを介してネットワークに送信するように構成されていてもよい。コンピュータシステムへのネットワークインタフェースの追加によって、論理ブロックに追加機能が提供され、ストレージとネットワークアクセスとの両方に対する単一のセキュリティ管理が提供される。
コントローラは、第2のコンピュータシステムによって識別される論理ブロックの現在のユーザに従って、第1のインタフェースを介して論理ブロックに対して送信及び受信されるネットワークデータに、事前定義されたユーザ固有のネットワークアクセスルールを課すように構成されていてもよい。これにより、使用中に論理ブロックが侵害されるリスクをさらに低減させることに加えて、論理ブロックの構成を変更することなく、論理ブロックの外部脅威への露出を論理ブロックのユーザの要件に合わせて調整することが可能になる。
論理ブロックは、第1のインタフェースを介してネットワークデータを送信及び受信するように構成されていてもよい。あるいは、論理ブロックは、論理ブロックとコントローラとの間の第2のインタフェース(これは第2の接続とも称される)を介してネットワークデータを送信及び受信するように構成されていてもよい。ネットワークデータ及びストレージデータが同じ第1のインタフェースを介して送信される場合、第1及び第2のプロトコルは、例えば時分割多重化を使用して、第1のインタフェースを介して多重化されてもよい。あるいは、第1の通信プロトコルが、第2の通信プロトコルを介してトンネリングされてもよく、又は第2の通信プロトコルが、第1の通信プロトコルを介してトンネリングされてもよい。ネットワークデータ及びストレージデータが別々の専用の物理的インタフェース上で送信される場合、論理ブロックは、第1の通信プロトコルに従って、第1のインタフェースを介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されていてもよく、論理ブロックは、第2の通信プロトコルに従って、第1のインタフェースを介してネットワークデータを送信及び受信するように構成されていてもよい。
ネットワークデータ及びストレージデータを同じインタフェースを介して送信することにより、コントローラと論理ブロックとの間の物理的接続の数を減らすことができ、これにより、コントローラへのより多くの論理ブロックの接続など他の用途のためにハードウェアピンを節約することができる。ただし、ネットワークデータとストレージデータとを別々の物理的インタフェースを介して送信することも可能である。
ストレージは、ネットワークベースのストレージを含んでもよく、コントローラは、ネットワークインタフェースを介して、ネットワークベースのストレージに対する、ストレージへの読み出し及び書き込みのリクエストを完了するように構成されていてもよい。
論理ブロックは、例えば論理的にハード配線され、論理ブロックの電源投入時又はリセット時に、第1のインタフェースを介してコントローラからの起動命令をリクエストするように構成されていてもよい。論理ブロックは、ASIC、PLD、又はリードオンリーメモリ(ROM)に格納された命令の1つ又は複数を使用して、論理的にハード配線されてもよい。ROM命令は、論理ブロックに格納されてもよい。論理ブロックの電源投入時又はリセット時に、論理ブロックがコントローラから起動命令をリクエストするように、論理ブロックを事前構成することにより、論理ブロックが新しいユーザに切り替えられたときに、コントローラが論理ブロックの開始状態を制御することできる。また、論理ブロックが、電源投入時又はリセット時に実行する起動命令に変更を加えた結果として、論理ブロックが「応答なし(bricked)」となる危険性も低減する。
コントローラは、論理ブロックからの起動命令のリクエストを受信することに応答して、第2のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されているストレージの1つ又は複数の記憶位置を使用して、リクエストを完了し、論理ブロックにユーザ固有の起動命令を提供するように構成されていてもよい。これにより、論理ブロックの所与のユーザは、論理ブロックをユーザ固有の状態で起動させることができる。この状態は、ユーザに望まれる可能性がある一方で、マルウェアの影響を受ける状態となり得る。しかしながら、コントローラがユーザ固有の記憶位置からのデータを返すだけであるということは、他のユーザが(所与の時間であっても、複数の時点にわたっても)影響を受ける状態から依然として隔離されていることを意味する。
さらに、又は代替的に、コントローラは、論理ブロックからの起動命令のリクエストを受信することに応答して、第2のコンピュータシステムによって提供される事前定義された起動命令を論理ブロックに提供するように構成されていてもよい。これにより、論理ブロックは、「クリーン」な起動命令として知られている、第2のコンピュータシステムによって提供される起動命令の実行に起因する「既知の良好な」状態に起動され得る。これにより、起動命令を安全な方法で更新することができる。さらに、これにより、ユーザ自身のユーザ固有の起動命令が何らかの方法で侵害された場合に論理ブロックを既知の良好な状態に起動することができ、その時点で、ユーザ固有の起動命令を修復することができる。
論理ブロックは、それ自身の永続性ストレージをさらに含み得る。これにより、論理ブロックのユーザに追加機能が提供される。
論理ブロックがそれ自身の永続性ストレージを含み、コンピュータシステムが論理ブロックとコントローラとの間のコントロール接続を含む場合、コントローラは、第2のコンピュータシステムからの命令を受信することに応答して、論理ブロックがコントローラからの起動命令をリクエストするように、前記論理ブロックを電源投入又はリセットすることと、第2のコンピュータシステムによって提供される事前定義された起動命令を論理ブロックに提供することであって、ここで、事前定義された起動命令は、論理ブロックに論理ブロック自身の永続性ストレージを上書きさせて、論理ブロック自身の永続性ストレージのコンテンツが論理ブロックによってもはや回復可能ではないようにする命令を含むことと、論理ブロックがコントローラからの起動命令をリクエストするように、論理ブロックをリセットすることと、第2のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されているストレージの1つ又は複数の事前定義された記憶位置にリクエストを通信して、ユーザ固有の起動命令を論理ブロックに提供することとによって、新たなユーザが使用するために論理ブロックを構成するように構成されている。
論理ブロックにそれ自身の永続性ストレージを提供することにより、コンピュータシステムのユーザに追加機能が提供されるが、それによって、複数の時点にわたる異なるユーザ間の隔離が減少する可能性がある。しかしながら、このようにコントロール接続及びハード配線された起動シーケンスを利用することにより、コントローラは、あるユーザによって論理ブロックの永続性ストレージに格納されたデータが、論理ブロックの後続のユーザによってアクセスされたり、後続のユーザに影響を与えたりすることができないことを保証することができる。
あるいは、論理ブロックにそれ自身の永続性ストレージを上書きさせる起動命令を実行させた後に論理ブロックをリセットするのではなく、起動命令は、論理ブロックに他の起動命令のセットをリクエストさせる最終命令を含んでもよい。それから、コントローラは、第2のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されている、ストレージの1つ又は複数の事前定義された記憶位置に、そのリクエストを通信して、ユーザ固有の起動命令を論理ブロックに提供してもよい。このアプローチは、コントローラが論理ブロックを2回リセットする必要がないので、実行するのがより簡単になり得る。
論理ブロックは、eMMCなどのストレージプロトコルに従って、第1のインタフェースを介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されていてもよい。eMMCなどの単純なストレージプロトコルの使用は、コントローラが、例えばFGPA又はASICを使用して、又は形式的に検証可能なソフトウェアを使用して、高保証の方法で実装されることを可能にする。これは、侵害された論理ブロックが、第1のインタフェースを介した通信を使用して、コントローラを侵害し得る危険性を低減する。
論理ブロックは、コントローラを介することを除いて、コンピュータシステムの外部へのインタフェースを有さなくてもよい。これにより、コントローラは、コンピュータシステムのユーザ間のセキュリティ分離を提供することができる。
記憶位置は、バイト範囲又はブロック範囲などのデータ範囲であってもよい。
ストレージは、コントローラのネットワークインタフェースを介してアクセス可能な1つ又は複数の記憶媒体、通信リンクを介して管理コンピュータシステムにアクセス可能な1つ又は複数の記憶媒体、及び、コンピュータシステム内の1つ又は複数の記憶媒体、のうちの1つ又は複数を含んでもよい。
コンピュータシステムは、各々が命令を実行する1つ又は複数の処理ユニットを含む、1つ又は複数の追加の論理ブロックをさらに含んでもよい。追加の論理ブロックの各々は、論理ブロックの各々とコントローラとの間の各々の専用の物理的インタフェースを介して、ストレージへの読み出し及び書き込みのリクエストを発行するように構成されていてもよく、これにより、コントローラは、どの論理ブロックと通信しているかを判定することができる。コントローラは、追加の論理ブロックのために、第2のコンピュータシステムから、追加の論理ブロックの各々の現在のユーザを識別する情報を受信し、追加の論理ブロックの各々からのストレージへの読み出し及び書き込みのリクエストを受信し、第2のコンピュータシステムによって識別される論理ブロックの各々の現在のユーザが使用を許可されているストレージのそれぞれ事前定義された記憶位置を使用して、リクエストの各々を完了するように、さらに構成されていてもよい。
コンピュータシステムは、第2のコンピュータシステムをさらに含んでもよい。
第2のコンピュータシステムは、コンピュータシステムの複数の異なるユーザの各々が使用を許可されている記憶位置をコントローラに提供するように構成されていてもよい。
第2のコンピュータシステムは、ユーザ固有のネットワークアクセスルールをコントローラに提供するように構成されていてもよい。
コントローラもまた個別に提供される。
コントローラと、命令を実行する1つ又は複数の処理ユニットを備える論理ブロックとを含むコンピュータシステムを動作させる対応する方法も提供される。この方法は、コントローラにより、第2のコンピュータシステムから、論理ブロックの現在のユーザを識別する情報を受信することと、コントローラにより、論理ブロックから、第1のインタフェースを介して、ストレージへの読み出し及び書き込みのリクエストを受信することであって、第1のインタフェースは、論理ブロックとコントローラとの間の専用の物理的インタフェースであって、それにより、コントローラは、第1のインタフェースを介した通信が論理ブロックとの通信であると判定することができることと、第2のコンピュータシステムによって識別される論理ブロックの現在のユーザが使用を許可されているストレージの1つ又は複数の記憶位置を使用して、ストレージへの読み出し及び書き込みのリクエストを完了することと、を含む。
コントローラで実行されると、上記の方法をコントローラに実行させる、コンピュータプログラムも提供される。
本発明の実施形態を、単なる例として、添付の図面を参照してさらに説明する。
図1は、一実施形態に係る第1及び第2のコンピュータシステムの模式図である。
図2は、論理ブロックを電源投入又はリセットするためのコントロール接続を含む、図1のものに対する追加の詳細を示す、一実施形態に係る第1及び第2のコンピュータシステムのさらなる模式図である。
図3は、論理ブロックがそれ自身の永続性ストレージを有する、一実施形態に係る第1及び第2のコンピュータシステムのさらなる概略図である。
図4は、インタフェースコントローラは、ネットワークを介して論理ブロックとの通信のルーティングをもする、一実施形態に係る第1及び第2のコンピュータシステムのさらなる概略図である。
説明及び図面全体を通して、同様の要素には同様の参照番号が使用される。
図1は、第1のコンピュータシステム100及び第2のコンピュータシステム200を示す。参考のために、第1のコンピュータシステムは、IaaSコンピュータシステム100と称され、第2のコンピュータシステムは、管理コンピュータシステム200と称される。
IaaSコンピュータシステム100は、典型的には、それぞれが1つ又は複数の処理ユニット及びいくつかのRAM(図示せず)を備える1つ又は複数の論理ブロック101a、101b、101cと、専用インタフェースコントローラ150とを備える。論理ブロック101a、101b、101cは、処理機能を実行するので、処理ブロック、処理回路、又は論理回路とも称される。それぞれの論理ブロック101a、101b、101cは、それ自身の専用の物理的なポイントツーポイントインタフェース102a、102b、102cを介してインタフェースコントローラ150に接続される。「インタフェース」という用語は、この文脈では、論理ブロック101a、101b、101cとインタフェースコントローラ150との間の接続を指すために使用される。論理ブロック101a、101b、101cの各々は、IaaSコンピュータシステム内の他の専用構成要素(図3を参照して以下で説明される、専用の永続性ストレージなど)を含んでもよく、或いはそれへの他の接続を有してもよいが、論理ブロック101a、101b、101cは、論理ブロック101a、101b、101cによって共用される構成要素への他の接続も、インタフェースコントローラ150を介するものを除いて、IaaSコンピュータシステム100の外部への接続も有さない。
論理ブロック101a、101b、101cとインタフェースコントローラ150との間の接続は、論理ブロック101a、101b、101cがストレージプロトコルなどの適切な通信プロトコルを使用してストレージへの読み出し及び書き込みのリクエストをインタフェースコントローラ150に発行できるように確立される。
インタフェースコントローラ150は、選択されたプロトコルに従って、それぞれの専用の物理的インタフェース102a、102b、102cを介して、論理ブロック101a、101b、101cと通信することができる。したがって、インタフェースコントローラ150は、論理ブロック101a、101b、101cによって発行された読み出し及び書き込みのリクエストを受信することができ、(以下でより詳細に説明されるように)適切な方法でリクエストを処理し、リクエストを完了するために必要がある場合には、論理ブロック101a、101b、101cに、それらの専用の物理的インタフェース102a、102b、102cを介してデータを返すことができる。
論理ブロック101a、101b、101c及びインタフェースコントローラ150は、例えばボールグリッドアレイなどの、別個のチップパッケージに実装されてもよい。この場合、1つの論理ブロックとインタフェースコントローラ150との間の専用の物理的インタフェースは、論理ブロックパッケージのピンとインタフェースコントローラパッケージの適切な専用のピンとの間のPCB上に金属接続を生成することによって達成されてもよい。それから、他の論理ブロックが、それぞれの専用の物理的インタフェースを達成するために、インタフェースコントローラパッケージ上の他のピンに接続される。
あるいは、論理ブロック101a、101b、101c及びインタフェースコントローラ150は、単一のシリコン基板内の個別の回路として実装されてもよい。この場合、1つの論理ブロックとインタフェースコントローラ150との間の専用の物理的インタフェースは、例えばリソグラフィ(lithography)を使用して、基板上に適切な導電性トラックを形成することによって達成されてもよい。
好ましくは、eMMCのような非常に単純なストレージプロトコルが、それぞれの専用の物理的インタフェース102a、102b、102cを介した、インタフェースコントローラ150と論理ブロック101a、101b、101cとの間の通信のために選択される。非常に単純なプロトコルを選択することによって、インタフェースコントローラの機能を高保証(high-assurance)の方式で実装することが可能になる。これは、悪意のある当事者が論理ブロック101a、101b、101c上で実行され得る悪意のあるソフトウェアを使用して、インタフェースコントローラ150の機能を侵害する手段としてプロトコルを使用することを非常に困難にする。高保証のアプローチの一例は、例えばFPGA又はASICを使用する、ハードウェアでのインタフェースコントローラ150の実装である。このようなハードウェアベースの実装の機能は、装置の内部にアクセスせずに変更できないため、特に安全になる。高保証のアプローチの他の例は、形式的な方法を使用して開発されたソフトウェアを使用する、インタフェースコントローラの実装である。これはより複雑なプロトコルを使用することを可能にする一方で、より危険であり、困難であり、高保証の方式で実装するのに費用がかかる。
インタフェースコントローラ150はまた、管理コンピュータシステム200への通信リンク300を実装する。これは数多くの異なる方法で達成され得るが、重要なことは、通信リンク300が専用の物理的インタフェース102a、102b、102cのいずれとも独立していることである。これによって、論理ブロック101a、101b、101cは、通信リンク300を介して第2のコンピュータシステム200からインタフェースコントローラ150が受信するデータに影響を及ぼすことができない。
ある実装では、通信リンク300は、管理コンピュータシステム200が含まれる管理ネットワーク300へのリンクである。他の実装では、第2のコンピュータシステム200が、実際にIaaSコンピュータシステム100の一部である。これに関わらず、インタフェースコントローラ150と管理コンピュータシステム200との間の通信リンク300は、インタフェースコントローラ150と論理ブロック101a、101b、101cとの間の専用の物理的インタフェース102a、102b、102cのいずれとも独立している。
通信リンク300は、IaaSコンピュータシステム100と管理コンピュータシステム200との間の物理的な有線接続として、或いは、有線及び/又は無線ネットワーク接続として実装され得る。通信リンクは、このリンク300を介した通信にIaaSコンピュータシステム100の他のいかなる構成要素もアクセスできないような方法で実装されてもよい。例えば、一実装では、インタフェースコントローラ150は、ケーブルを介して管理コンピュータシステム200に接続される物理的通信ポートを含む。他の実装では、インタフェースコントローラ150は、IaaS起動コンピュータシステム100の他の構成要素が暗号化トラフィックにアクセスできるが、復号化又は暗号化するために必要なキーへのアクセスを有さないような方法で、管理コンピュータシステム200への暗号化リンクを実装する。
管理コンピュータシステム200は、典型的には、IaaSコンピュータシステム100のオペレータに関連付けられる。例えば、管理コンピュータシステム200は、IaaSコンピュータシステム100の顧客への論理ブロック101a、101b、101cの使用の割り当てを管理することに責任を負ってもよい。代替的又は追加的に、この情報は、管理コンピュータシステム200に提供されてもよいし、オペレータ又はIaaSコンピュータシステム100のオペレータに関連付けられた他のエンティティによって入力されてもよい。このようにして、管理コンピュータシステム200は、任意の所与の時点で論理ブロック101a、101b、101cのユーザの識別を知り、この情報を、通信リンク300を介してインタフェースコントローラ150に通信することができる。
インタフェースコントローラ150はまた、ストレージ500への通信リンクを実装し、これにより、インタフェースコントローラ150は、論理ブロック101a、101b、101cからのリクエストを処理するために、ストレージ500へのデータの読み出し及び書き込みを行うことができる。
図1は、ストレージ500をIaaSコンピュータシステム100及び管理コンピュータシステム200の両方の外部の単一のストレージデバイスとして示しているが、これは一例にすぎず、ストレージ500の正確な位置は重要ではなく、共用ストレージ500は、IaaSコンピュータシステム100及び管理コンピュータシステム200の内部及び外部の両方にあり、場合によってはそれぞれ異なる位置にある、複数のストレージデバイスの形態を取ってもよいことを理解されたい。重要なことは、論理ブロック101a、101b、101cが、共用ストレージ500から/へ直接、読み出し又は書き込みを行うことができず、その代わりに、インタフェースコントローラ150を介して、専用の物理的インタフェース102a、102b、102cを介してリクエストを発行することによって行わなければならないことである。
ストレージ500は、IaaSコンピュータシステム100の複数の異なるユーザのストレージニーズを処理するという点で、共用ストレージリソースである。異なるユーザは、異なる時間における同一の論理ブロックのユーザであってもよく、及び/又は同一又は異なる時間における異なる論理ブロックのユーザであってもよいことは理解されよう。
IaaSコンピュータシステム100の異なるユーザ間のセキュリティ分離を提供するために、各々のユーザは、彼らは使用(すなわち、読み出し及び書き込み)を許可されているが他のユーザは使用を許可されていないストレージ500の記憶位置(例えば、ブロック又はバイト範囲)を有する。使用時には、インタフェースコントローラ150は、(管理コンピュータシステム200によって示される)論理ブロック101a、101b、101cの現在のユーザが使用を許可されている記憶位置の知識を有する。
インタフェースコントローラ150は、多くの異なる方法で、これらの記憶位置の知識を得ることができる。ある実装では、記憶位置は、IaaSコンピュータシステム100の異なるユーザに予め割り当てられ、インタフェースコントローラ150は、異なるユーザの各々が使用を許可されている記憶位置を知るように、(例えば、管理コンピュータシステム200によって)予め設定される。他の実装では、管理コンピュータシステム200が論理ブロックの現在のユーザの識別をインタフェースコントローラ150に提供するとき、論理ブロックのユーザが使用を許可されている記憶位置をもインタフェースコントローラ150に提供する。さらに、インタフェースコントローラ150は、IaaSコンピュータシステム100の新規又は既存のユーザに、以前に割り当てられていない記憶位置を割り当てることができてもよい。
さらに、インタフェースコントローラ150は、(管理コンピュータシステム200によって示される)論理ブロックの現在のユーザが使用を許可されている記憶位置のみを使用する(すなわち、アクセス又は書き込みする)ことによって、論理ブロックからそれぞれの専用の物理的インタフェースを介して受信した読み出し及び書き込みのリクエストに応答する。この態様の正確な実装は、変化し得る。例えば、ある実装では、論理ブロックのユーザが何らかの読み出し/書き込みのリクエストを発行する前に、インタフェースコントローラ150は、(管理コンピュータシステム200によって示される)論理ブロックのユーザが使用を許可されている記憶位置(例えば、ブロック又はバイト範囲)を論理ブロックに提供する。続いて、インタフェースコントローラ150は、読み出し及び書き込みのリクエスト内の論理ブロックによって特定される記憶位置が、ユーザが使用を許可されている記憶位置に対応することを検証し、検証されたリクエストのみをプロキシする。他の実装では、各々の論理ブロックは、論理ブロックのユーザに関係なく、任意の(例えば、事前定義された)記憶位置を特定するように事前に構成される(例えば、論理的にハード配線される)。例えば、論理ブロックは、論理ブロック内にあるROMにプログラムされた記憶位置を使用してもよく、或いはそれらの記憶位置は、論理ブロックのハード配線された回路によって提供されてもよい。これらの実施形態では、インタフェースコントローラ150は、論理ブロックによって発行されたリクエストで特定される任意の記憶位置を、論理ブロックのユーザが使用を許可されている記憶位置に変換する。
上述したIaaSシステム100及び管理コンピュータシステム200の動作を説明するために、実施例を提供する。
所与の時間(T1)に、IaaSコンピュータシステム100の顧客(顧客A)は、使用のために特定の論理ブロック(例えば、論理ブロック101a)が割り当てられている。IaaSコンピュータシステム100が複数の論理ブロックを含む場合、他の顧客(顧客B)は、時間T1において他の論理ブロック(例えば、論理ブロック101b)を割り当てられていてもよい。
インタフェースコントローラ150は、管理コンピュータシステム200から、顧客Aを(時間T1における)論理ブロック101aの現在のユーザとして識別する情報を受信する。同様に、インタフェースコントローラ150は、管理コンピュータシステム200から、顧客Bを論理ブロック101bの現在のユーザとして識別する情報を受信する。インタフェースコントローラ150と管理コンピュータシステム200との間の通信リンク300がインタフェースコントローラ150と論理ブロック101a、101bとの間の専用の物理的インタフェース102a、102bから完全に独立しているので、論理ブロック101a、101bは、インタフェースコントローラ150が管理コンピュータシステム200から受信する識別情報に影響を及ぼすことができない。したがって、インタフェースコントローラ150は、論理ブロック101a、101bの現在のユーザの識別を確実に知ることができる。また、管理コンピュータシステム200は、顧客A及び顧客Bが使用を許可されている記憶位置を識別してもよい。あるいは、インタフェースコントローラ150は、情報を予め設定されていてもよい。
共用ストレージリソース500へのデータの読み出し及び書き込みを行うために、顧客Aの論理ブロック101aは、論理ブロック101aの専用の物理的インタフェース102aを介して、インタフェースコントローラ150を介して読み出し及び書き込みのリクエストを発行する。同様に、共用ストレージリソース500へのデータの読み出し及び書き込みを行うために、顧客Bの論理ブロック101bは、論理ブロック101bの専用の物理的インタフェース102bを介して、インタフェースコントローラ150を介して読み出し及び書き込みのリクエストを発行する。
インタフェースコントローラ150は、論理ブロック101aによって発行された読み出し及び書き込みのリクエストを、専用の物理的インタフェース102aを介して受信する。インタフェース102aの専用の物理的な性質のために、インタフェースコントローラ150は、インタフェース102aを介して受信したリクエストが論理ブロック101aによって発行されたことを絶対的に確信することができる。言い換えると、インタフェースコントローラ150は、リクエストの送信元の判定を、受信したデータの内容ではなく、リクエストを受信したインタフェースに基づいて行う。これは、論理ブロック101aが(論理ブロック101bなどの)他のエンティティを偽装することができず、同様に(論理ブロック101bなどの)他のエンティティが論理ブロック101aを偽装することができないことを意味する。同様に、インタフェースコントローラ150は、論理ブロック101bによって発行された読み出し及び書き込みのリクエストを、専用の物理的インタフェース102bを介して受信する。インタフェース102bの専用の物理的な性質のために、インタフェースコントローラ150は、インタフェース102bを介して受信したリクエストが論理ブロック101bによって発行されたことを絶対的に確信することができる。
インタフェースコントローラ150は、それから、インタフェース102aを介して論理ブロック101aから受信したリクエストを、ユーザ、すなわち管理コンピュータシステム200によって示される論理ブロック101aの現在のユーザである顧客Aに関連付けることができる。同様に、インタフェースコントローラ150は、インタフェース102bを介して論理ブロック101bから受信したリクエストを、ユーザ、すなわち管理コンピュータシステム200によって示される論理ブロック101bの現在のユーザである顧客Bに関連付けることができる。
最後に、インタフェースコントローラ150は、顧客Aによって発行された読み出し及び書き込みのリクエストを処理する。その中で、インタフェースコントローラ150は、顧客Aが使用を許可されている共用ストレージ500の記憶位置のみを使用し(読み出し/書き込みを行い)、顧客Aが使用を許可されていない共用ストレージの記憶位置への読み出し又は書き込みを決して行わない。同様に、インタフェースコントローラ150は、顧客Bが使用を許可されている共用ストレージ500の記憶位置のみを使用して、顧客Bによって発行された読み出し及び書き込みのリクエストを処理する。このようにして、IaaSコンピュータシステム100は、IaaSコンピュータシステム100の複数の異なる顧客がストレージリソース500を共用することを可能にするが、異なる顧客間の隔離を維持する。
その後、T2において、インタフェースコントローラ150は、管理コンピュータシステム200から、論理ブロック101aの新しいユーザである顧客Cを識別する情報を受信する。したがって、インタフェースコントローラ150は、論理ブロック101aによって発行される後続の読み出しリクエスト及び書き込みのリクエストに、顧客Cが使用を許可されている共用ストレージ500の記憶位置のみを使用することによって、応答する。言い換えると、IaaSコンピュータシステムの論理ブロックの現在のユーザが顧客Aから顧客Cに変更されると、インタフェースコントローラ150は、顧客Aが使用を許可されている記憶位置への読み出し/書き込みのリクエストのプロキシを停止し、代わりに、顧客Cが使用を許可されている記憶位置への読み出し/書き込みのリクエストをプロキシする。
図2は、IaaSコンピュータシステム100がコントロール接続103a、103b、103cをさらに含む実施形態を示す。
図からわかるように、図2のIaaSコンピュータシステム100は、図1のIaaSコンピュータシステム100と同じ構成要素、接続、及びインタフェースを含むが、論理ブロック101a、101b、101cをインタフェースコントローラ150に接続するコントロール接続103a、103b、103cをさらに含む。インタフェースコントローラ150は、コントロール接続103a、103b、103cを使用して、それぞれの論理ブロック101a、101b、101cを電源投入することができ、それぞれの論理ブロックを電源切断することができ、或いはそれぞれの論理ブロックをリセットすることができる。特に、コントロール接続103a、103b、103cは、インタフェースコントローラ150が論理ブロックを非アクティブ状態から独立して電源投入すること、又は論理ブロックを独立してリセットすることを可能にする。
本明細書で使用される「リセット」という用語は、論理ブロック101a、101b、101cのパワーサイクル(論理ブロックを電源切断してから、論理ブロックを電源投入するシーケンス)と、「ハードウェアリセット」との両方を含む。ハードウェアリセットは、電源切断/電源投入のシーケンスを経ることなく、論理ブロックにその初期起動プロセスを実行させるハードウェアレベルの方法である。
本明細書で使用される「電源投入(power-up)」という用語は、論理ブロックが比較的長時間インアクティブな状態にあった、インアクティブ、電源切断状態から、論理ブロックを電源投入することを指す。論理ブロックが電源投入されるときはいつでも、電源投入がいずれかの時点で電源切断によって先行されることを理解されたい。しかしながら、「電源投入」という用語は、本明細書では、先行する電源切断後に比較的短時間で電源投入が起こるパワーサイクルリセットとは対照的に使用される。
各々のコントロール接続103a、103b、103cは、インタフェースコントローラ150を、それぞれの論理ブロック101a、101b、101cを実装する1つ又は複数の集積回路の電圧入力ピンに接続していてもよい。このようにして、インタフェースコントローラ150は、論理ブロック101a、101b、101cを実装する1つ又は複数の集積回路に電圧が印加されるか否かを制御することができ、これによって、それぞれの論理ブロック101a、101b、101cの電力状態を制御することができる。
代替的に又は追加的に、各々のコントロール接続103a、103b、103cは、インタフェースコントローラ150を、それぞれの論理ブロック101a、101b、101cを実装する集積回路のハードウェアリセットピンに接続していてもよい。ハードウェアリセットピンに電圧をローに引いて電圧をハイに戻すことによって、それぞれの論理ブロック101a、101b、101cがリセットされる。
インタフェースコントローラ150は、図2には示されていない電力管理集積回路(PMIC)を含んでもよい。インタフェースコントローラがPMICを含む場合、コントロール接続103a、103b、103cは、PMICを、それぞれの論理ブロック101a、101b、101cを実装する1つ又は複数の集積回路の電圧入力ピン及び/又はハードウェアリセットピンに接続していてもよい。
ある実施形態によれば、インタフェースコントローラ150は、管理コンピュータシステム200から命令を受信することに応答して、IaaSシステム100の異なる顧客が使用するためにそれぞれの論理ブロック101a、101b、101cを準備するように、コントロール接続103a、103b、103cを使用して、それぞれの論理ブロック101a、101b、101cを電源投入又はリセットするように構成されている。電源投入又はリセットの前に論理ブロックで実行されているソフトウェアプロセスは、電源投入又はリセットの後まで残存せず、したがって、新しい顧客による使用の前に論理ブロックをフラッシュする効果を有し、異なる顧客を複数の時点にわたって隔離するのに役立つ。
これらの実施形態では、管理コンピュータシステム200は、異なる顧客(顧客B)が使用するために論理ブロック101a、101b、101cを準備すべく、以下のステップを行うようにインタフェースコントローラ150に命令することができる。
i)論理ブロックから共用ストレージ設備への読み出し及び書き込みのリクエストをプロキシすることを一時的に停止する。
ii)それぞれのコントロール接続を使用して論理ブロックをリセットする。
iii)論理ブロックからの後続の読み出し及び書き込みのリクエストに応答して、顧客Bに割り当てられている共用ストレージ設備の記憶位置のみへの読み出し及び書き込みを行うようにする。
i)論理ブロックから共用ストレージ設備への読み出し及び書き込みのリクエストをプロキシすることを一時的に停止する。
ii)それぞれのコントロール接続を使用して論理ブロックをリセットする。
iii)論理ブロックからの後続の読み出し及び書き込みのリクエストに応答して、顧客Bに割り当てられている共用ストレージ設備の記憶位置のみへの読み出し及び書き込みを行うようにする。
上述の図1の説明から理解されるように、ステップ3は、インタフェースコントローラ150が、論理ブロックによって特定された任意の事前定義された記憶位置を、顧客Bが使用を許可されている記憶位置に変換することを含んでもよい。任意の事前定義された記憶位置は、論理ブロック101a、101b、101cのハード配線された回路によって提供されてもよく、或いは論理ブロック101a、101b、101cのROMに記憶されていてもよい。
あるいは、論理ブロックのリセットの後、インタフェースコントローラ150は、論理ブロックに、(管理コンピュータシステム200によって識別される)論理ブロックのユーザが使用を許可されている記憶位置を提供してもよく、その後、その読み出し及び書き込みのリクエストにおいて論理ブロックによって特定される記憶位置を検証してもよい。これらの実施形態では、論理ブロック101a、101b、101cのハード配線された回路又はそれらのROMに記憶された命令は、電源投入時又はリセット時に、論理ブロック101a、101b、101cに、それらの専用の物理的インタフェース102a、102b、102cを介して、インタフェースコントローラ150から記憶位置を探させてもよい。
好ましくは、論理ブロック101a、101b、101cは、論理ブロック101a、101b、101cの電源投入又はリセットの直後に、それぞれの専用の物理的インタフェース102a、102b、102cを介してインタフェースコントローラ150から起動命令を探すように論理的にハード配線される。このようにして、インタフェースコントローラ150は、論理ブロックの現在のユーザが変更されるときに、論理ブロック101a、101b、101cによって実行される起動命令に対する制御を有する。図3を参照して以下でより詳細に説明されるように、これは、「クリーン」であることが分かっている起動命令を実行した結果として生じる「既知の良好」状態に、論理ブロックを配置するために使用されることができ、及び/又は管理コンピュータシステム200によって識別される論理ブロックのユーザに応じて、ユーザ固有の起動命令を論理ブロックに提供するために使用されることができる。ただし、論理ブロック101a、101b、101cの起動シーケンスは、複数の時点にわたるユーザ間の隔離レベルを低下させる可能性があるため、論理ブロック内の専用の永続性ストレージに依存しないことが重要である。
本明細書で使用される「論理的にハード配線される(logically hardwired)」という用語は、電源投入時又はリセット時の論理ブロックの動作が、電源投入又はリセット前の時点に論理ブロックで実行されているソフトウェアによって変更されることがない様々な実装を指すことは理解されよう。代わりに、動作は、装置の内部にアクセスすることによってのみ変更され得る。論理的にハード配線された機能の例には、ASIC、PLDの使用、及びROMに格納されたソフトウェア命令の使用が含まれる。
図2では、管理コンピュータシステム200が、IaaSコンピュータシステム100のインタフェースコントローラ150に接続される管理ネットワーク300の一部として示されていることに留意されたい。しかしながら、これは必須ではなく、管理コンピュータシステム200は、例えば、図1を参照して上述したように、IaaSコンピュータシステム100の一部とされ得ることを理解されたい。
図3は、IaaSコンピュータシステム100の論理ブロック101が、専用の永続性ストレージ104へのアクセス及び場合によっては他の周辺装置105へのアクセスを有する実施形態を示す。図3は単一の論理ブロック101を示しているが、これは説明を容易にするためだけの目的であることを理解されたい。本明細書で説明されるいずれの実施形態においても、論理ブロックの数は1つであってもよく、或いは2つ以上の任意の数であってもよい。
IaaSコンピュータシステム100の論理ブロック101に独自の永続性ストレージ104を設けることは必須ではないが、顧客がIaaSコンピュータシステムの使用のセッションにおいて、よりローカルにデータを記憶することを可能にするため、ある状況では望ましい場合がある。典型的には、読み出し及び書き込みのリクエストが、専用の永続性ストレージ104に対して行われる場合、より迅速に完了されるので、ユーザにとって便利であり、また、システムの性能を向上させることができる。しかしながら、論理ブロック101に専用の永続性ストレージ104を設けることは、複数の時点にわたる顧客間の隔離を低減する可能性を有する。特に、顧客Aが時間T1で論理ブロック101を使用し、永続性ストレージ104にデータを書き込んだ後、顧客Bが時間T2で論理ブロック101を使用すると、顧客Bは顧客Aのデータにアクセスしたり変更したりすることができる。同様に、顧客Aのプロセスが、時間T2まで持続し、顧客Bのデータにアクセスし得る。実施形態は、複数の時点にわたるセキュリティ分離を維持しながら、論理ブロック101への専用の永続性ストレージ104の提供を可能にする。
第1に、論理ブロック101の起動シーケンスは、提供される永続性ストレージ104に依存すべきではない。例えば、上述したように、論理ブロック101は、電源投入時又はリセット時に専用の物理的インタフェース102を介してその起動命令を探すように論理的にハード配線されてもよく、それによって、永続性ストレージに記憶され得るデータへの依存性を排除してもよい。
第2に、顧客Bが顧客Aのデータにアクセスすることを防止するための措置が講じられるべきである。これは顧客に永続性ストレージ104に記憶されているデータを暗号化することをリクエストすることによって達成され得るが、代替のアプローチとして、論理ブロック101の使用が顧客Bに割り当てられた後に顧客Aのデータが回復可能でないことを保証することがある。一実装では、論理ブロック101のユーザが顧客Aから顧客Bに切り替えられるときに、これが達成される。
i)管理コンピュータシステム200は、インタフェースコントローラ150に、コントロール接続103を使用して論理ブロック101をリセットするように命令する。これにより、論理ブロック101は、専用の物理的インタフェース102を介して起動命令をリクエストする。
ii)インタフェースコントローラ150は、実行されると論理ブロックに永続性ストレージ104を上書きさせて顧客Aのデータを回復可能ではなくす起動命令を、論理ブロック101に提供する。この起動命令は、管理コンピュータシステム200によって設定されてもよく、インタフェースコントローラ150は、起動命令を含むストレージに論理ブロック101を読み出し専用の方法で接続することによって、命令を提供してもよい。
iii)管理コンピュータシステム200は、インタフェースコントローラ150に、コントロール接続103を使用して論理ブロック101をリセットするように命令する。これにより、論理ブロック101は、専用の物理的インタフェース102を介して起動命令をリクエストする。あるいは、インタフェースコントローラ150に、論理ブロック101を再びリセットするように命令するのではなく、上記のステップ(ii)でコントローラ150によって提供される命令が、実行されると論理ブロック101に他の起動命令のセットを探させる最終命令を含むことができる。言い換えれば、ステップ(ii)でコントローラ150によって提供される命令は、顧客Aのデータが回復可能でないように永続性ストレージ104を上書きした後に、以下のステップ(iv)において提供される、ブートイメージの残りを論理ブロック101に探させる「ブートローダ(boot loader)」であってもよい。
iv)インタフェースコントローラ150は、論理ブロック101に、動作のための起動命令を提供する。これは、顧客Bが使用を許可されている記憶位置において、共用ストレージ設備500に記憶される、ユーザ固有の起動命令であってもよい。あるいは、それは、論理ブロック101が「既知の良好」状態に起動されるように、管理コンピュータシステム200によってセットされる「クリーン」な起動命令であってもよい。
i)管理コンピュータシステム200は、インタフェースコントローラ150に、コントロール接続103を使用して論理ブロック101をリセットするように命令する。これにより、論理ブロック101は、専用の物理的インタフェース102を介して起動命令をリクエストする。
ii)インタフェースコントローラ150は、実行されると論理ブロックに永続性ストレージ104を上書きさせて顧客Aのデータを回復可能ではなくす起動命令を、論理ブロック101に提供する。この起動命令は、管理コンピュータシステム200によって設定されてもよく、インタフェースコントローラ150は、起動命令を含むストレージに論理ブロック101を読み出し専用の方法で接続することによって、命令を提供してもよい。
iii)管理コンピュータシステム200は、インタフェースコントローラ150に、コントロール接続103を使用して論理ブロック101をリセットするように命令する。これにより、論理ブロック101は、専用の物理的インタフェース102を介して起動命令をリクエストする。あるいは、インタフェースコントローラ150に、論理ブロック101を再びリセットするように命令するのではなく、上記のステップ(ii)でコントローラ150によって提供される命令が、実行されると論理ブロック101に他の起動命令のセットを探させる最終命令を含むことができる。言い換えれば、ステップ(ii)でコントローラ150によって提供される命令は、顧客Aのデータが回復可能でないように永続性ストレージ104を上書きした後に、以下のステップ(iv)において提供される、ブートイメージの残りを論理ブロック101に探させる「ブートローダ(boot loader)」であってもよい。
iv)インタフェースコントローラ150は、論理ブロック101に、動作のための起動命令を提供する。これは、顧客Bが使用を許可されている記憶位置において、共用ストレージ設備500に記憶される、ユーザ固有の起動命令であってもよい。あるいは、それは、論理ブロック101が「既知の良好」状態に起動されるように、管理コンピュータシステム200によってセットされる「クリーン」な起動命令であってもよい。
このようにして、実施形態は、異なる顧客によって使用されるIaaSコンピュータシステムが、所与の時点における顧客と複数の時点にわたる顧客との間の高度な隔離を維持しながら、専用の永続性ストレージと共用の永続性ストレージとの両方をユーザに提供することを可能にする。
図4は、IaaSコンピュータシステム100が、インタフェースコントローラ150のネットワークインタフェースを介して、インターネットなどのネットワーク400に接続されている実施形態を示す。
上述したように、共用ストレージリソースへのデータの読み出し及び書き込みのリクエストを処理することに加えて、インタフェースコントローラ150は、論理ブロック101a、101b、101c間の通信を、ネットワーク400を介して、IaaSコンピュータシステム100の外部にある任意の他のコンピュータにルーティングする役割を果たし得る。
これを達成するために、IaaSコンピュータシステムは、各々の論理ブロック101a、101b、101cとインタフェースコントローラとの間に他の専用の物理的インタフェース(図示せず)をさらに備えてもよい。それから、論理ブロック101a、101b、101cは、適切なプロトコルに従って、この追加の専用の物理的インタフェースを介して、インタフェースコントローラ150との間で(ネットワークデータパケットなどの)ネットワークデータを送信及び受信してもよい。あるいは論理ブロック101a、101b、101cは、ストレージへの読み出し及び書き込みのリクエストを発行するのと同じインタフェース、すなわち専用の物理的インタフェース102a、102b、102cを介して、ネットワークデータを送信及び受信してもよい。これは、例えば時分割多重化を使用して、同じ物理的インタフェース102a、102b、102cにおいて、(1つはストレージ用、1つはネットワークデータ用に)2つの異なるプロトコルを多重化することにより実行され得る。あるいは、これは、(iSCSIなどを使用して)ネットワークプロトコルを介してストレージプロトコルをトンネリングすること、或いは、(SDIOなどを使用して)ストレージプロトコルを介してネットワークプロトコルをトンネリングすることにより実行され得る。
インタフェースコントローラ150は、典型的には、論理ブロック101a、101b、101cとの通信によってコントローラが侵害されるリスクを低減するために、比較的単純なプロトコルを使用して、論理ブロック101a、101b、101cに対してネットワークデータの送信及び受信を行う。しかしながら、インタフェースコントローラ150のネットワークインタフェースとネットワーク400との間の通信は、HTTPのような上位レベルのプロトコルを使用してもよい。
インタフェースコントローラ150は、論理ブロック101a、101b、101cがインタフェースネットワークコントローラを介して送信及び受信するネットワーク通信に対するネットワークアクセスルールを実施してもよく、ネットワークアクセスルールには、(管理コンピュータシステム200によって識別される)論理ブロックの現在のユーザの識別に基づくユーザ固有のネットワークアクセスルールが含まれる。たとえば、顧客Aは、ポート22宛てで、特定のIPアドレスから発信されたTCP通信のみが論理ブロックに転送されるようにリクエストしてもよく、一方で、顧客Bは、ポート80へのTCP通信がソースアドレスとは無関係に論理ブロックに転送されるようにリクエストしてもよい。インタフェースコントローラ150は、使用前の時点で、管理コンピュータシステム200によって、これらのユーザ固有のルールを有するように構成されていてもよい。追加的に又は代替的に、管理コンピュータシステム200は、インタフェースコントローラに論理ブロックの現在/新規のユーザの識別を通知するときに、ユーザ固有のルールをインタフェースコントローラ150に提供してもよい。
図4は論理ブロック101a、101b、101cに接続された専用の永続性ストレージ又は他の周辺装置を示していないが、これは単に説明を容易にする目的であることに留意されたい。本明細書に記載されるいずれかの実施形態において、専用の永続性ストレージ104が存在してもよい。
また、図4は、図1~図3を参照して上述した共用ストレージ500が実際には1つ又は複数の共用ストレージデバイス500a、500b、500cの形態をとることができ、それらは、論理ブロック101a、101b、101cからインタフェースコントローラ150を介してアクセスされ得る限り、システムに対して任意の場所に配置され得ることを示すことにも留意されたい。例えば、共用ストレージは、ネットワークアタッチトストレージ(NAS)500aと、管理ネットワーク300の一部であるストレージ500bと、IaaSコンピュータシステム100の一部であるストレージ500cとを含んでもよい。
様々な任意選択の特徴を有する数々の実施形態を上述した。任意の相互に排他的な特徴を除いて、任意選択の特徴のうちの1つ又は複数の任意の組み合わせが可能であることを理解されたい。
Claims (41)
- 複数の異なるユーザにコンピューティングリソースを提供するサーバシステムにおいて使用されるコンピュータシステム(100)であって、
命令を実行する1つ又は複数の処理ユニットを含む論理ブロック(101)であって、第1のインタフェース(102)を介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されている、論理ブロックと、
コントローラ(150)であって、
ストレージ(500)への通信リンクを実装し、
第2のコンピュータシステム(200)への通信リンク(300)を実装し、前記第2のコンピュータシステムから、前記論理ブロックの現在のユーザを識別する情報を受信し、
前記第1のインタフェースを介して前記論理ブロックからストレージへの読み出し及び書き込みのリクエストを受信し、前記リクエストを完了する、コントローラと、
を含み、
前記第1のインタフェース(102)は、前記論理ブロックと前記コントローラとの間の専用の物理的インタフェースであり、それにより、前記コントローラは、前記第1のインタフェースを介した通信が前記論理ブロックとの通信であることを判定することができ、
前記コントローラは、前記第2のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザが使用を許可されている前記ストレージの1つ又は複数の記憶位置を使用して、ストレージへの読み出し及び書き込みの前記リクエストを完了するように構成されている、コンピュータシステム。 - 前記コントローラは、前記論理ブロックの後続のユーザを識別する情報を前記第2のコンピュータシステムから受信することに応答して、前記論理ブロックの前記後続のユーザが使用を許可されている前記ストレージの1つ又は複数の事前定義された記憶位置を使用して、前記論理ブロックからのストレージへの読み出し及び書き込みの前記リクエストを完了するように構成されている、請求項1に記載のコンピュータシステム。
- 前記論理ブロックと前記コントローラとの間のコントロール接続をさらに含み、前記コントローラは、前記コントロール接続を使用して前記論理ブロックを電源投入又はリセットするように構成されている、請求項1又は2に記載のコンピュータシステム。
- 前記コントローラは、前記第2のコンピュータシステムから、前記論理ブロックを電源投入又はリセットする命令を受信することに応答して、前記論理ブロックを電源投入又はリセットするように構成されている、請求項3に記載のコンピュータシステム。
- 前記コントローラは、前記第2のコンピュータシステムから命令を受信することに応答して、前記論理ブロックの後続のユーザが使用するために前記論理ブロックを構成するように、前記論理ブロックを電源投入又はリセットするように構成されている、請求項3又は4に記載のコンピュータシステム。
- 前記論理ブロックを後続のユーザが使用するために構成する前記命令は、前記論理ブロックの前記後続のユーザを識別する情報を含む、請求項5に記載のコンピュータシステム。
- 前記論理ブロックを前記後続のユーザが使用するために構成する前記命令は、前記論理ブロックをリセットする前に、前記コントローラに、前記論理ブロックからストレージへの読み出し及び書き込みのリクエストの通信を停止させる命令を含む、請求項5又は6に記載のコンピュータシステム。
- 前記論理ブロックは、前記第1のインタフェースを介して前記ストレージへの読み出し及び書き込みのリクエストを発行するときに、1つ又は複数の事前定義された記憶位置を特定するように構成されており、前記コントローラは、前記論理ブロックによって特定される前記事前定義された記憶位置を、前記第2のコンピュータシステムによって識別される前記論理ブロックの前記ユーザが使用を許可されているユーザ固有の記憶位置に変換し、前記ユーザ固有の記憶位置を使用して前記リクエストを完了するように構成されている、請求項1から7のいずれか一項に記載のコンピュータシステム。
- 前記論理ブロックは、ストレージへの読み出し及び書き込みのリクエストを発行するときに、前記1つ又は複数の事前定義された記憶位置を特定するように論理的にハード配線される、請求項8に記載のコンピュータシステム。
- 前記コントローラは、前記第2のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザが使用を許可されているユーザ固有の記憶位置を、前記論理ブロックに提供するように構成されており、前記論理ブロックは、ストレージへの読み出し及び書き込みのリクエストを発行するときに、前記ユーザ固有の記憶位置を特定するように構成されている、請求項1から7のいずれか一項に記載のコンピュータシステム。
- 前記コントローラは、前記論理ブロックによって特定される前記記憶位置が前記第2のコンピュータシステムによって識別された前記論理ブロックの前記現在のユーザに関連付けられた前記ユーザ固有の記憶位置と一致することを検証するようにさらに構成されている、請求項10に記載のコンピュータシステム。
- 前記論理ブロックは、前記論理ブロックの電源投入時又はリセット時に前記コントローラから使用を許可されている前記ユーザ固有の記憶位置をリクエストするように構成されている、請求項10又は11に記載のコンピュータシステム。
- 前記論理ブロックは、前記論理ブロックの電源投入時又はリセット時に前記コントローラから使用を許可されている前記ユーザ固有の記憶位置をリクエストするように論理的にハード配線される、請求項12に記載のコンピュータシステム。
- 前記コントローラは、ネットワークと通信するためのネットワークインタフェースを備え、前記コントローラは、前記ネットワークインタフェースを介して前記ネットワークから受信したネットワークデータを、前記第1のインタフェースを介して前記論理ブロックに送信し、前記第1のインタフェースを介して前記論理ブロックから受信したネットワークデータを、前記ネットワークインタフェースを介して前記ネットワークに送信するように構成されている、請求項1から13のいずれか一項に記載のコンピュータシステム。
- 前記コントローラは、前記第2のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザに従って、前記第1のインタフェースを介して前記論理ブロックに対して送信及び受信される前記ネットワークデータに、事前定義されたユーザ固有のネットワークアクセスルールを課すように構成されている、請求項14に記載のコンピュータシステム。
- 前記論理ブロックは、前記第1のインタフェースを介してネットワークデータを送信及び受信するように構成されている、請求項14又は15に記載のコンピュータシステム。
- 前記論理ブロックは、第1の通信プロトコルに従って、前記第1のインタフェースを介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されており、前記論理ブロックは、第2の通信プロトコルに従って、前記第1のインタフェースを介してネットワークデータを送信及び受信するように構成されている、請求項14から16のいずれか一項に記載のコンピュータシステム。
- 前記第1及び第2の通信プロトコルは、前記第1のインタフェースを介して多重化される、請求項17に記載のコンピュータシステム。
- 前記第1の通信プロトコルは、前記第2の通信プロトコルを介してトンネリングされ、或いは前記第2の通信プロトコルは、前記第1の通信プロトコルを介してトンネリングされる、請求項17に記載のコンピュータシステム。
- 前記論理ブロックは、前記論理ブロックと前記コントローラとの間の第2のインタフェースを介してネットワークデータを送信及び受信するように構成されている、請求項14又は15に記載のコンピュータシステム。
- 前記ストレージは、ネットワークベースのストレージを含み、前記コントローラは、前記ネットワークインタフェースを介して、前記ネットワークベースのストレージを使用して、ストレージへの読み出し及び書き込みの前記リクエストを完了するように構成されている、請求項14から20のいずれか一項に記載のコンピュータシステム。
- 前記論理ブロックは、前記論理ブロックの電源投入時又はリセット時に、前記第1のインタフェースを介して前記コントローラからの起動命令をリクエストするように構成されている、請求項1から21のいずれか一項に記載のコンピュータシステム。
- 前記論理ブロックは、前記論理ブロックの電源投入時又はリセット時に、前記コントローラからの起動命令をリクエストするように論理的にハード配線される、請求項22に記載のコンピュータシステム。
- 前記論理ブロックは、ASIC、PLD又はリードオンリーメモリに記憶された命令のうちの1つ又は複数を使用して、論理的にハード配線される、請求項9、13及び22のいずれか一項に記載のコンピュータシステム。
- 前記コントローラは、前記論理ブロックからの起動命令の前記リクエストを受信することに応答して、前記第2のコンピュータシステムによって識別される前記論理ブロックの現在のユーザが使用を許可されている前記ストレージの1つ又は複数の事前定義された記憶位置を使用して、前記リクエストを完了し、前記論理ブロックにユーザ固有の起動命令を提供するように構成されている、請求項22から24のいずれか一項に記載のコンピュータシステム。
- 前記コントローラは、前記論理ブロックからの起動命令の前記リクエストを受信することに応答して、前記第2のコンピュータシステムによって提供される事前定義された起動命令を前記論理ブロックに提供するように構成されている、請求項22から24のいずれか一項に記載のコンピュータシステム。
- 前記論理ブロックは、それ自身の永続性ストレージを含む、請求項1から26のいずれか一項に記載のコンピュータシステム。
- 前記論理ブロックと前記コントローラとの間のコントロール接続をさらに含み、前記コントローラは、前記コントロール接続を使用して前記論理ブロックを電源投入又はリセットするように構成されており、前記コントローラは、後続のユーザが使用するために前記論理ブロックを構成する、前記第2のコンピュータシステムからの命令を受信することに応答して、
前記論理ブロックが前記コントローラからの起動命令をリクエストするように、前記論理ブロックを電源投入又はリセットし、
前記第2のコンピュータシステムによって提供される事前定義された起動命令を前記論理ブロックに提供し、ここで、前記事前定義された起動命令は、前記論理ブロックに前記論理ブロック自身の永続性ストレージを上書きさせて、前記論理ブロック自身の永続性ストレージのコンテンツが前記論理ブロックによってもはや回復可能ではないようにする命令を含み、
前記論理ブロックが前記コントローラからの起動命令をリクエストするように、前記論理ブロックをリセットし、
前記第2のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザが使用を許可されている前記ストレージの1つ又は複数の事前定義された記憶位置を使用して、ストレージへの読み出し又は書き込みの前記リクエストを完了して、ユーザ固有の起動命令を前記論理ブロックに提供するように、
構成されている、請求項27に記載のコンピュータシステム。 - 前記論理ブロックと前記コントローラとの間のコントロール接続をさらに含み、前記コントローラは、前記コントロール接続を使用して前記論理ブロックを電源投入又はリセットするように構成されており、前記コントローラは、後続のユーザが使用するために前記論理ブロックを構成する、前記第2のコンピュータシステムからの命令を受信することに応答して、
前記論理ブロックが前記コントローラからの起動命令をリクエストするように、前記論理ブロックを電源投入又はリセットし、
前記第2のコンピュータシステムによって提供される事前定義された起動命令を前記論理ブロックに提供し、ここで、前記事前定義された起動命令は、前記論理ブロックに前記論理ブロック自身の永続性ストレージを上書きさせて、前記論理ブロック自身の永続性ストレージのコンテンツが前記論理ブロックによってもはや回復可能ではないようにし、さらに前記論理ブロックに前記コントローラからの起動命令のさらなるセットをリクエストさせるようにする命令を含み、
前記第2のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザが使用を許可されている前記ストレージの1つ又は複数の事前定義された記憶位置を使用して、ストレージへの読み出し又は書き込みの前記リクエストを完了して、ユーザ固有の起動命令を前記論理ブロックに提供するように、
構成されている、請求項27に記載のコンピュータシステム。 - 前記論理ブロックは、eMMCなどのストレージプロトコルに従って、前記第1のインタフェースを介してストレージへの読み出し及び書き込みのリクエストを発行するように構成されている、請求項1から29のいずれか一項に記載のコンピュータシステム。
- 前記コントローラは、FGPA又はASICなどを使用して、ハードウェアで実装される、請求項1から30のいずれか一項に記載のコンピュータシステム。
- 前記コントローラは、形式的に検証可能なソフトウェアを使用して実装される、請求項1から31のいずれか一項に記載のコンピュータシステム。
- 前記論理ブロックは、前記コントローラを介することを除いて、前記コンピュータシステムの外部へのインタフェースを有さない、請求項1から32のいずれか一項に記載のコンピュータシステム。
- 前記記憶位置は、バイト範囲又はブロック範囲などのデータ範囲である、請求項1から33のいずれか一項に記載のコンピュータシステム。
- 前記ストレージは、
前記コントローラのネットワークインタフェースを介してアクセス可能な1つ又は複数の記憶媒体、
前記通信リンクを介して管理コンピュータシステムにアクセス可能な1つ又は複数の記憶媒体、及び、
前記コンピュータシステム内の1つ又は複数の記憶媒体、
のうちの1つ又は複数を含む、請求項1から34のいずれか一項に記載のコンピュータシステム。 - 各々が命令を実行する1つ又は複数の処理ユニットを含む、1つ又は複数の追加の論理ブロックをさらに含み、
前記追加の論理ブロックの各々は、前記論理ブロックの各々と前記コントローラとの間の各々の専用の物理的インタフェースを介して、前記ストレージへの読み出し及び書き込みのリクエストを発行するように構成されており、前記コントローラは、どの論理ブロックと通信しているかを判定することができ、
前記コントローラは、前記追加の論理ブロックのために、
前記第2のコンピュータシステムから、前記追加の論理ブロックの各々の現在のユーザを識別する情報を受信し、
前記追加の論理ブロックの各々からのストレージへの読み出し及び書き込みのリクエストを受信し、前記第2のコンピュータシステムによって識別される前記論理ブロックの各々の前記現在のユーザが使用を許可されている前記ストレージのそれぞれ事前定義された記憶位置を使用して、前記リクエストの各々を完了するようにさらに構成されている、請求項1から35のいずれか一項に記載のコンピュータシステム。 - 前記第2のコンピュータシステムをさらに含む、請求項1から36のいずれか一項に記載のコンピュータシステム。
- 前記第2のコンピュータシステムは、前記コンピュータシステムの複数の異なるユーザの各々が使用を許可されている前記記憶位置を前記コントローラに提供するように構成されている、請求項36に記載のコンピュータシステム。
- 請求項1から38のいずれか一項に記載のコンピュータシステムで使用されるように構成されている、コントローラ。
- コンピュータシステムを動作させる方法であって、前記コンピュータシステムは、コントローラと、命令を実行する1つ又は複数の処理ユニットを備える論理ブロックとを含み、
前記コントローラにより、第2のコンピュータシステムから、前記論理ブロックの現在のユーザを識別する情報を受信することと、
前記コントローラにより、前記論理ブロックから、第1のインタフェースを介して、ストレージへの読み出し及び書き込みのリクエストを受信することであって、前記第1のインタフェースは、前記論理ブロックと前記コントローラとの間の専用の物理的インタフェースであって、それにより、前記コントローラは、前記第1のインタフェースを介した通信が前記論理ブロックとの通信であると判定することができることと、
第2のコンピュータシステムによって識別される前記論理ブロックの前記現在のユーザが使用を許可されている前記ストレージの1つ又は複数の記憶位置を使用して、ストレージへの読み出し及び書き込みのリクエストを完了することと、
を含む、方法。 - 請求項39に記載のコントローラで実行されると、請求項40に記載の方法を前記コントローラに実施させる、コンピュータプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1800530.6A GB2570143B (en) | 2018-01-12 | 2018-01-12 | Secure sharing of storage resources |
GB1800530.6 | 2018-01-12 | ||
PCT/EP2019/050262 WO2019137876A1 (en) | 2018-01-12 | 2019-01-07 | Secure sharing of storage resources |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021510871A JP2021510871A (ja) | 2021-04-30 |
JP7244527B2 true JP7244527B2 (ja) | 2023-03-22 |
Family
ID=61256242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020538615A Active JP7244527B2 (ja) | 2018-01-12 | 2019-01-07 | ストレージリソースの安全な共用 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11294581B2 (ja) |
EP (1) | EP3738024A1 (ja) |
JP (1) | JP7244527B2 (ja) |
CN (1) | CN111886573B (ja) |
BR (1) | BR112020014044A2 (ja) |
GB (1) | GB2570143B (ja) |
WO (1) | WO2019137876A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007156588A (ja) | 2005-12-01 | 2007-06-21 | Hitachi Ltd | アクセスを提供するコンピュータシステム及びその管理方法 |
JP2010020701A (ja) | 2008-07-14 | 2010-01-28 | Internatl Business Mach Corp <Ibm> | 機器の間のアクセスを管理する装置及び方法 |
JP2010067042A (ja) | 2008-09-11 | 2010-03-25 | Hitachi Ltd | 計算機切り替え方法、計算機切り替えプログラム及び計算機システム |
WO2014091535A1 (ja) | 2012-12-10 | 2014-06-19 | 株式会社日立製作所 | 計算機システム及び記憶部の暗号化方法 |
WO2017093533A1 (en) | 2015-12-03 | 2017-06-08 | Garrison Technology Ltd | Secure boot code cache which may be updated through the network |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5077737A (en) * | 1989-08-18 | 1991-12-31 | Micron Technology, Inc. | Method and apparatus for storing digital data in off-specification dynamic random access memory devices |
US6125435A (en) * | 1995-09-13 | 2000-09-26 | Lexar Media, Inc. | Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory |
KR20070023514A (ko) * | 2005-08-24 | 2007-02-28 | 히다치 글로벌 스토리지 테크놀로지스 네덜란드 비.브이. | 데이터 기억 장치 및 그 사용자 데이터의 기록 제어 방법 |
JP2008102774A (ja) * | 2006-10-19 | 2008-05-01 | Sony Corp | データ記憶装置及びデータ制御方法 |
KR100800589B1 (ko) * | 2006-12-20 | 2008-02-04 | 엘지전자 주식회사 | 정보 처리 장치 및 그 운용방법 |
JP4990828B2 (ja) * | 2008-03-25 | 2012-08-01 | 株式会社日立製作所 | ストレージ装置及びこれの制御方法 |
US8954685B2 (en) * | 2008-06-23 | 2015-02-10 | International Business Machines Corporation | Virtualized SAS adapter with logic unit partitioning |
GB2470895A (en) * | 2009-06-08 | 2010-12-15 | Mark Klarzynski | Virtualisation of block level storage by compartmentalising data into virtual block files to establish a virtual block file system |
US8255661B2 (en) * | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
US20120102564A1 (en) * | 2010-10-25 | 2012-04-26 | Openpeak Inc. | Creating distinct user spaces through mountable file systems |
US8577885B2 (en) * | 2010-12-09 | 2013-11-05 | International Business Machines Corporation | Partitioning management of system resources across multiple users |
US20130074178A1 (en) * | 2011-09-15 | 2013-03-21 | Sandisk Technologies Inc. | Preventing access of a host device to malicious data in a portable device |
CN102522123B (zh) * | 2011-12-06 | 2014-05-07 | 苏州国芯科技有限公司 | 利用数据产生器模块来提高存储设备读写测试效率的方法 |
US9178886B2 (en) * | 2012-08-29 | 2015-11-03 | Red Hat Israel, Ltd. | Flattening permission trees in a virtualization environment |
JP2014123254A (ja) * | 2012-12-21 | 2014-07-03 | International Business Maschines Corporation | メディア上のファイルをユーザ単位で分割管理する方法、プログラム、及びストレージ・システム |
FR3021137B1 (fr) * | 2014-05-19 | 2016-07-01 | Keolabs | Dispositif d'interface utilisateur |
US9959203B2 (en) * | 2014-06-23 | 2018-05-01 | Google Llc | Managing storage devices |
US10025747B2 (en) * | 2015-05-07 | 2018-07-17 | Samsung Electronics Co., Ltd. | I/O channel scrambling/ECC disassociated communication protocol |
US9904485B2 (en) * | 2016-03-31 | 2018-02-27 | Intel Corporation | Secure memory controller |
-
2018
- 2018-01-12 GB GB1800530.6A patent/GB2570143B/en active Active
-
2019
- 2019-01-07 WO PCT/EP2019/050262 patent/WO2019137876A1/en unknown
- 2019-01-07 BR BR112020014044-9A patent/BR112020014044A2/pt unknown
- 2019-01-07 CN CN201980018149.3A patent/CN111886573B/zh active Active
- 2019-01-07 JP JP2020538615A patent/JP7244527B2/ja active Active
- 2019-01-07 EP EP19700108.4A patent/EP3738024A1/en active Pending
- 2019-01-07 US US16/961,488 patent/US11294581B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007156588A (ja) | 2005-12-01 | 2007-06-21 | Hitachi Ltd | アクセスを提供するコンピュータシステム及びその管理方法 |
JP2010020701A (ja) | 2008-07-14 | 2010-01-28 | Internatl Business Mach Corp <Ibm> | 機器の間のアクセスを管理する装置及び方法 |
JP2010067042A (ja) | 2008-09-11 | 2010-03-25 | Hitachi Ltd | 計算機切り替え方法、計算機切り替えプログラム及び計算機システム |
WO2014091535A1 (ja) | 2012-12-10 | 2014-06-19 | 株式会社日立製作所 | 計算機システム及び記憶部の暗号化方法 |
WO2017093533A1 (en) | 2015-12-03 | 2017-06-08 | Garrison Technology Ltd | Secure boot code cache which may be updated through the network |
Also Published As
Publication number | Publication date |
---|---|
GB201800530D0 (en) | 2018-02-28 |
GB2570143A (en) | 2019-07-17 |
US11294581B2 (en) | 2022-04-05 |
US20200379658A1 (en) | 2020-12-03 |
WO2019137876A1 (en) | 2019-07-18 |
BR112020014044A2 (pt) | 2020-12-01 |
CN111886573B (zh) | 2024-07-23 |
EP3738024A1 (en) | 2020-11-18 |
JP2021510871A (ja) | 2021-04-30 |
GB2570143B (en) | 2020-04-08 |
CN111886573A (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108604270B (zh) | 操作系统的安全供应 | |
CN109446815B (zh) | 基本输入输出系统固件的管理方法、装置和服务器 | |
US9047468B2 (en) | Migration of full-disk encrypted virtualized storage between blade servers | |
CN108628658B (zh) | 一种容器的许可证管理方法及装置 | |
EP3077951B1 (en) | System and method for supporting host-based and in-band/side-band firmware upgrade of input/output (i/o) devices in a middleware machine environment | |
TWI526931B (zh) | 用於虛擬機器之繼承產品啟動 | |
JP5276073B2 (ja) | ストレージシステム、ストレージ制御方法及びストレージ制御プログラム | |
KR101179758B1 (ko) | 클라이언트 및 서버의 보안방법 | |
US8443365B2 (en) | Methods and systems to clone a virtual machine instance | |
US20090193074A1 (en) | Method for protecting client and server | |
TW201714108A (zh) | 安全防護管理方法、電腦系統以及非暫態電腦可讀取存儲媒體 | |
WO2010102409A1 (en) | Methods and systems for providing secure image mobility | |
CN110390184B (zh) | 用于在云中执行应用的方法、装置和计算机程序产品 | |
JP3630087B2 (ja) | 自動データ処理装置 | |
US8086844B2 (en) | Online trusted platform module | |
JP7244527B2 (ja) | ストレージリソースの安全な共用 | |
KR102441860B1 (ko) | 공급자 네트워크 서비스 확장 | |
CN115828249A (zh) | 基于云技术的计算节点及基于云技术的实例管理方法 | |
JP7027664B2 (ja) | ハッキング耐性のあるコンピュータ設計 | |
WO2024188223A1 (zh) | 基于安全虚拟化的硬件可信根代理交互方法和网络设备 | |
CN118550647A (zh) | 安全虚拟机的数据共享方法及相关装置 | |
CN118502881A (zh) | 一种密钥管理方法及片上系统 | |
CN118504005A (zh) | 密钥管理方法、装置、片上系统、计算设备及存储介质 | |
Civilini | The Security of Cloud Infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220105 |
|
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: 20230221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230309 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7244527 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |