(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-27
(54)【発明の名称】クラウドインフラストラクチャシステムにおけるセキュリティゾーンポリシー施行
(51)【国際特許分類】
G06F 21/62 20130101AFI20230920BHJP
G06F 9/48 20060101ALI20230920BHJP
G06F 9/50 20060101ALI20230920BHJP
【FI】
G06F21/62 318
G06F9/48 300H
G06F9/50 150C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023512412
(86)(22)【出願日】2021-08-04
(85)【翻訳文提出日】2023-04-07
(86)【国際出願番号】 US2021044456
(87)【国際公開番号】W WO2022039925
(87)【国際公開日】2022-02-24
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-08-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ドゾレツ,イゴル
(72)【発明者】
【氏名】アルラヘム,トウルフェカー
(72)【発明者】
【氏名】トン,ジュン
(72)【発明者】
【氏名】クパーマン,レオニード
(72)【発明者】
【氏名】ポトラパリー,ナチケス・ラオ
(72)【発明者】
【氏名】チャンドラン,バラ・ガネシュ
(72)【発明者】
【氏名】プラット,ブライアン
(72)【発明者】
【氏名】グラス,ナサニエル
(72)【発明者】
【氏名】ナガラジャ,ギリシュ
(72)【発明者】
【氏名】ナダル,ホナタン・ホルヘ
(57)【要約】
クラウド内で管理される様々なリソースに関連するセキュリティポリシーを管理および実施するためのロバストかつセキュアなフレームワークを提供するクラウドベースのセキュリティソリューションが開示される。クラウドベースのセキュリティソリューションは、クラウドサービスプロバイダインフラストラクチャ内のセキュリティゾーンポリシー施行システムによって実現される。システムは、リソースに対して動作を実行する要求を受信し、リソースに関連付けられるコンパートメントを判断する。システムは、コンパートメントがセキュリティゾーンに関連付けられている、と判断し、リソースに適用可能な1つ以上のセキュリティゾーンポリシーのセットを判断する。システムは、次いで、1つ以上のセキュリティゾーンポリシーのセットに基づいて、リソースに対する動作が許可される、と判断し、リソースに対する動作が許可される、と判断したことに応答して、リソースに対して動作が実行されるのを可能にする。
【特許請求の範囲】
【請求項1】
方法であって、
クラウドサービスプロバイダインフラストラクチャ内のセキュリティゾーンポリシー施行システムが、リソース上で動作を実行する要求を受信することと、
前記セキュリティゾーンポリシー施行システムが、前記リソースに関連付けられるコンパートメントを判断することと、
前記セキュリティゾーンポリシー施行システムが、前記コンパートメントはセキュリティゾーンに関連付けられていると判断することと、
前記セキュリティゾーンポリシー施行システムが、前記リソースに適用可能な1つ以上のセキュリティゾーンポリシーのセットを判断することと、
前記セキュリティゾーンポリシー施行システムが、前記1つ以上のセキュリティゾーンポリシーのセットに基づいて前記リソースに対する前記動作が許可されると判断することと、
前記リソースに対する前記動作が許可されると判断することに応答して、前記セキュリティゾーンポリシー施行システムが、前記リソースに対して前記動作が実行されることを可能にすることとを含む、方法。
【請求項2】
前記リソースに関連付けられる前記コンパートメントを判断することは、前記リソースに関連付けられる前記コンパートメントのコンパートメント識別子と、前記リソースに適用可能な1つ以上のコンパートメントポリシーのセットとを判断することを含む、請求項1に記載の方法。
【請求項3】
前記リソースに適用可能な前記1つ以上のコンパートメントポリシーのセットは、前記コンパートメントに関連付けられる1つ以上のコンパートメントポリシーと、前記コンパートメントに階層的に関連する1つ以上の親コンパートメントに関連付けられる1つ以上のコンパートメントポリシーとの和集合を含む、請求項2に記載の方法。
【請求項4】
前記1つ以上のコンパートメントポリシーのセットに基づいて、前記リソースに対する前記動作が許可されると判断することと、
前記判断に応答して、前記コンパートメントは前記セキュリティゾーンに関連付けられていると判断することとをさらに含む、請求項2に記載の方法。
【請求項5】
前記1つ以上のコンパートメントポリシーのセットに基づいて、前記リソースに対する前記動作が許可されないと判断することと、
前記1つ以上のコンパートメントポリシーのセットに基づいて前記動作を前記リソース上で実行することが許可されないと判断したことに応答して、前記リソース上で前記動作が実行されることを許可しないこととをさらに含む、請求項2に記載の方法。
【請求項6】
前記リソースに対する前記動作が許可されないことを、前記1つ以上のセキュリティゾーンポリシーのセットに基づいて判断することと、
前記判断することに応答して、前記動作が前記リソースで実行されることを許可しないこととをさらに含む、請求項1に記載の方法。
【請求項7】
前記リソースに適用可能な前記1つ以上のセキュリティゾーンポリシーのセットは、前記セキュリティゾーンに関連付けられる1つ以上のセキュリティゾーンポリシーと、前記セキュリティゾーンに階層的に関連する1つ以上の親セキュリティゾーンに関連付けられる1つ以上のセキュリティゾーンポリシーとの和集合を含む、請求項1に記載の方法。
【請求項8】
前記1つ以上のセキュリティゾーンポリシーのセット中のセキュリティゾーンポリシーは、1つ以上の式のセットとして表され、前記式のセット中の各式は、1つ以上の条件のセットを含み、前記1つ以上の条件のセット中の各条件は、前記リソース上で実行されるべき前記動作に対する制限を指定する、請求項1に記載の方法。
【請求項9】
前記制限は、前記リソースの暗号化を必要とする基準、前記リソースが存在する前記コンパートメントからの前記リソースの移動を制限する基準、または前記リソースがパブリックインターネットからアクセス可能であることを禁止する基準を指定する、請求項8に記載の方法。
【請求項10】
前記制限は、前記リソースに関連付けられる1つ以上のセカンダリリソースに関連する基準を指定し、前記1つ以上のセカンダリリソースは、前記リソースの前記動作に影響を及ぼす、請求項9に記載の方法。
【請求項11】
前記1つ以上のセキュリティゾーンポリシーのセットは、前記動作の特定の構成が前記リソース上で実行されるのを禁止する、請求項1に記載の方法。
【請求項12】
前記セキュリティゾーンポリシー施行システムが、前記リソース上で前記動作が成功裏に実行されたことを示す結果をユーザに送信することをさらに含む、請求項1に記載の方法。
【請求項13】
前記セキュリティゾーンポリシー施行システムが、ユーザに結果を送信することをさらに含み、前記結果は、前記リソース上で前記動作が成功裏に実行されなかったことを示す、請求項1に記載の方法。
【請求項14】
クラウドサービスプロバイダインフラストラクチャにおけるセキュリティゾーンポリシー施行システムであって、
プロセッサと、
命令を記憶するメモリとを備え、前記命令は、前記プロセッサによって実行されると、前記システムを、
リソース上で動作を実行する要求を受信し、
前記リソースに関連付けられるコンパートメントを判断し、
前記コンパートメントはセキュリティゾーンに関連付けられていると判断し、
前記リソースに適用可能な1つ以上のセキュリティゾーンポリシーのセットを判断し、
前記リソースに対する前記動作が許可されることを、前記1つ以上のセキュリティゾーンポリシーのセットに基づいて判断し、
前記リソースに対する前記動作が許可されると判断することに応答して、前記リソースに対して前記動作が実行されるのを可能にするよう構成する、セキュリティゾーンポリシー施行システム。
【請求項15】
前記リソースに関連付けられる前記コンパートメントのコンパートメント識別子と、前記リソースに適用可能な1つ以上のコンパートメントポリシーのセットとを判断するための命令をさらに含む、請求項14に記載のシステム。
【請求項16】
前記1つ以上のセキュリティゾーンポリシーのセット中のセキュリティゾーンポリシーは、1つ以上の式のセットとして表され、前記式のセット中の各式は、1つ以上の条件のセットを含み、前記1つ以上の条件のセット中の各条件は、前記リソース上で実行されるべき前記動作に対する制限を指定する、請求項1に記載のシステム。
【請求項17】
プログラムコードが記憶された非一時的なコンピュータ可読媒体であって、前記プログラムコードは、動作を実行するために1つ以上の処理デバイスによって実行可能であり、前記動作は、
クラウドサービスプロバイダインフラストラクチャ内のリソースへの安全なアクセスを提供するセキュリティゾーンポリシー施行システムが、コンパートメントをセキュリティゾーンに関連付ける要求を受信することを含み、前記コンパートメントは、1つ以上のコンパートメントポリシーのセットに関連付けられ、前記動作はさらに、
前記要求に応答して、前記セキュリティゾーンポリシー施行システムが、前記コンパートメントを前記セキュリティゾーンに関連付けることを含み、前記セキュリティゾーンは、1つ以上のセキュリティゾーンポリシーのセットに関連付けられ、
前記コンパートメントを前記セキュリティゾーンと関連付ける結果として、前記コンパートメントは、前記1つ以上のセキュリティゾーンポリシーのセットおよび前記1つ以上のコンパートメントポリシーのセットに関連付けられる、非一時的なコンピュータ可読媒体。
【請求項18】
前記セキュリティゾーンポリシー施行システムが、前記コンパートメントにリソースを追加する要求を受信することと、
前記要求に応答して、前記セキュリティゾーンポリシー施行システムが、前記1つ以上のコンパートメントポリシーのセットおよび前記1つ以上のセキュリティゾーンポリシーのセットに少なくとも部分的に基づいて前記リソースへのアクセスを判断することとをさらに含む、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記1つ以上のセキュリティゾーンポリシーのセットは、動作のセットが前記リソース上で実行されることを禁止するか、または動作の特定のバージョンが前記リソース上で実行されることを禁止する、請求項18に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記1つ以上のセキュリティゾーンポリシーのセット中のセキュリティゾーンポリシーは、1つ以上の式のセットとして表され、前記式のセット中の各式は、1つ以上の条件のセットを含み、前記1つ以上の条件のセット中の各条件は、前記リソース上で実行されるべき動作に対する制限を指定する、請求項18に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年8月3日に提出された、「Security Zone Policy Enforcement in a cloud infrastructure system」と題される、米国特許仮出願第17/393,347号の利益および優先権を主張する。米国特許仮出願第17/393,347号の内容は、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。
【0002】
本出願は、2020年8月21日に提出された、「Secure Resource Provisioning in a virtual computing environment」と題される、米国特許仮出願第63/068,943号、および2020年8月21日に提出された、「Secure Resource Provisioning in a virtual computing environment using intention based security policies」と題される、米国特許仮出願第63/068,945号の、米国特許法第119条(e)に基づく利益および優先権を主張し、その全内容は、あらゆる目的のために参照により本明細書に組み込まれる
【背景技術】
【0003】
背景
概して、クラウドベースのアプリケーション(例えば、企業パブリッククラウドアプリケーション、第三者クラウドアプリケーションなど)の使用は、多様なデバイス(例えば、デスクトップおよびモバイルデバイス)および多様なユーザ(例えば、従業員、パートナー、顧客など)から来るアクセスを伴って、普及している。クラウドへの移行を行うビジネスおよび企業にとって、クラウドサービスプロバイダが、そのユーザにロバストなセキュリティソリューションを提供することができることは、不可欠である。クラウドベースのセキュリティサービスは、ビジネスおよび企業が、安全なままであり、データプライバシーおよびコンプライアンス要件が満たされることを確実にしながら、クラウドコンピューティングの多くの利点を利用することを可能にする、セキュリティソリューションを提供する。クラウドベースのサービスおよびクラウドベースのアプリケーションの豊富な多様性およびアクセス可能性により、クラウドプロバイダによって安全に管理される必要があるクラウドリソースの量は、急速に増加し続けている。クラウド内でリソースを安全に構成および管理するための既存のクラウドベースのセキュリティサービスは、クラウド内のリソースへの、よりロバストで、セキュアで、信頼できるアクセスを提供するよう改善される必要がある。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
本開示は、概して、クラウドベースのセキュリティソリューションに関する。より具体的には、限定としてではないが、本開示は、クラウド内で管理される種々のリソースに関連するセキュリティポリシーを管理および施行するためのロバストかつセキュアなフレームワークを提供する、クラウドベースのセキュリティソリューションを説明する。
【0005】
ある実施形態では、クラウドサービスプロバイダインフラストラクチャにおけるセキュリティゾーンポリシー施行システムが開示される。セキュリティゾーンポリシー施行システムは、リソースに対して動作を実行する要求を受信し、リソースに関連付けられるコンパートメントを判断する。システムは、コンパートメントがセキュリティゾーンに関連付けられている、と判断し、リソースに適用可能な1つ以上のセキュリティゾーンポリシーのセットを判断する。システムは、次いで、1つ以上のセキュリティゾーンポリシーのセットに基づいて、リソースに対する動作が許可される、と判断し、リソースに対する動作が許可される、と判断したことに応答して、リソースに対して動作が実行されるのを可能にする。
【0006】
いくつかの例では、システムは、リソースに関連付けられるコンパートメントのコンパートメント識別子と、リソースに適用可能な1つ以上のコンパートメントポリシーのセットとを判断する。リソースに適用可能な1つ以上のコンパートメントポリシーのセットは、コンパートメントに関連付けられる1つ以上のコンパートメントポリシーと、コンパートメントに階層的に関連する1つ以上の親コンパートメントに関連付けられる1つ以上のコンパートメントポリシーとの和集合を含む。
【0007】
いくつかの例では、システムは、1つ以上のコンパートメントポリシーのセットに基づいて、リソースに対する動作が許可されると判断し、1つ以上のコンパートメントポリシーのセットに基づいて、リソースに対する動作が許可されると判断したことに応答して、コンパートメントがセキュリティゾーンに関連付けられていると判断する。
【0008】
いくつかの例では、システムは、1つ以上のコンパートメントポリシーのセットに基づいて、リソースに対する動作が許可されないと判断することと、そのように判断することに応答して、リソースに対する動作の実行を許可しないこととを含む。いくつかの例では、システムは、セキュリティゾーンポリシーのセットに基づいて、リソースに対する動作が許可されないと判断することと、そのように判断することに応答して、リソースに対する動作の実行を許可しないこととを含む。
【0009】
いくつかの例では、リソースに適用可能な1つ以上のセキュリティゾーンポリシーのセットは、セキュリティゾーンに関連付けられる1つ以上のセキュリティゾーンポリシーと、セキュリティゾーンに階層的に関連する1つ以上の親セキュリティゾーンに関連付けられる1つ以上のセキュリティゾーンポリシーとの和集合を含む。
【0010】
いくつかの例では、1つ以上のセキュリティゾーンポリシーのセット中のセキュリティゾーンポリシーは、1つ以上の式のセットとして表される。式のセット内の各式は、1つ以上の条件のセットを含み、1つ以上の条件のセット内の各条件は、リソース上で実行されるべき動作に対する制限を指定する。いくつかの例では、制限は、リソースの暗号化を必要とする基準、リソースが存在するコンパートメントからのリソースの移動を制限する基準、またはリソースがパブリックインターネットからアクセス可能であることを禁止する基準を指定する。いくつかの例では、制限は、リソースに関連付けられる1つ以上のセカンダリリソースに関連する基準を指定し、1つ以上のセカンダリリソースはリソースの動作に影響を及ぼす。いくつかの例では、1つ以上のセキュリティゾーンポリシーのセットは、動作の特定の構成がリソース上で実行されるのを禁止する。
【0011】
いくつかの例では、システムは、動作がリソース上で成功裏に実行されたことを示す結果をユーザに送信する。いくつかの例では、結果は、動作がリソース上で成功裏に実行されなかったことを示す。
【0012】
特定の例では、システムは、コンパートメントをセキュリティゾーンに関連付ける要求を受信する。コンパートメントは、1つ以上のコンパートメントポリシーのセットに関連付けられる。要求に応答して、システムはコンパートメントをセキュリティゾーンに関連付ける。セキュリティゾーンは、1つ以上のセキュリティゾーンポリシーのセットに関連付けられる。関連付けの結果として、コンパートメントは、1つ以上のセキュリティゾーンポリシーのセットおよび1つ以上のコンパートメントポリシーのセットに関連付けられる。いくつかの例では、システムは、コンパートメントにリソースを追加する要求を受信し、要求に応答して、1つ以上のコンパートメントポリシーのセットおよび1つ以上のセキュリティゾーンポリシーのセットに少なくとも部分的に基づいてリソースへのアクセスを判断する。いくつかの例では、1つ以上のセキュリティゾーンポリシーのセットは、動作のセットがリソース上で実行されることを禁止するか、または動作の特定のバージョンがリソース上で実行されることを禁止する。
【0013】
ある実施形態では、クラウドサービスプロバイダインフラストラクチャ(CSPI)における集中型アプリケーションプログラミングインターフェイス(API)要求処理システムが開示される。API要求処理システムは、CSPIにおいてリソースに対して実行される動作を識別するAPI要求を受信する。システムは、API要求から、リソースに関連付けられるコンパートメント情報およびコンテキスト情報を判断する。リソースに関連付けられるコンパートメント情報およびコンテキスト情報の判断に応答して、システムは、リソースが、セキュリティゾーンに関連付けられるコンパートメント内に存在する、と判断する。システムは、次いで、API要求を処理し、API要求の処理結果を集中型API処理システムのユーザに送信する。
【0014】
いくつかの例では、システムは、API要求からプライマリリソースを判断する。いくつかの例では、プライマリリソースは、API要求において識別されるリソースである。システムは、API要求によって影響を受けるセカンダリリソースを判断する。セカンダリリソースは、プライマリリソースに関連付けられるリソースである。いくつかの例では、セカンダリリソースはAPI要求の一部として識別されない。
【0015】
ある例では、コンパートメント情報は、コンパートメント識別子と、API要求内で識別されるプライマリリソースに関連付けられる1つ以上のコンパートメントポリシーのセットとを含む。いくつかの例では、コンテキスト情報は、API要求によって影響を受けるセカンダリリソースに関連付けられる。コンテキスト情報は、セカンダリリソースに関連付けられるリソース識別子、セカンダリリソースに関連付けられるコンパートメント識別子、またはセカンダリリソースに関連付けられるリソース状態を含んでもよい。いくつかの例では、コンテキスト情報は、API要求を実行するよう構成されるCSPI中のダウンストリームサービスを識別する。
【0016】
いくつかの例では、システムは、リソースに関連付けられるコンパートメント情報およびコンテキスト情報に基づいて、API要求において識別されるリソースに対して動作が実行されることが許可される、と判断し、その判断に応答して、リソースが、セキュリティゾーンに関連付けられるコンパートメント内に存在する、と判断する。いくつかの例では、集中型API処理システムによるAPI要求の処理は、API要求とリソースに関連付けられるコンパートメント情報とを処理のためにセキュリティゾーンポリシー施行システムに送信することを含む。処理は、集中型API処理システムが、セキュリティゾーンポリシー施行システムからAPI要求の処理の結果を受信することをさらに含む。いくつかの例では、結果は、動作がリソース上で実行されることを許可されることを示す。いくつかの例では、結果は、動作がリソース上で実行されることを許可されないことを示す。特定の例では、集中型API処理システムは、結果をユーザに送信する。いくつかの例では、API要求を処理することは、セキュリティゾーンポリシー施行システムが、コンパートメントのセキュリティゾーンに関連付けられる1つ以上のセキュリティゾーンポリシーのセットを評価することを含む。
【0017】
いくつかの例では、システムは、リソースに関連付けられるコンパートメント情報およびコンテキスト情報を判断する前に、ユーザがAPI要求において識別されるリソースに対して動作を実行することを承認されている、と判断する。いくつかの例では、リソースに関連付けられるコンパートメント情報およびコンテキスト情報は、API要求に関連付けられるセキュリティゾーン仕様に記憶される。
【0018】
ここでは、方法、システム、1つ以上のプロセッサによって実行可能なプログラム、コード、または命令を記憶する非一時的コンピュータ可読記憶媒体などを含む様々な実施形態について説明する。これらの例示的な実施形態は、本開示を限定または定義するためではなく、その理解を助けるための例を提供するために言及される。さらなる実施形態が、「詳細な説明」において議論され、そこでさらなる説明がなされる。
【0019】
本開示の特徴、実施形態、および利点は、添付の図面を参照して以下の「詳細な説明」を読むことにより、よりよく理解される。
【図面の簡単な説明】
【0020】
【
図1】ある実施形態による、クラウドサービスプロバイダインフラストラクチャ(CSPI)によって管理される種々のリソースに関連するセキュリティポリシーを管理および施行するためのセキュアフレームワークを提供するための能力を含むCSPIを備えるコンピューティング環境の上位図である。
【
図2】ある実施形態による、
図1に示すセキュリティゾーンポリシー管理システム116によって提供されるセキュアフレームワークを備えるコンピューティング環境200の例示的な図である。
【
図3】ある実施形態による、
図1に示すCSPI内のセキュリティゾーンポリシー管理サブシステム116によって実行されるプロセス300の一例を示す。
【
図4】ある実施形態による、
図1に示すCSPI内のセキュリティゾーンポリシー検証サブシステムによって実行されるプロセス400の一例を示す。
【
図5A】ある実施形態による、
図1に示されるCSPIのテナントのユーザによって作成されるコンパートメントによるコンパートメントポリシーの継承の例示的な図である。
【
図5B】ある実施形態による、
図1に示すCSPIのテナントによって作成されるコンパートメントによる、セキュリティゾーンに関連付けられるセキュリティゾーンポリシーの継承の例示的な図である。
【
図6】ある実施形態による、CSPIによって管理される種々のリソースへのセキュアアクセスを可能にするためにセキュアフレームワークを提供するために集中型API要求処理システムとセキュリティゾーンポリシー施行システムとを含むクラウドサービスプロバイダインフラストラクチャ(CSPI)110を備えるコンピューティング環境600の上位図である。
【
図7】ある実施形態による、CSPIによって管理される様々なリソースへのセキュアアクセスをユーザに提供するために集中型API要求処理システムによって実行されるプロセス700の例を示す。
【
図8】ある実施形態による、リソースに関連付けられるセキュリティゾーンポリシーのセットを評価することに基づいて、動作がリソース上で実行されることを許可されるかどうかを判断するために、セキュリティゾーンポリシー施行システム112によって実行される処理のプロセス800の一例を示す。
【
図9】ある実施形態による、CSPIによって管理される種々のリソースへのユーザセキュアアクセスを提供するための、
図6に示される集中型API要求処理システムと1つ以上の他のシステムとの間の対話を示す、シーケンス図である。
【
図10】ある実施形態による、
図6に示されるCSPI内の計算サービスを使用して計算インスタンスリソースを起動するための動作を識別するAPI要求に対応するセキュアゾーン仕様の例である。
【
図11】ある実施形態による、CSPI内の計算サービスを使用して、ボリュームをインスタンスにアタッチし、ブートボリュームをインスタンスにアタッチし、インスタンスについてコンパートメント識別子を変更するための動作を識別するAPI要求に対応するセキュアゾーン仕様の例である。
【
図12】ある実施形態による、CSPI内の計算サービスを使用して、サブネットを作成し、インターネットゲートウェイを作成し、サブネットについてコンパートメント識別子を変更し、インターネットゲートウェイについてコンパートメント識別子を変更するための動作を識別するAPI要求に対応するセキュリティゾーン仕様の例である。
【
図13】少なくとも1つの実施形態による、IaaSアーキテクチャの例示的なパターンを示すブロック
図1300である。
【
図14】少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図1400である。
【
図15】少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図1500である。
【
図16】少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図1600である。
【
図17】様々な実施形態が実現されてもよい例示的なコンピュータシステム1700を示す。
【発明を実施するための形態】
【0021】
詳細な説明
以下の説明では、説明の目的のために、特定の詳細が、特定の実施形態の完全な理解を促すために記載される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実施されてもよいことは明らかであろう。図および記載は、限定することを意図したものではない。「例示的」という文言は、ここでは、「例、事例、または例示として供される」ことを意味するために用いられる。「例示的」としてここに記載される任意の実施形態または設計は、必ずしも、他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
【0022】
本開示は、概して、クラウドベースのセキュリティソリューションに関する。より具体的には、限定としてではないが、本開示は、クラウド内で管理される種々のリソースに関連するセキュリティポリシーを管理および施行するためのロバストかつセキュアなフレームワークを提供する、クラウドベースのセキュリティソリューションを説明する。
【0023】
ますます多くの企業がデータセンタおよびアプリケーションを日々クラウドに移動させるにつれて、クラウドデータセキュリティがますます重要になってきている。クラウドベースのセキュリティソリューションは、包括的なデータセキュリティポリシーを通じて高品質なクラウドデータセキュリティがそのユーザに対して達成されることを保証する。例えば、アイデンティティおよびアクセス管理(IAM)は、クラウドにおいて提供される共通のタイプのセキュリティソリューションである。IAM技術は、ユーザアイデンティティを管理することによってクラウド内のリソースへのユーザのアクセスを規制し得るポリシーを定義することによって、クラウドデータセキュリティを保証する。IAMポリシーは、ユーザがアクセスする権利のないリソースにアクセスするユーザの能力を制限し、および/またはクラウド内で特定のアクション/動作を実行するユーザの能力を制限するユーザ役割を定義するよう構成されてもよい。
【0024】
既存のクラウドベースのセキュリティソリューションは、クラウド内のリソース(例えば、ネットワーク、サーバ、ストレージ、アプリケーション、およびサービス)を構成し、リソースにアクセスし、リソースを管理するためのロバストかつセキュアなフレームワークをユーザに提供する能力が限られている。例えば、IAMポリシーを採用するクラウドベースのセキュリティソリューションは、概して、ユーザ/グループ固有であり、アクセスを要求するユーザのアイデンティティに結び付けられる。例えば、企業またはクラウドプロバイダの管理者は、特定のユーザの集合(例えば、企業内の特定の部門に属するユーザ)のアクセス特権をカスタマイズし得、その結果、特定のユーザのグループは、企業内の彼らの役割/アイデンティティに基づいて、特定のリソースへのアクセスを常に与えられ得る。これは、特に、企業が、企業のためにロバストなデータセキュリティ制御を提供するようアクセスが厳しく規制されることを確実にすることが要求される場合に、企業の全体的なセキュリティのニーズを危うくし得る。さらに、IAM技術の使用は、企業またはクラウドの管理者が、それのすべてのユーザの更新され同期された情報を維持することを必要とする。これは、取り扱いに注意を要するアイデンティティ情報の管理を伴い、企業にとってプライバシーの問題を引き起こす。
【0025】
本開示で説明されるクラウドベースのセキュリティソリューションは、従来のクラウドベースのセキュリティサービスを上回るいくつかの技術的進歩および/または改善を提供する。クラウドベースのセキュリティソリューションは、クラウドサービスプロバイダ(CSP)によって管理される様々なリソースに関連するセキュリティポリシーを管理および施行するためのロバストかつセキュアなフレームワークを提供する。開示されるセキュアフレームワークは、企業のユーザによってアクセスされるクラウド内のリソースのセット上で施行され得る、セキュリティゾーンおよびセキュリティゾーンポリシーのセットを備える。リソースのセットへのアクセスは、セキュリティゾーンポリシーのセットによって管理され、リソースにアクセスするユーザのアイデンティティに結び付けられない。したがって、IAMポリシーによってあるリソースにアクセスすること(および/またはリソースに対して動作を実行すること)が許可され得るユーザが、そのリソースに関連付けられるセキュリティゾーンポリシーのセットに違反する場合、開示されるセキュリティソリューションよって、アクセスを拒否され得る。セキュリティゾーンポリシーは、特定のアクションまたは動作が企業の任意のユーザによってリソースのセットに対して実行されるのを許可しないことを目的とする「拒否セマンティクス」に基づく。これは、特定のユーザが企業内におけるそのユーザの役割/アイデンティティに基づいてリソース上で特定のアクションを実行することを許可する既存のIAM承認ポリシーによって採用される従来の「許可セマンティクス」とは対照的である。
【0026】
いくつかの例では、開示されるクラウドベースのセキュリティソリューションは、CSPによって提供されるシステムおよびインフラストラクチャ(クラウドインフラストラクチャ)を使用して、クラウドサービスプロバイダインフラストラクチャ(CSPI)によってユーザまたは顧客にオンデマンドで(たとえば、サブスクリプションモデルを介して)利用可能にされるCSPI内のセキュリティゾーンポリシー施行システムによって実現される。開示されるセキュリティゾーンポリシー施行システムは、企業のユーザに、クラウド内のユーザのリソースを安全に構成し、リソースにアクセスし、リソースを管理するための、ロバストかつセキュアなフレームワークを提供する。リソースは、CSPIによって分散環境でホストされる計算リソース、ネットワーキングリソース、オブジェクトストレージリソース、またはデータベースリソースを含んでもよいが、これらに限定されない。セキュリティゾーンポリシー施行システムによって実行される実現例および処理に関する詳細は、以下の図およびそれらの付随する説明において説明される。
【0027】
クラウドサービスプロバイダインフラストラクチャ(CSPI)におけるセキュリティゾーンポリシー施行システム
ここで図面を参照すると、
図1は、ある実施形態による、クラウドサービスプロバイダインフラストラクチャ(CSPI)110によって管理される種々のリソースに関連するセキュリティポリシーを管理および施行するためのセキュアフレームワークを提供するための能力を含むCSPIを備えるコンピューティング環境100の上位図である。ある実施形態では、セキュアフレームワークは、CSPI110内のセキュリティゾーンポリシー施行システム112によって提供される。CSPIによって管理されるリソースは、CSPI110によって分散環境内でホストされる計算リソース、ネットワーキングリソース、オブジェクトストレージリソース、またはデータベースリソースを含んでもよいが、これらに限定されない。CSPI110のユーザ102は、これらのリソースを使用して自身のネットワークを構築し得る。たとえば、ユーザは、CSPI110によって提供されるリソースを使用して、仮想クラウドネットワーク(VCN)(本明細書では「仮想顧客ネットワーク」とも呼ばれる)と呼ばれる1つ以上のカスタマイズ可能かつプライベートなネットワークを構築し得る。ユーザは、計算インスタンス等の1つ以上のリソースをこれらのVCN上に展開し得る。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどの形態をとり得る。
【0028】
セキュリティゾーンポリシー施行システム112は、セキュリティゾーンポリシー施行システム112を実現するためにコンピュータ可読命令(たとえば、コード、プログラム)を実行する1つ以上のコンピューティングシステムによって実現されてもよい。
図1に示すように、セキュリティゾーンポリシー施行システム112は、セキュリティゾーンポリシー管理サブシステム116およびセキュリティゾーンポリシー検証サブシステム118を含む様々なサブシステムを含む。セキュリティゾーンポリシー施行システム112によってその処理の一部として使用または生成されるデータまたは情報の部分は、セキュリティゾーンポリシー施行システム112によって1つ以上のデータベースまたはファイルに記憶されてもよいセキュリティゾーン情報120を含んでもよい。
図1に示すシステムおよびサブシステムは、コンピューティングシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組合せを使用して実現されてもよい。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶されてもよい。
【0029】
セキュリティゾーンポリシー施行システム112は、様々な異なる構成で実現されてもよい。
図1に示される実施形態では、セキュリティゾーンポリシー施行システム112は、CSPI110内の1つ以上のサーバ上に実現され、そのセキュアリソースアクセスおよび管理サービスは、サブスクリプションベースでクラウドサービスの加入者に提供されてもよい。
図1に示されるコンピューティング環境100は、単なる例であり、特許請求される実施形態の範囲を過度に限定することを意図するものではない。当業者は、多くの可能な変形、代替、および修正を認識するであろう。たとえば、いくつかの実現例では、セキュリティゾーンポリシー施行システム112は、
図1に示されるものよりも多いかまたは少ないサブシステムを使用して実現され得、2つ以上のサブシステムを組み合わせてもよく、またはサブシステムの異なる構成もしくは配置を有してもよい。
【0030】
図1に示される実施形態では、セキュリティゾーンポリシー施行システム112は、セキュリティゾーンポリシー管理システム116と、セキュリティゾーンポリシー検証サブシステム118とを備える。セキュリティゾーンポリシー管理システム116は、CSPI内の様々なリソース(例えば、計算リソース、ネットワーキングリソース、オブジェクトストレージリソース、またはデータベースリソース)に関連するセキュリティポリシーを管理するためのセキュアなフレームワークを提供するための能力を含む。いくつかの例では、セキュリティゾーンポリシー管理システム116によって提供されるセキュアフレームワークは、セキュリティゾーンのセットと、セキュリティゾーンのセットに関連付けられるセキュリティゾーンポリシーのセットとから構成されてもよいセキュリティゾーン情報120を含む。「セキュリティゾーン」は、CSPI100内のコンパートメント内に存在するリソースのセットに対して暗黙的および明示的なセキュリティゾーンポリシーを施行するように設計された、セキュリティゾーンポリシー管理サブシステム116によって管理されるセキュアフレームワーク内の特化されたゾーンを指し得る。セキュリティゾーンポリシーは、セキュリティゾーンによって定義されるセキュリティ要件に違反する特定の動作が、コンパートメント内に存在するリソースのセットに対して実行されるのを防止する。「コンパートメント」は、CSPI110によって管理されるリソースへのアクセスを編成および制御するために使用される論理コンテナを指し得る。コンパートメントは、コンパートメント内に存在するリソースの使用を制限するコンパートメントポリシーのセットに関連付けられてもよい。コンパートメントポリシーのセット内の各ポリシーは、CSPI内の計算リソース、ネットワーキングリソース、オブジェクトストレージリソース、およびデータベースリソースなどの1つ以上のリソースに影響を与えてもよい。コンパートメント内のリソースは、様々な基準に従って論理的に編成されてもよい。たとえば、コンパートメント内のリソースは、CSPIによって提供される特定のサービス(例えば、計算サービス、メモリサービス、およびネットワーキングサービス)に基づいて、ユーザの企業内の部門(エンジニアリング、人事、ITなど)などに基づいて、など、論理的に編成されてもよい。基準は、CSPI110の顧客/テナント(たとえば、120、122、または124)に関連付けられるユーザ(たとえば、管理者)102によって指定されてもよい。セキュリティゾーンポリシー管理システム116によって実現されるセキュリティゾーンおよびセキュリティゾーンポリシーを含むセキュアフレームワークの例は、
図2において詳細に説明される。
【0031】
特定の実施形態では、セキュリティゾーンポリシー管理システム116は、コンパートメントをセキュリティゾーンに関連付ける、セキュリティゾーンに関連付けられるコンパートメントにリソースを追加する、セキュリティゾーンに関連付けられるセキュリティゾーンポリシーを閲覧する、セキュリティゾーンを「最大セキュリティゾーン」として指定する等の能力を含む。「最大セキュリティゾーン」は、セキュリティゾーンポリシー施行システムによって定義されるすべての利用可能なセキュリティゾーンポリシーを含むように構成されるセキュリティゾーンを表してもよい。セキュリティゾーンに関連付けられるコンパートメントは、そのセキュリティゾーンに関連付けられるセキュリティゾーンポリシーのセットを自動的に継承する。いくつかの例では、セキュリティゾーンポリシーは、コンパートメントに関連付けられるコンパートメントポリシーに加えて、コンパートメントに存在するリソースのセットに対して施行されてもよいセキュリティポリシーの追加のレイヤを表す。セキュリティゾーンポリシーは、コンパートメント内に存在するリソースのセットに対して、ある動作のセット全体が実行されるのを禁止してもよく、リソースのセットに対して、ある動作のサブセットが実行されるのを禁止してもよく、またはリソースのセットに対して、ある特定のバージョン/構成の動作が実行されるのを禁止してもよい。例として、ユーザは、あるリソース(例えば、ある計算インスタンス)を、あるコンパートメントにおいて、そのコンパートメントに関連付けられるコンパートメントポリシーに基づくパブリックインターネットプロトコル(IP)アドレスで作成する許可を有し得るが、そのリソースを、そのコンパートメントに関連付けられるセキュリティゾーンポリシーに基づくパブリックIPアドレスで作成することは許可されない場合がある。セキュリティゾーンポリシー管理システム116によるセキュリティゾーンポリシーの実現の追加の詳細は、
図2に記載される。
【0032】
セキュリティゾーンポリシー検証サブシステム118は、セキュリティゾーンに関連付けられるコンパートメント内に存在するリソース上で動作が実行され得るかどうかを評価するための能力を含む。評価に基づいて、セキュリティゾーンポリシー検証サブシステム118は、リソース上で動作を実行する能力をCSPI110のユーザに対して許可または拒否してもよい。例えば、セキュリティゾーンポリシー検証サブシステム118は、ユーザがパブリックインターネットからリソースにアクセスしようと試みることを禁止し、ユーザによって作成されたリソースが顧客管理鍵を使用して暗号化されることを確実にするなどしてもよい。
【0033】
特定の例では、CSPI110のユーザ102は、CSPI110に、場合によっては1つ以上の通信ネットワークを介して、通信可能に結合されるコンピューティングデバイス104を使用して、セキュリティゾーンポリシー施行システム112と対話してもよい。コンピューティングデバイスは、限定はしないが、携帯電話、タブレット、デスクトップコンピュータなどを含む様々なタイプのものであってもよい。ユーザ102は、セキュリティゾーンポリシー施行システム112によって提供されるサービスを利用してCSPI内のリソースを安全に管理およびアクセスすることを望むCSPI110の顧客またはテナント(例えば、120、122、または124)に関連付けられてもよい。ユーザは、ユーザのコンピューティングデバイス(例えば、104)に接続されるコンソールユーザインターフェイス(UI)を使用して、アプリケーションプログラミングインターフェイス(API)を介して、またはコマンドラインインターフェイス(CLI)106を介して、セキュリティゾーンポリシー施行システム112と対話して、CSPI110内に展開されたリソースを安全に管理し、それにアクセスしてもよい。例えば、コンソールUIは、セキュリティゾーンポリシー施行システム112によって提供されるウェブベースのユーザインターフェイス(UI)(またはウェブベースのアプリケーション)であってもよく、ユーザが、セキュリティゾーンポリシー施行システム112と対話して、CSPI内のユーザのリソースに安全にアクセスし、リソースを管理することを可能にする。例として、ユーザは、セキュリティゾーンポリシー施行システム112と対話して、コンパートメントを作成し、コンパートメントをセキュリティゾーンと関連付け、リソースをコンパートメントに追加し、セキュリティゾーンに関連付けられるセキュリティゾーンポリシーを閲覧し、コンパートメントを削除し、コンパートメント内にサブコンパートメントを作成し、コンパートメントを同じテナンシ内の異なる親コンパートメントに移動させ、セキュリティゾーンを「最大セキュリティゾーン」指定するなどしてもよい。
【0034】
いくつかの例では、セキュリティゾーンポリシー施行システム112は、リソースに対して動作を実行する要求をユーザから受信するよう構成されてもよい。例えば、ユーザは、ユーザのVCNにおいて仮想マシンインスタンスを作成または起動するために、ユーザのデバイスに接続されたUIを介して要求を送信してもよい。セキュリティゾーンポリシー施行システム112は、要求を処理し、処理の結果をユーザに送信してもよい。結果は、動作がリソース上で首尾よく実行できたという情報、ポリシー違反のために動作を実行することができなかったというメッセージ、および場合によっては結果に含まれる他の情報を含んでもよい。結果は、例えば、ユーザのデバイス104に接続されたUIを介して、ユーザに出力されてもよい。
【0035】
図2は、ある実施形態による、
図1に示すセキュリティゾーンポリシー管理システム116によって提供されるセキュアフレームワークを備えるコンピューティング環境200の例示的な図である。いくつかの例では、セキュアフレームワークは、セキュリティゾーン202,204および206のセットと、セキュリティゾーンのセットに関連付けられるセキュリティゾーンポリシー208,210および212のセットとから構成されるセキュリティゾーン情報120を含む。前述のように、「セキュリティゾーン」は、セキュリティゾーンによって定義されるセキュリティ要件に違反する動作が、コンパートメント内に存在するリソースのセットに対して実行されるのを防止する暗黙的および明示的なセキュリティゾーンポリシーを実施するように設計された、特化されたゾーンを指してもよい。いくつかの実現例では、セキュリティゾーン(たとえば、202、204、または206)に関連付けられるセキュリティゾーンポリシー(たとえば、208、210、または212)は、1つ以上の式のセットとして表されてもよく、各式は1つ以上の条件のセットを含む。各式は、真または偽であると評価し、それらが含む条件に対して論理「積」を実行してもよい。いくつかの例では、各条件は、CSPI内のリソース上で実行され得るある動作に対する制限を指定してもよい。セキュリティゾーンポリシーは、それが含むすべての式に対して論理「和」を実行し、したがって、いずれかの式が真である場合、セキュリティゾーンポリシーは真の値を返す。セキュリティゾーンポリシーについての真の評価は、違反を示し、それは、ユーザのアクション/要求された動作がリソース上で許可されるのを阻止する結果となる。
【0036】
例として、セキュリティゾーン内のオブジェクトストレージリソース(たとえば、オブジェクトストレージバケット)が暗号化されることを必要とするセキュリティゾーンポリシーは、以下に示されるように表されてもよい:
セキュリティゾーンポリシー(オブジェクトストレージリソース) = expr1(context.part1) | expr2(context.part2) であり、ここで:
expr1(context.part1) = condition 1(Bucket.Encryption.Type = Symmetric) & condition 2(Bucket.Encryption.Key.Size < 512)、および
expr2 (context.part2) = condition 1(Bucket.Encryption.Key.Type = customer-managed)である。
【0037】
上記の例では、セキュリティゾーンポリシーによって表される第1の式expr1(context.part1)は、第1の条件であるcondition 1(Bucket.Encryption.Type = Symmetric)と、第2の条件であるcondition 2(Bucket.Encryption.Key.Size < 512)とを含む。第1の条件は、対称ではない暗号化タイプを使用してオブジェクトストレージリソース(バケット)を作成するユーザの能力を制限する。第2の条件は、ユーザが512バイト未満の鍵でオブジェクトストレージリソースを作成する能力を制限する。セキュリティゾーンポリシーによって表される第2の式expr2 (context.part2) は、オブジェクトストレージリソースが、オブジェクトストレージサービスによって管理されるデフォルト暗号鍵とは対照的に、顧客管理マスタ暗号鍵を使用して作成されるべきであるという要件を施行する1つの条件を含む。
【0038】
各表現expr1(context.part1)およびexpr2 (context.part2)は、それらが含む条件に対して論理「積」を実行することによって、真または偽であると評価する。例えば、第1の式expr1(context.part1)は、ユーザに対して、512ビット未満鍵の鍵サイズで対称暗号化を使用してオブジェクトストレージリソースを作成する能力を拒否する。第2の表現expr2 (context.part2)は、ユーザに対して、デフォルト暗号鍵を含むオブジェクトストレージリソースを作成する能力を拒否する。オブジェクトストレージリソースに対するセキュリティゾーンポリシーは、すべての式に対して論理「和」を実行し、したがって、いずれかの式が真である場合、ポリシーは真の値を返す。セキュリティゾーンポリシーについての真の評価は、違反を示し、それは、ユーザのアクションをブロックする結果となり、すなわちそれは、ユーザが、512ビットキー未満鍵の鍵サイズでの対称暗号化を使用してオブジェクトストレージリソースを作成すること、またはデフォルト暗号化キーを使用してオブジェクトストレージリソースを作成することを防止する。
【0039】
代替実現例では、リソースのメタデータの構造に基づいて、オブジェクトストレージリソースのためのセキュリティゾーンポリシーのための式は、以下に示すようにワイルドカード文字を使用して表されてもよい:
Expr 1: *.Encryption.Type = Symmetric && *.Encryption.Key.Size < 512
さらに別の実現例では、リソース(たとえば、オブジェクトストレージリソース)のためのセキュリティゾーンポリシーのための式は、以下に示すように表されてもよい:
Expr 1: Encryption.Type = Symmetric && Encryption.Key.Size < 512
ある例では、セキュリティゾーンポリシー(たとえば、208、210または212)は、ある特定のセキュリティゾーンポリシーカテゴリに属してもよい。各セキュリティゾーンポリシーカテゴリは、ある動作のセットがあるリソースのセット上で実行されることを禁止するポリシーを含む。異なるセキュリティゾーンポリシーカテゴリは、例えば、アクセス制限セキュリティゾーンポリシーカテゴリ、データセキュリティ/データ暗号化セキュリティゾーンポリシーカテゴリ、リソース関連付け制限セキュリティゾーンポリシーカテゴリ、リソース移動制限セキュリティゾーンポリシーカテゴリ、またはデータ耐久性セキュリティゾーンポリシーカテゴリを含んでもよい。様々なセキュリティゾーンポリシーカテゴリが以下で説明される。
【0040】
アクセス制限セキュリティゾーンポリシー
このカテゴリに属するポリシーの例は、セキュリティゾーンにおいて作成されたリソースがパブリックインターネットからアクセス可能であることを禁止するポリシーを含む。例えば、このカテゴリのポリシーは、セキュリティゾーン内のサブネットを公開することができないこと、インターネットゲートウェイをセキュリティゾーン内の仮想クラウドネットワーク(VCN)に追加することができないこと、セキュリティゾーン内に作成されたオブジェクトストレージバケットを公開することができないこと、セキュリティゾーン内のデータベースをパブリックサブネットに割り当てることができないことなどを確実にする。
【0041】
データセキュリティ/データ暗号化セキュリティゾーンポリシー
このカテゴリにおけるポリシーの例は、顧客管理鍵を使用してセキュリティゾーン内のリソースが暗号化されることを必要とするポリシーと、移動中および停止中にデータが暗号化されることを必要とするポリシーとを含む。例えば、このカテゴリのポリシーは、セキュリティゾーンにおいて作成されるブロックボリューム、ブートボリューム、オブジェクトストレージバケット、およびデータベースなどのリソースが、サービスによって管理されるデフォルト暗号鍵とは対照的に、顧客管理マスタ暗号鍵を使用することを保証する。さらに、このカテゴリのポリシーは、セキュリティゾーン内で作成されるブロックボリューム、ブートボリューム、オブジェクトストレージバケット、およびデータベースが、特定のビット数を有する鍵を使用して暗号化されることを保証する。
【0042】
リソース関連付け制限セキュリティゾーンポリシー
このカテゴリにおけるポリシーの例は、プライマリリソースのセキュリティ姿勢に影響を及ぼすリソース(例えば、プライマリリソース)のコンポーネント(例えば、セカンダリリソース)もセキュリティゾーンに配置されなければならないことを必要とするポリシーを含む。例えば、このカテゴリのポリシーは、セキュリティゾーン内の計算インスタンスにアタッチされたすべてのブロックストレージボリューム/ブートボリューム自体がセキュリティゾーン内になければならないこと、セキュリティゾーン内にない計算インスタンスは、セキュリティゾーン内にあるブロックストレージボリューム/ブートボリュームにアタッチすることができないこと、ブロックボリューム/ブートボリュームは、セキュリティゾーン内にない計算インスタンスにアタッチされる場合、セキュリティゾーンに移動させることはできないこと、セキュリティゾーン内の計算インスタンスは、同様にセキュリティゾーン内にあるサブネットを使用しなければならないこと、セキュリティゾーン内のデータベースは、同様にセキュリティゾーン内にあるサブネットを使用しなければならないこと、などを保証する。
【0043】
リソース移動制限セキュリティゾーンポリシー
このカテゴリにおけるポリシーの例は、セキュリティゾーンから標準コンパートメントへの特定のリソースの移動はあまり安全ではないかもしれないので許可しないこと、すべてのセキュリティゾーンポリシーが満たされない限り標準コンパートメントからセキュリティゾーンへの既存のリソースの移動を許可しないことなどによって、データの保全性を保証するポリシーを含む。例えば、このカテゴリのポリシーは、ブロックボリューム/ブートボリューム、計算インスタンス、サブネット、バケット、またはデータベースをセキュリティゾーンから標準コンパートメントに移動できないことを保証してもよい。
【0044】
データ耐久性セキュリティゾーンポリシー
このカテゴリにおけるポリシーの例は、セキュリティゾーンにおいて作成されるリソースに対して自動バックアップが定期的に実行されなければならないことを保証するポリシーを含む。例えば、このカテゴリのポリシーは、セキュリティゾーン内のデータベースバックアップを使用して、セキュリティゾーン内にないデータベースを作成することはできないこと、セキュリティゾーン内のデータベースをクローン化して、セキュリティゾーン内にないデータベースを作成することはできないこと、などを保証する。
【0045】
図2の説明に戻ると、前述のように、セキュリティゾーンポリシー管理システム116は、セキュリティゾーンのセット(202,204および206)およびそれらの関連付けられるセキュリティゾーンポリシー(208,210および212)から構成されるセキュリティゾーン情報120を含むセキュアフレームワークを管理する能力とともに構成されてもよい。セキュリティゾーンポリシー管理システム116は、コンパートメントをセキュリティゾーンに関連付ける、コンパートメントにリソースを追加する、セキュリティゾーンに関連付けられるセキュリティゾーンポリシーを閲覧する、コンパートメントを削除する、コンパートメント内にサブコンパートメントを作成する、コンパートメントを同じテナンシ内の異なる親コンパートメントに移動させる、セキュリティゾーンを最大セキュリティゾーンとして指定するなどのための能力をさらに含んでもよい。例えば、
図2に示される実施形態では、コンパートメントA1 216は、CSPI110の第1のテナントA121のユーザによって作成されてもよく、コンパートメントポリシー218のセットに関連付けられる。同様に、コンパートメントB1 220は、第2のテナントB122のユーザによって作成されてもよく、あるコンパートメントポリシーのセットに関連付けられる。さらに、この実施形態では、コンパートメントA1 216およびコンパートメントB1 220は両方ともセキュリティゾーン-1 202に関連付けられる。
【0046】
前述のように、コンパートメントの作成およびコンパートメントのセキュリティゾーンへの関連付けは、CSPI110の顧客またはテナントのユーザによって、ユーザのコンピューティングデバイスに接続されたコンソールUIを介して、APIを介して、またはCLI106を介して、セキュリティゾーンポリシー管理サブシステム116に要求を送信することによって、行われてもよい。ユーザの要求を受信すると、セキュリティゾーンポリシー管理サブシステム116は、コンパートメントを作成し、コンパートメントをセキュリティゾーンと関連付ける。コンパートメント(216または220)をセキュリティゾーン(例えば、セキュリティゾーン-1 202)に関連付けると、コンパートメントは、セキュリティゾーンに関連付けられるセキュリティゾーンポリシー(例えば、208)のセットを自動的に継承する。ある実施形態では、セキュリティゾーンに関連付けられるコンパートメントは、本明細書では、「セキュリティゾーンコンパートメント」と称される場合がある。次いで、ユーザは、セキュリティゾーンコンパートメントにリソースを追加してもよい。セキュリティゾーンコンパートメントに追加される任意のリソースは、コンパートメントに関連付けられるコンパートメントポリシーのセットに加えて、セキュリティゾーンに関連付けられるセキュリティゾーンポリシーに自動的に関連付けられる(すなわち、自動的に継承する)。
【0047】
図2に示す実施形態では、テナントA121のコンパートメントA1 216およびテナントB122のコンパートメントB1は、両方とも同じセキュリティゾーン-1 202に関連付けられている。いくつかの実現例では、テナントA121のコンパートメントA1 216およびテナントB122のコンパートメントB1 220は、異なるセキュリティゾーンに関連付けられてもよい。例えば、コンパートメントA1 216はセキュリティゾーン-1 202に関連付けられてもよく、コンパートメントB1 220は異なるセキュリティゾーン-2 204に関連付けられてもよい。加えて、
図2に示されるセキュリティゾーン情報120を含むセキュアフレームワークは、CSPI110の様々なテナントにアクセス可能であり、それらによって共有される汎用フレームワークとして示される。代替実施形態では、セキュリティゾーン情報120は、テナントに特定であってもよく、テナントごとに定義されてもよい。
図2に示されるセキュアなフレームワークは、単なる例であり、特許請求される実施形態の範囲を過度に限定することを意図するものではない。当業者は、多くの可能な変形、代替、および修正を認識するであろう。例えば、複数のコンパートメントが、あるテナントに関連付けられてもよく、複数のコンパートメントが、同じ/または異なるセキュリティゾーンに関連付けられてもよく、あるコンパートメントが、複数のセキュリティゾーンに関連付けられてもよい等、他の実現例も可能である。いくつかの実現例では、セキュリティゾーンおよびセキュリティゾーンポリシーを含むセキュリティゾーン情報120は、CSPI110の管理者またはCSPI110のテナントのユーザのいずれかによって定義されてもよい。
【0048】
いくつかの実現例では、
図2に示すセキュリティゾーンは、互いに階層的に関連してもよい。例えば、一例では、セキュリティゾーン-1 202およびセキュリティゾーン-2 204は階層的に関連してもよく、セキュリティゾーン-1 202は子セキュリティゾーン-2 204の親セキュリティゾーンである。この例では、コンパートメントA1 216がセキュリティゾーン-2 204に関連付けられている場合、それは、自動的にセキュリティゾーン-1 202に関連付けられ、したがってセキュリティゾーン-2 204に関連付けられるセキュリティゾーンポリシー210を継承する。この例を続けると、ある実現例では、セキュリティゾーン-1 202に関連付けられるセキュリティゾーンポリシーのセット208が「アクセス制限」カテゴリに属し、セキュリティゾーン-2 204に関連付けられるセキュリティゾーンポリシーのセット210が「データ暗号化」カテゴリに属する場合、リソースR1またはR2がコンパートメントA1 216に追加されると、そのリソースは、そのリソースが存在するコンパートメントA1 216に関連付けられるコンパートメントポリシーに加えて、「データ暗号化」セキュリティゾーンポリシーおよび「アクセス制限」セキュリティゾーンポリシーの両方に自動的に関連付けられる。コンパートメント内のリソースと1つ以上のセキュリティゾーンとの関連付けおよびそれらの関連付けられるセキュリティゾーンポリシーは、特定の動作がセキュリティゾーンポリシーによって定義されるセキュリティ要件に違反する場合、ユーザがその特定の動作をコンパートメント内に存在するリソースに対して実行することを禁止する。
【0049】
いくつかの例では、セキュリティゾーンポリシーによって定義されるセキュリティ要件は、コンパートメントに存在するリソース上で実行され得るある動作のセット全体を禁止してもよく、リソース上で実行され得るある動作のサブセットを禁止してもよく、またはリソース上で実行され得るある動作の特定のバージョン/構成を禁止してもよい。たとえば、動作のセット(O1...On)は、リソースR1に関連付けられるIAMポリシーに基づいて、リソースR1上で実行されることを許可されてもよい。リソースR1がコンパートメントA1 216に追加されると、R1に対して実行されることを許可されてもよい動作のセットは、そのコンパートメントに関連付けられるコンパートメントポリシーによって許可される動作のサブセット(O1、O2、O5)に低減されてもよい。したがって、あるコンパートメントに関連付けられるコンパートメントポリシーは、そのコンパートメント内に存在するリソースに対して実行されることを許可されてもよい動作のセットに対する第1のフィルタを表してもよい。
【0050】
コンパートメントA1 216が、あるセキュリティゾーン(例えば、セキュリティゾーン-1 202)に関連付けられると、それはさらに、そのセキュリティゾーンのセキュリティゾーンポリシー、およびそのセキュリティゾーンに階層的に関連する任意のセキュリティゾーンに関連付けられるセキュリティゾーンポリシーを継承する。上記の例に基づいて、R1に対して実行されることを許可されてもよい動作のセットは、ここで、セキュリティゾーンポリシーに基づいて動作のさらに小さいサブセット(たとえば、O1)にさらに低減されてもよい。したがって、セキュリティゾーンポリシーは、コンパートメント内に存在するリソースに対して実行されることを許可されてもよい動作のセットに対する第2のまたは追加のフィルタを表してもよい。セキュリティゾーンおよびその関連付けられるセキュリティポリシーのコンパートメントへの関連付けの例示的な図が
図5Bに示されている。
【0051】
いくつかの例では、セキュリティゾーンポリシーは、コンパートメントに存在するリソース上で実行され得る動作(たとえば、O1)の特定の構成を禁止してもよい。例として、コンパートメントA1 216に存在するR1に対するコンパートメントポリシーは、ユーザが、リソースR1を、それがパブリックネットワーク(すなわち、インターネット)から公然とアクセス可能であるように作成することを許可してもよく、すなわち、R1がパブリックインターネットプロトコル(IP)アドレスを使用して作成されることを許可してもよい。コンパートメントA1 216がセキュリティゾーン-1 202に関連付けられると、セキュリティゾーン-1 202に関連付けられるセキュリティゾーンポリシー208は、ユーザがパブリックIPアドレスを使用してR1を作成できることを禁止してもよい。別の例として、リソースがパブリックサブネットリソースを参照する/パブリックサブネットリソースにアタッチされる場合、セキュリティゾーンポリシーはユーザに「仮想マシン」リソースインスタンスを作成/起動させない場合があり、なぜならば、サブネットリソースは、ユーザがパブリックIPアドレスを使用するサブネットリソースから「仮想マシン」インスタンスを起動することを禁止するセキュリティゾーンポリシーに関連付けられている場合があるからである。
【0052】
いくつかの実現例では、あるコンパートメント(たとえば、コンパートメントA1 216)はまた、あるテナンシ内で作成された他のコンパートメントに階層的に関連してもよい。例えば、
図2に示される実施形態では、コンパートメントA1 216は、テナンシ内に作成される1つ以上のコンパートメント(すなわち、親コンパートメント)に階層的に関連してもよい(すなわち、子コンパートメントであってもよい)。あるリソース(例えば、R1)がコンパートメントA1 216に追加されると、そのリソースは、そのコンパートメントに関連付けられる1つ以上の親コンパートメントのコンパートメントポリシーに加えて、そのコンパートメントに関連付けられるコンパートメントポリシーを自動的に継承する。あるコンパートメントについてのコンパートメントポリシーの継承の例示的な図が
図5Aに示されている。
【0053】
図3は、ある実施形態による、
図1に示すCSPI内のセキュリティゾーンポリシー管理サブシステム116によって実行されるプロセス300の一例を示す。
図3に示す処理は、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組合せで実現されてもよい。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶されてもよい。
図3に提示され、以下で説明されるプロセス300は、例示的であり、非限定的であることが意図される。
図3は、特定のシーケンスまたは順序で発生する様々な処理ステップを示すが、これは限定することを意図するものではない。特定の代替実施形態では、それらのステップはなんらかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。
【0054】
図3に示される処理は、セキュリティゾーンポリシー管理サブシステム116がコンパートメントをセキュリティゾーンに関連付ける要求を受信すると、ブロック302で開始される。コンパートメントは、コンパートメントポリシーのセットに関連付けられてもよく、ゼロ以上のリソースを含んでもよい。ブロック304において、セキュリティゾーンポリシー管理サブシステム116は、コンパートメントをセキュリティゾーンに関連付ける。関連付けの結果として、コンパートメントは、セキュリティゾーンに関連付けられるセキュリティゾーンポリシーのセットおよびコンパートメントポリシーのセットに関連付けられるようになる。
【0055】
ブロック306において、セキュリティゾーンポリシー管理サブシステム116は、コンパートメントポリシーおよびセキュリティゾーンポリシーに基づいて、コンパートメント内の既存のリソース(もしあれば)へのアクセスを判断する。いくつかの例では、ブロック308において、セキュリティゾーンポリシー管理サブシステム116は、コンパートメントに新たなリソースを追加する要求を受信してもよい。ブロック310において、セキュリティゾーンポリシー管理サブシステム116は、コンパートメントポリシーおよびセキュリティゾーンポリシーに基づいて、新たなリソースへのアクセスを判断する。
【0056】
図4は、ある実施形態による、
図1に示すCSPI内のセキュリティゾーンポリシー検証サブシステムによって実行されるプロセス400の一例を示す。
図4に示される処理は、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶されてもよい。
図4に提示され、以下で説明されるプロセス400は、例示的であり、非限定的であることが意図される。
図4は、特定のシーケンスまたは順序で生じる様々な処理ステップを示すが、これは限定することを意図するものではない。特定の代替実施形態では、それらのステップはなんらかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。
【0057】
図4に示す処理は、ブロック402において、セキュリティゾーンポリシー検証サブシステム118がリソースに対する動作を実行する要求を受信すると開始される。たとえば、要求は、パブリックIPアドレスを使用してユーザのテナンシにおいて仮想マシンインスタンスを作成するために「インスタンス」(すなわち、仮想マシンインスタンス)上で実行されるべき動作(例えば、「インスタンス起動」動作)を識別してもよい。ブロック404において、セキュリティゾーンポリシー検証サブシステム118は、リソースに関連付けられるコンパートメントを判断する。ブロック406において、セキュリティゾーンポリシー検証サブシステム118は、ブロック404において識別されたコンパートメントに基づいて、リソースに適用可能なコンパートメントポリシーのセットを判断する。リソースに適用可能なコンパートメントポリシーは、コンパートメントに階層的に関連する1つ以上の親コンパートメントのコンパートメントポリシーに加えて、コンパートメントに関連付けられるコンパートメントポリシーを含んでもよい。ブロック408において、セキュリティゾーンポリシー検証サブシステム118は、ブロック406において判断されたコンパートメントポリシーに基づいて、リソースに対する動作が許可されるかどうかを判断する。例えば、リソースに適用可能なコンパートメントポリシーは、ユーザが、仮想マシンインスタンスを、それがパブリックネットワーク(すなわち、インターネット)から公然とアクセス可能であるように作成することを許可してもよく、すなわち、仮想マシンインスタンスがパブリックIPアドレスを使用して作成されることを可能にしてもよい。
【0058】
ブロック406において判断されたコンパートメントポリシーに基づいてリソースに対する動作を実行することができない場合、ブロック410において、セキュリティゾーンポリシー検証サブシステム118は、リソースに対する動作の実行を許可しない。ブロック406において判断されたコンパートメントポリシーに基づいてリソースに対する動作が実行され得る場合、ブロック412において、セキュリティゾーンポリシー検証サブシステム118は、ブロック404において判断されたコンパートメントがセキュリティゾーンに関連付けられているかどうかを判断する。コンパートメントがセキュリティゾーンに関連付けられていない場合、ブロック414において、セキュリティゾーンポリシー検証サブシステム118は、リソース上で動作が実行されることを可能にする。コンパートメントがセキュリティゾーンに関連付けられている場合、ブロック416において、セキュリティゾーンポリシー検証サブシステム118は、コンパートメントに関連付けられているセキュリティゾーンを判断する。ブロック418において、セキュリティゾーンポリシー検証サブシステム118は、ブロック416において判断されたセキュリティゾーンに基づいて、リソースに適用可能なセキュリティゾーンポリシーのセットを判断する。リソースに適用可能なセキュリティゾーンポリシーは、セキュリティゾーンに階層的に関連する1つ以上の親セキュリティゾーンのセキュリティゾーンポリシーに加えて、セキュリティゾーンに関連付けられるセキュリティゾーンポリシーを含んでもよい。ブロック420において、セキュリティゾーンポリシー検証サブシステム118は、418において判断されたセキュリティゾーンポリシーに基づいて、リソースに対する動作が許可されるかどうかを判断する。例えば、リソースに適用可能なセキュリティゾーンポリシーは、仮想インスタンスリソースがパブリックIPアドレスを使用して作成されることを許可しない場合がある。
【0059】
418において判断されたセキュリティゾーンポリシーに基づいてリソースに対する動作が許可されない場合、ブロック410において、セキュリティゾーンポリシー検証サブシステム118は、リソースに対する動作の実行を許可しない。418において判断されたポリシーに基づいてリソースに対する動作が許可される場合、ブロック414において、セキュリティゾーンポリシー検証サブシステム118は、リソースに対する動作の実行を許可する。いくつかの例では、ブロック414において実行される処理は、セキュリティゾーンポリシー検証サブシステム118が、要求のさらなる処理のためにCSPI内の下流サービスに要求を送信することを含んでもよい。ダウンストリームサービスによって実行される処理の結果として、セキュリティゾーンポリシー検証サブシステム118は、リソース上で動作が成功裏に実行できたことを示す結果をユーザに送信してもよい。
【0060】
図5Aは、ある実施形態による、
図1に示されるCSPIのテナントのユーザによって作成されるコンパートメントによるコンパートメントポリシーの継承の例示的な図である。
図5Aに示される例では、コンパートメントC1 502、コンパートメントC2 504、およびコンパートメントC3 506は、相互に階層的に関連し、コンパートメントC1 502は、コンパートメントC2 504の親コンパートメントであり、コンパートメントC2 504は、コンパートメントC3 506の親コンパートメントである。コンパートメントC1 502は、コンパートメント内に存在するリソースのセットに対して動作O1が実行されることを可能にするコンパートメントポリシーのセット508に関連付けられる。コンパートメントC2 504は、コンパートメント内に存在するリソースのセットに対して動作O2が実行されることを可能にするコンパートメントポリシーのセット510に関連付けられる。コンパートメントC2 504は、コンパートメントC1 502の子コンパートメントであるので、コンパートメントC1 502のコンパートメントポリシー508を自動的に継承する。コンパートメントC3 506は、コンパートメント内に存在するリソースのセットに対して動作O3が実行されることを可能にするコンパートメントポリシーのセット512に関連付けられる。コンパートメントC3 506は、コンパートメントC2 504およびコンパートメントC1 502の両方の子コンパートメントであるため、コンパートメントC2 504のコンパートメントポリシー510およびコンパートメントC1 502のコンパートメントポリシーを自動的に継承する。
【0061】
図5Bは、ある実施形態による、
図1に示すCSPIのテナントによって作成されたコンパートメントによる、セキュリティゾーンに関連付けられるセキュリティゾーンポリシーの継承の例示的な図である。
図5Bに示される例は、
図5Aに示されるコンパートメントC1 502、コンパートメントC2 504、およびコンパートメントC3 506を、それらの関連付けられるコンパートメントポリシー508,510および512とともに示す。特定の例では、あるコンパートメント(例えば、コンパートメントC3 506)が、あるセキュリティゾーン(セキュリティゾーン-1 514)に関連付けられると、セキュリティゾーン-1 514に関連付けられるセキュリティゾーンポリシー516がそのコンパートメントに適用される。コンパートメントC3 506とセキュリティゾーンポリシー516との関連付けに起因して、コンパートメント内に存在するリソースR1上で実行されることが当初許可された動作のセット(O1、O2、O3)は、ここで、動作のサブセット(O1)に低減される。したがって、セキュリティゾーンポリシーは、コンパートメントに関連付けられるコンパートメントポリシーに加えて、コンパートメントに存在するリソースのセットに対して施行されてもよいセキュリティポリシーの追加のレイヤを表す。セキュリティゾーンポリシーは、コンパートメント内に存在するリソースのセットに対して実行され得る、ある動作のセット全体を禁止してもよく、リソースのセットに対して実行され得る、ある動作のサブセットを禁止してもよく、またはその動作のある特定の構成/バージョンを禁止してもよい。
【0062】
いくつかの実現例では、上記の
図1~
図4、
図5A、および
図5Bで説明したセキュリティゾーンポリシー施行システムは、CSPIのユーザにセキュアリソースアクセスを提供するための集中型ポイントを提供するよう構成される集中型要求処理システムと協働してもよい。集中型要求処理システムは、セキュリティゾーンポリシー施行システムと併せて動作して、CSPIによって管理される様々なリソースに関連するセキュリティポリシーを管理および施行するための、集中型のロバストかつセキュアなフレームワークを提供してもよい。いくつかの例では、集中型要求処理システムによって実行される処理は、リソースが存在する1つ以上のコンパートメントに関連付けられるコンパートメントポリシーおよびセキュリティゾーンポリシーを評価して、要求において識別されるリソースに対して特定の動作を実行してもよいかどうかを判断することを含んでもよい。処理の結果、ポリシー(すなわち、コンパートメントポリシーまたはセキュリティゾーンポリシーである)に違反した場合には、ユーザは要求で識別された動作を実行することを許可されず、集中型要求処理システムは、ユーザは動作を実行することを許可されない、という情報をユーザに送信する。ある実施形態では、集中型要求処理システムは、以下の
図6に示されるように、CSPI110内の集中型アプリケーションプログラミングインターフェイス(API)要求処理システムによって実現されてもよい。集中型アプリケーションプログラミングインターフェイス(API)要求処理システムによって実行される実現例および処理に関する詳細は、
図6~
図12およびそれらの付随する説明を参照して以下で説明される。
【0063】
クラウドサービスプロバイダインフラストラクチャ(CSPI)における集中型アプリケーションプログラミングインターフェイス(API)要求処理システム
図6は、ある実施形態による、CSPIによって管理される種々のリソースへのセキュアアクセスを可能にするためにセキュアフレームワークを提供するために集中型API要求処理システムとセキュリティゾーンポリシー施行システムとを含むクラウドサービスプロバイダインフラストラクチャ(CSPI)110を備えるコンピューティング環境600の上位図である。前述のように、リソースは、限定ではないが、CSPI110によって分散環境内でホストされる、計算リソース、ネットワーキングリソース、オブジェクトストレージリソース、およびデータベースリソースを含んでもよい。CSPI110のテナントまたは顧客のユーザ102は、CSPI110によって提供されるリソースを使用して、自身のネットワーク(例えば、VCN620)を構築し、計算インスタンス(例えば、仮想マシン、ベアメタルインスタンス)などの1つ以上のリソース622A~622NをVCN620上に展開し得る。
【0064】
CSPIインフラストラクチャ110は、コンピュータ可読命令(たとえば、コード、プログラム)を実行して、CSPIによって管理される様々なリソースに関連するセキュリティポリシーを管理および実施するためのセキュアフレームワークを実現するよう、1つ以上のコンピューティングシステムによって実現されてもよい。
図6に示すように、CSPI110は、集中型API要求処理システム604、アイデンティティ管理システム606、コンパートメント識別子システム608、およびセキュリティゾーンポリシー施行システム112を含む様々なシステムおよびサブシステムを含む。集中型API要求処理システム604によってその処理の一部として使用または生成されるデータまたは情報の部分は、永続メモリデータストア610およびセキュリティゾーンポリシー施行システム112によるセキュリティゾーン情報(例えば、
図1に示す120)に記憶されてもよい。CSPI110は、1つ以上の通信ネットワークを介して集中型API要求処理システム604に通信可能に結合されてもよい1つ以上の下流サービス618A~618Nのセットをさらに備える。CSPI110の顧客のユーザ102は、顧客のVCN620にインフラストラクチャリソースをプロビジョニングまたは展開するために下流サービスを利用してもよい。
図1に示すシステムおよびサブシステムは、コンピューティングシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組合せを使用して実現されてもよい。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶されてもよい。
【0065】
集中型API要求処理システム604は、様々な異なる構成で実現されてもよい。
図6に示される実施形態では、集中型API要求処理システム604は、CSPI110内の1つ以上のサーバ上に実現され、その集中型セキュアリソースアクセスサービスは、サブスクリプションベースでクラウドサービスの加入者に提供されてもよい。
図6に示されるコンピューティング環境600は、単なる例であり、特許請求される実施形態の範囲を過度に限定することを意図するものではない。当業者は、多くの可能な変形、代替、および修正を認識するであろう。たとえば、いくつかの実現例では、CSPI110は、
図1に示されるものよりも多いかまたは少ないサブシステムを使用して実現され得、2つ以上のサブシステムを組み合わせてもよく、またはサブシステムの異なる構成もしくは配置を有してもよい。
【0066】
図6に示すように、CSPI110のユーザ102は、場合によっては1つ以上の通信ネットワークを介して、CSPI110に通信可能に結合されたコンピューティングデバイス104を使用して集中型API要求処理システム604と対話してもよい。コンピューティングデバイスは、限定はしないが、携帯電話、タブレット、デスクトップコンピュータなどを含む様々なタイプのものであってもよい。ユーザ102は、集中型API要求処理システム604およびセキュリティゾーンポリシー施行システム112によって提供されるサービスを利用してCSPI内の自身のリソースを安全に管理およびアクセスすることを望むCSPI110の顧客またはテナントを表してもよい。例えば、ユーザ102は、ユーザのコンピューティングデバイス(例えば、104)に接続されるコンソールユーザインターフェイス(UI)を使用して、アプリケーションプログラミングインターフェイス(API)を介して、またはコマンドラインインターフェイス(CLI)106を介して、集中型API要求処理システム604と対話して、CSPI110内におけるユーザのリソースを安全に管理し、それにアクセスしてもよい。例えば、コンソールUIは、ユーザが集中型API要求処理システム604と対話することを可能にするために集中型API要求処理システム604によって提供されるウェブベースのユーザインターフェイス(UI)(またはウェブベースのアプリケーション)であってもよい。
【0067】
ある実施形態では、ユーザは、ユーザのコンピューティングデバイス104に接続されたコンソールUIを介して、APIを介して、またはCLI106を介して、API要求602を集中型API要求処理システム604に送信してもよい。API要求602は、CSPI110によって管理されるリソース上で実行されるべき動作を識別してもよい。例として、API要求は、CSPIによって管理される「インスタンス」リソース(たとえば、仮想マシンインスタンス)上で実行される「インスタンス起動」動作を識別してもよい。API要求の他の例は、例えば、「サブネット」リソースを作成するための「サブネット作成」動作、「ブロックストレージボリューム」リソースを作成するための「ブロックストレージボリューム作成」動作などを含んでもよい。要求を受信すると、集中型API要求処理システム604は、要求内で識別されるリソースに関係のある任意のポリシー(例えば、コンパートメントポリシーおよびセキュリティゾーンポリシー)に違反することなく、API要求内で識別されるリソース上で動作が安全に実行され得るかどうかを判断するための処理を実行する。この処理に基づいて、集中型API要求処理システム604は、結果624を要求元コンピュータデバイス104に返す。結果134は、動作がリソース上で首尾よく実行できたという情報、ポリシー違反のために動作を実行することができなかったというメッセージ、および場合によっては結果に含まれる他の情報を含んでもよい。結果624は、例えば、ユーザのデバイス104に接続されたUI106を介してユーザに出力されてもよい。
【0068】
集中型API要求処理システム602によってその処理の一部として使用または生成されるデータまたは情報の部分は、永続メモリデータストア610に記憶されてもよい。いくつかの例では、永続メモリデータストアに記憶された情報は、セキュリティゾーン仕様612と、API-ダウンストリームサービスマッピング情報614と、API仕様616とを含んでもよい。セキュリティゾーン仕様612は、API要求において識別されるリソースに関連する情報、API要求においてリソース上で識別される動作を実行するために識別される下流サービス、API要求を評価するために必要とされるコンテキスト情報などを記憶してもよい。API-ダウンストリームサービスマッピング情報614は、API要求がCSPI内においてダウンストリームサービスにどのようにマッピングするかに関する情報を記憶してもよく、API仕様616は、ダウンストリームサービスによって利用されるAPIのセットに関する情報を含む。
【0069】
セキュリティゾーン仕様612、API-下流サービスマッピング情報614、およびAPI仕様616は、API要求内で識別されるリソースに対する動作がユーザによって実行されることを許可されるかどうかを評価するために、集中型API要求処理システム602によってその処理の一部として使用されてもよい。いくつかの例では、情報612,614および616は、集中型API要求処理システム604のユーザ(たとえば、管理者)によって、集中型API要求処理システム604によってCSPI110のユーザに提供される集中型セキュアリソースアクセスサービスの一部として、永続メモリデータストア610にアップロードされてもよい。
【0070】
いくつかの手法では、永続メモリデータストア610に記憶された情報612,614,または616を利用することに加えて、集中型API要求処理システム602はまた、アイデンティティ管理システム606、コンパートメント識別子システム608およびセキュリティゾーンポリシー施行システム112などの1つ以上のシステムと対話して、API要求において識別される動作がユーザによって実行されることを許可されるかどうかを評価するために必要とされる情報を取得してもよい。集中型API要求処理システム604によって実行される処理、ならびにCSPI110内のリソースへの安全なアクセスを提供するための様々なシステム606,608および112とのその対話のさらなる詳細は、
図7に示されるフローチャートおよびそれに付随する説明に関して以下で説明される。
【0071】
図7は、ある実施形態による、CSPIによって管理される様々なリソースへのセキュアアクセスをユーザに提供するために集中型API要求処理システムによって実行されるプロセス700の例を示す。
図7に示される処理は、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶されてもよい。
図7に提示され、以下で説明されるプロセス700は、例示的であり、非限定的であることが意図される。
図7は、特定のシーケンスまたは順序で生じる様々な処理ステップを示すが、これは限定することを意図するものではない。特定の代替実施形態では、それらのステップはなんらかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。
図6に示される実施形態等のある実施形態では、
図7に示される処理は、集中型API要求処理システム604によって行われてもよい。
【0072】
図7に示す実施形態では、ブロック702において、集中型API要求処理システム604がユーザからAPI要求(例えば、602)を受信すると、処理が開始される。API要求は、CSPIによって管理されるリソース上で実行されるべき動作を識別してもよい。例として、API要求は、CSPI110内のユーザのVCN620内で仮想マシンインスタンスを作成/起動するために「インスタンス」リソース(たとえば、仮想マシンインスタンス)上で実行されるべき「インスタンス起動」動作を識別してもよい。
【0073】
ブロック704で、集中型API要求処理システム604は、ユーザがブロック702で受信されたAPI要求を実行することを承認されるかどうかを判断するために、アイデンティティ管理システム606に命令(例えば、API承認要求)を送信する。アイデンティティ管理システム704によって実行される処理は、(例えば、ユーザのユーザ名およびパスワードに基づいて)ユーザを認証することと、ユーザを認証することに成功すると、ユーザがAPI要求において識別される動作を実行することを承認されるかどうかを判断することとを含んでもよい。たとえば、アイデンティティ管理システム704は、システムによって定義されたIAMポリシーを利用して、ユーザがAPI要求において識別される動作を実行することを承認されるかどうかを判断してもよい。
【0074】
ブロック706において、集中型API要求処理システム604は、アイデンティティ管理システム606によって実行される処理に基づいて、アイデンティティ管理システム606から応答を受信する。
【0075】
ブロック708において、集中型API要求処理システム604は、アイデンティティ管理システム606が、API要求において識別される動作を実行することをユーザに承認したかどうかを判断する。ユーザが動作の実行を承認されていない場合、ブロック710において、集中型API要求処理システム604は、API要求の処理の終了を示すエラーメッセージをユーザに送信する。
【0076】
アイデンティティ管理システム606が、API要求において識別される動作を実行することをユーザに承認した場合、ブロック712において、集中型API要求処理システム604は、API要求から、API要求自体において指名されるリソースを含む、(a)「プライマリリソース」を判断する。ブロック714において、集中型API要求処理システム604は、API要求から、プライマリリソースに関連付けられるリソースを含むゼロ以上の「セカンダリ」リソースまたは「関連」リソースを判断する。関連リソースは、要求自体において識別されなくてもよいが、API要求によって影響を受けるリソースを含んでもよい。例として、「インスタンス起動」動作を実行するAPI要求内のプライマリリソースは、「計算」リソースインスタンスを表してもよく、関連リソースは、プライマリリソース(すなわち、計算インスタンス)を起動するために使用される「ブートボリューム」、「イメージ」、または「サブネット」リソースであってもよい。代替の手法では、プライマリリソースおよびセカンダリリソースの両方がAPI要求に含まれてもよい。
【0077】
いくつかの例では、集中型API要求処理システム604は、ブロック714において、永続メモリデータストア610に記憶されたAPI仕様情報616から、API要求によって影響を受けるセカンダリリソースを判断してもよい。例えば、API仕様情報616から、集中型API要求処理システム604は、ブロック702で受信されたAPI要求に対応するAPI仕様を取得してもよい。API仕様は、プライマリリソースおよびAPI要求によって影響を受けるセカンダリリソースを、プライマリリソース上で実行されるべき動作とともに識別してもよい。他の手法では、集中型API要求処理システム604は、ブロック712において、データストア610に記憶されたセキュリティゾーン仕様612からの、API要求に対応するセキュリティゾーン仕様にアクセスすることに基づいて、プライマリリソースおよびAPI要求によって影響を受ける関連リソースを判断してもよい。API要求に対応するセキュリティゾーン仕様の例は、以下の
図10~
図12において詳細に説明される。
【0078】
ブロック716において、集中型API要求処理システム604は、ブロック712において判断されたプライマリリソースのコンパートメント情報を判断する。コンパートメント情報は、リソースが存在するコンパートメントのコンパートメント識別子と、リソースに適用可能なコンパートメントポリシーとを含んでもよい。リソースに適用可能なコンパートメントポリシーは、コンパートメントに階層的に関連する1つ以上の親コンパートメントのコンパートメントポリシーに加えて、コンパートメントに関連付けられるコンパートメントポリシーを含んでもよい。特定の例において、集中型API要求処理システム604は、コンパートメント情報を取得するためにコンパートメント識別子システム608に命令を送信してもよい。他の例では、集中型API要求処理システム604は、API要求に関連付けられるセキュリティゾーン仕様からコンパートメント情報を取得してもよい。
【0079】
ブロック718において、集中型API要求処理システム604は、ブロック714において判断されたセカンダリリソースに関連するコンテキスト情報を判断する。コンテキスト情報は、セカンダリリソースに関連付けられるコンパートメント情報、セカンダリリソースに関連付けられるリソース識別子、API要求を実行することを担う下流サービスなどを含んでもよい。たとえば、「インスタンス起動」動作を識別するAPI要求の場合、プライマリリソースは「インスタンス」リソースであると判断されてもよく、セカンダリリソースは、プライマリリソースを起動するために使用される「ブートボリューム」リソースであると判断されてもよい。コンテキスト情報は、ブートボリュームリソース識別子と、API要求において識別される「インスタンス起動」動作を実行するための下流サービス(たとえば、ブロックストレージサービス)とを含んでもよい。
【0080】
セカンダリリソースのコンテキスト情報を判断/取得するために、集中型API要求処理システム604によって様々な手法が利用されてもよい。例えば、一手法では、集中型API要求処理システム604は、永続メモリデータストア610に記憶されたセキュリティゾーン仕様情報612を利用して、セカンダリリソースに適用可能なコンテキスト情報を判断してもよい。別の手法では、集中型API要求処理システム604は、API-下流サービスマッピング情報614から直接、またはAPI要求を実行することを担う下流サービスから、リソースに適用可能なコンテキスト情報を判断または取得してもよい。
【0081】
ブロック720において、集中型API要求処理システム604は、プライマリリソースに関連付けられるコンパートメント情報およびセカンダリリソースに関連するコンテキスト情報を、処理のためにアイデンティティ管理システム606に送信する。アイデンティティ管理システム606によって実行される処理は、例えば、コンテキスト情報を使用して、プライマリリソースが存在するコンパートメントに関連付けられるコンパートメントポリシーに基づいて、プライマリリソースに対する動作が許可されるかどうかを判断することを含んでもよい。ブロック722において、集中型API要求処理システム604は、アイデンティティ管理システムから、API要求において識別される動作がリソース上で実行されることを許可されるかどうかの指示を受信する。
【0082】
ブロック724において、集中型API要求処理システム604は、動作がリソース上で実行されることを許可されるかどうかを判断する。動作が許可されない場合、ブロック710において、集中型API要求処理システム604は、API要求の処理の終了を示すエラーメッセージをユーザに送信する。
【0083】
API要求が許可される場合、処理はブロック726に進み、集中型API要求処理システム604は、プライマリリソースがセキュリティゾーンに関連付けられるコンパートメント内に存在するかどうかを判断する。コンパートメントとセキュリティゾーンとの関連付けに関する詳細は、
図2およびその付随する説明において詳細に説明される。プライマリリソースがセキュリティゾーンに関連付けられるコンパートメントに存在しない場合、処理はブロック734に進み、ユーザがAPI要求を実行することを許可する。
【0084】
プライマリリソースが、セキュリティゾーンに関連付けられるコンパートメント内に存在する場合、ブロック728において、集中型API要求処理システム604は、セキュリティゾーンポリシー施行システム112を呼び出して、動作がリソース上で実行されることを許可されるかどうかを判断する。
【0085】
ブロック730において、セキュリティゾーンポリシー施行システム112によって実行される処理に基づいて、集中型API要求処理システム604は、リソースに対する動作が許可されるかどうかの指示をセキュリティゾーンポリシー施行システム112から受信する。例えば、セキュリティゾーンポリシー施行システム112は、ブロック726において判断されたセキュリティゾーンに関連付けられるセキュリティゾーンポリシーを評価することに基づいて、リソースに対する動作が許可されると判断してもよい。リソースに対する動作が許可されるかどうかを判断するためにセキュリティゾーンポリシー施行システム112によって実行される処理のさらなる詳細は、
図8およびその付随する説明において説明される。
【0086】
ブロック732において、動作が許可されていないと判断された場合、ブロック710において、集中型API要求処理システム604は、API要求の処理の終了を示すエラーメッセージをユーザに送信する。ブロック732において、動作が許可されると判断された場合、ブロック734において、集中型API要求処理システム604は、API要求が実行されることを許可する。
【0087】
図8は、ある実施形態による、リソースに関連付けられるセキュリティゾーンポリシーのセットを評価することに基づいて、動作がリソース上で実行されることを許可されるかどうかを判断するために、セキュリティゾーンポリシー施行システム112によって実行される処理のプロセス800の一例を示す。
図8に示される処理は、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶されてもよい。
図8に提示され、以下で説明されるプロセス800は、例示的であり、非限定的であることが意図される。
図8は、特定のシーケンスまたは順序で生じる様々な処理ステップを示すが、これは限定することを意図するものではない。特定の代替実施形態では、それらのステップはなんらかの異なる順序で実行されてもよく、またはいくつかのステップが並行して実行されてもよい。ある実施形態では、
図8に示す処理は、
図7のブロック730においてセキュリティゾーンポリシー施行システム112によって実行される処理のさらなる詳細を示す。
【0088】
ある実施形態では、
図8に示す処理は、ブロック802において、セキュリティゾーンポリシー施行システム112が、あるリソースに対して実行されるべき動作およびそのリソースに関連付けられるコンパートメント(すなわち、コンパートメントid)を受信すると、開始される。ブロック804において、セキュリティゾーンポリシー施行システム112は、リソースに適用可能なセキュリティゾーンポリシーを判断する。リソースに適用可能なセキュリティゾーンポリシーは、セキュリティゾーンに階層的に関連する1つ以上の親セキュリティゾーンのセキュリティゾーンポリシーに加えて、セキュリティゾーンに関連付けられるセキュリティゾーンポリシーを含んでもよい。例えば、セキュリティゾーンポリシー施行システム112は、セキュリティゾーンポリシー施行システム112によって管理されるセキュリティゾーン情報(例えば、
図1に示す120)からセキュリティゾーンポリシーに関する情報を取得してもよい。
【0089】
ブロック806において、セキュリティゾーンポリシー施行システム112は、ブロック804において判断されたポリシーに基づいて、リソース上で動作が許可されるかどうかを判断するための評価を実行する。動作が許可される場合、ブロック808において、セキュリティゾーンポリシー施行システム112は、「動作は許可される」応答を集中型API要求処理システムに送信する。動作が許可されない場合、ブロック810において、セキュリティゾーンポリシー施行システム112は、「動作は許可されない」応答を集中型API要求処理システムに送信する。
【0090】
図9は、ある実施形態による、CSPIによって管理される種々のリソースへのユーザセキュアアクセスを提供するための、
図6に示される集中型API要求処理システムと1つ以上の他のシステムとの間の対話を示す、シーケンス図である。
図9に示す処理は、ユーザが集中型API要求処理システム604にAPI要求902を送信すると開始される。例として、API要求は、API要求において識別される「仮想マシン」リソースインスタンス上で実行されるべき動作(たとえば、「インスタンス起動」)を識別してもよい。要求を受信すると、集中型API要求処理システム604は、アイデンティティ管理システム606に承認要求(AuthZ要求)904を送信して、ユーザがAPI要求を実行することを承認されるかどうかを判断する。動作906において、アイデンティティ管理システム606は、ユーザがAPI要求を実行することを承認されるかどうかを示す応答(AuthZ応答)を集中型API要求処理システム604に返す。
【0091】
ユーザがAPI要求を実行するよう承認される場合、動作908において、集中型API要求処理システム604は、API要求において識別されるプライマリリソースのコンパートメント情報を取得/フェッチする命令をコンパートメント識別子システム608に送信する。「プライマリリソース」は、API要求自体において識別されるリソースを含んでもよい。例えば、ある「計算」リソースインスタンスが、「インスタンス起動」動作を実行するAPI要求におけるプライマリリソースであると判断されてもよい。前述のように、コンパートメント情報は、コンパートメント識別子と、リソースに適用可能なコンパートメントポリシーとを含んでもよい。動作910において、集中型API要求処理システム604は、コンパートメント識別子システム608からコンパートメント情報を受信する。
【0092】
動作912において、集中型API要求処理システム604は、API要求の実行を担当する下流サービスに要求を送信して、API要求によって影響を受けるセカンダリリソースに関連するコンテキスト情報を取得する。「セカンダリ」リソースまたは「関連」リソースは、プライマリリソースに関連付けられるリソースを含んでもよい。関連リソースは、要求自体において識別されなくてもよいが、API要求によって影響を受けるリソースを含んでもよい。例として、「インスタンス起動」動作を実行するAPI要求内のプライマリリソースは、「計算」リソースインスタンスを表してもよく、関連/セカンダリリソースは、プライマリリソース(すなわち、計算インスタンス)を起動するために使用される「ブートボリューム」、「イメージ」、または「サブネット」リソースであってもよい。例えば、「インスタンス起動」API要求の例に基づいて、ブートボリューム識別子(bootVolumeId)は、セカンダリ(関連)「ブートボリューム」リソースから「インスタンス」プライマリリソースを起動するために必要とされる、関連性のある入力(コンテキスト情報)であってもよい。いくつかの例では、集中型API要求処理システム604は、API要求において識別される動作を実行するよう構成される下流サービス(たとえば、計算サービス618A)からコンテキスト情報をフェッチしてもよい。他の例では、集中型API要求処理システム604は、永続メモリデータストア610に記憶されたAPI要求に関連するセキュリティゾーン仕様612からコンテキスト情報をフェッチしてもよい。API要求に関連するコンテキスト情報が指定および/または取得されてもよい方法を説明する追加の詳細は、
図10~
図12で説明されるセキュリティゾーン仕様に関連して説明される。
【0093】
動作914において、集中型API要求処理システム604は、API要求を処理するために必要とされるコンテキスト情報を受信する。いくつかの例では、ブロック916において、集中型API要求処理システム604は、API要求において識別されるプライマリリソースおよび関連リソースに基づいて、追加のコンテキスト変数を任意選択で準備してもよい。追加のコンテキスト変数は、例えば、API要求において識別されるリソースの現在の状態を取得することなどを含んでもよい。たとえば、ブートボリュームを計算インスタンスにアタッチする例では、追加のコンテキスト変数は、ブロックボリュームとともに使用されるべき暗号鍵に関連する情報を取得することを含んでもよい。
【0094】
動作918において、集中型API要求処理システム604は、コンパートメント情報およびコンテキスト情報を処理のためにアイデンティティ管理システム606に送信する。動作920において、アイデンティティ管理システム606は、コンパートメント情報およびコンテキスト情報を処理/評価して、リソース上での動作が許可されるかどうかを判断し、API要求内で識別される動作がリソース上で実行されることを許可されるかどうかの指示を集中型API要求処理システム604に送信する。API要求が許可されない場合、ある実施形態では、集中型API要求処理システム604は、動作922において、API要求の処理の終了を示すエラーメッセージをユーザに送信してもよい。
【0095】
924において、集中型API要求処理システム604は、プライマリリソースが、セキュリティゾーンに関連付けられるコンパートメント内に存在するかどうかを判断し、存在する場合、セキュリティゾーン情報(例えば、セキュリティゾーンid)をセキュリティゾーンポリシー施行システム112に送信する。動作926において、セキュリティゾーンポリシー施行システム112は、セキュリティゾーンに関連付けられるセキュリティゾーンポリシー(およびそのセキュリティゾーンに階層的に関連するセキュリティゾーンに関連付けられる任意のセキュリティゾーンポリシー)を評価することに基づいて、リソースに対する動作が許可されるかどうかを判断するための処理を実行する。その処理に基づいて、動作928において、セキュリティゾーンポリシー施行システム122は、集中型API要求処理システム604に応答を送信する。
【0096】
動作が許可されることを応答が示す場合、動作932において、集中型API要求処理システムは、さらなる処理のために、識別された下流サービス618A(例えば、計算サービス)にAPI要求を転送(ルーティング)する。API要求の処理成功の結果として、動作934において、下流サービス618は、動作の実行に成功したという下流応答を集中型API要求処理システム604に送信する。動作936において、集中型API要求処理システム604は、API要求が成功裏に実行されたという指示をユーザに送信する。API要求が許可されないことを応答が示す場合、動作930において、集中型API要求処理システム604は、ポリシー違反エラーを示すメッセージをユーザに送信し、ユーザのAPI要求の処理を終了する。
【0097】
図10は、ある実施形態による、
図6に示されるCSPI内の計算サービスを使用して計算インスタンスリソースを起動するための動作を識別するAPI要求に対応するセキュリティゾーン仕様の例である。図示の例では、「インスタンス起動」API要求に対するセキュリティゾーン仕様は、計算インスタンスリソース上で実行されるべき動作(すなわち、「LaunchInstance」)と、当該動作を実行する下流サービス(「計算サービス」)と、API要求において識別されるプライマリリソース(「インスタンス」)と、プライマリリソースに関連付けられる関連リソース(「ブートボリューム」、「イメージ」および「サブネット」)のセットとを識別する。
図10に示すように、一例では、セキュリティゾーン仕様内の「associationPredicate」パラメータを使用して、リソースが関連リソースであることを識別してもよい。例えば、セカンダリ「ブートボリューム」リソースからプライマリ「インスタンス」リソースを起動するとき、ブートボリュームリソースは、関連リソースであると見なされ、「イメージ」から「インスタンス」リソースを起動するとき、イメージリソースは、関連リソースであると見なされ、「サブネット」から「インスタンス」リソースを起動するとき、サブネットリソースは、関連リソースと見なされる等である。
【0098】
セキュリティゾーン仕様はさらに、プライマリリソースに関連付けられる関連リソースのコンテキスト情報をフェッチするよう構成される「contextFetchExpression」パラメータを含む。例えば、ブートボリューム識別子(bootVolumeId)は、「ブートボリューム」からインスタンスを起動するために必要とされる関連性のある入力(コンテキスト)であってもよく、イメージ識別子(imageId)は、「イメージ」からインスタンスを起動するために必要とされる関連性のある入力(コンテキスト)であってもよく、サブネット識別子(subnetId)は、「サブネット」からインスタンスを起動するために必要とされる関連性のある入力(コンテキスト)であってもよい。いくつかの例では、セキュリティゾーン仕様は、API要求において識別されるプライマリリソースおよび関連リソースに関連付けられるコンパートメント識別子を取得するために使用されてもよい「compartmentIdExpression」パラメータをさらに含む。
【0099】
図11は、ある実施形態による、CSPI内の計算サービスを使用して、ボリュームをインスタンスにアタッチし、ブートボリュームをインスタンスにアタッチし、インスタンスについてコンパートメント識別子を変更するための動作を識別するAPI要求に対応するセキュリティゾーン仕様の例である。図示の例では、「ボリュームをアタッチする」API要求に対するセキュリティゾーン仕様は、計算インスタンスリソース上で実行されるべき動作(すなわち、「AttachVolume」)と、当該動作を実行する下流サービス(「計算サービス」)と、API要求において識別されるプライマリリソース(「インスタンス」)と、プライマリリソースに関連付けられる関連リソース(「ボリューム」)とを識別する。「ボリュームをアタッチする」API要求に対するセキュリティゾーン仕様はまた、ボリュームをインスタンスにアタッチするために必要とされるコンテキスト情報(ボリュームid)と、API要求において識別されるプライマリリソースおよび関連リソースに関連付けられるコンパートメント識別子とを識別する。
【0100】
同様に、「ブートボリュームをアタッチする」API要求に対するセキュリティゾーン仕様は、インスタンスリソース上で実行されるべき動作(「AttachBootVolume」)と、当該動作を実行する下流サービス(「計算サービス」)と、API要求において識別されるプライマリリソース(「インスタンス」)と、プライマリリソースに関連付けられる関連リソース(「bootvolume」)とを識別する。「ブートボリュームをアタッチする」API要求に対するセキュリティゾーン仕様はまた、ボリュームをインスタンスにアタッチするために必要とされるコンテキスト情報(ブートボリュームid)と、API要求において識別されるプライマリリソースおよび関連リソースに関連付けられるコンパートメント識別子とを識別する。「インスタンスコンパートメントを変更する」API要求に対するセキュリティゾーン仕様は、インスタンスリソース上で実行される動作(「ChangeInstanceCompartment」)と、当該動作を実行する下流サービス(「計算サービス」)と、API要求内で識別されるプライマリリソース(「インスタンス」)とを識別する。「インスタンスコンパートメントを変更する」API要求に対するセキュリティゾーン仕様はまた、インスタンスのコンパートメントを変更するために必要とされるコンテキスト情報(リソースid)と、プライマリリソースに関連付けられAPI要求内で識別されるコンパートメント識別子とを識別する。
【0101】
図12は、ある実施形態による、CSPI内の仮想クラウドネットワークサービスを使用して、サブネットを作成し、インターネットゲートウェイを作成し、サブネットについてコンパートメント識別子を変更し、インターネットゲートウェイについてコンパートメント識別子を変更するための動作を識別するAPI要求に対応するセキュリティゾーン仕様の例である。図示の例では、「サブネットを作成する」API要求に対するセキュリティゾーン仕様は、サブネットリソース上で実行されるべき動作(「CreateSubnet」)と、当該動作を実行する下流サービス(「仮想ネットワークサービス」)と、API要求内で識別されるプライマリリソース(「サブネット」)とを識別する。「サブネットを作成する」API要求に対するセキュリティゾーン仕様はまた、サブネットを作成するために必要とされるコンテキスト情報と、プライマリリソースに関連付けられるコンパートメント識別子とを識別する。この例では、コンテキスト情報は、API要求におけるサブネット作成動作がサブネットを作成するためにパブリックIPを使用しているかどうかを判断するためのサブネットのIPアドレスに関する情報を含む。
【0102】
同様に、「インターネットゲートウェイを作成する」API要求に対するセキュリティゾーン仕様は、インターネットゲートウェイリソース上で実行されるべき動作(「CreateInternetGateway」)と、当該動作を実行する下流サービス(「仮想ネットワークサービス」)と、API要求内で識別されるプライマリリソース(「インターネットゲートウェイ」)とを識別する。「インターネットゲートウェイを作成する」API要求に対するセキュリティゾーン仕様はまた、API要求内で識別されるプライマリリソースに関連付けられるコンパートメント識別子も識別する。「サブネットコンパートメントを変更する」API要求に対するセキュリティゾーン仕様は、サブネットリソース上で実行されるべき動作(「ChangeSubnetCompartment」)と、当該動作を実行する下流サービス(「仮想ネットワークサービス」)と、API要求内で識別されるプライマリリソース(「サブネット」)と、プライマリリソースに関連付けられるコンパートメント識別子とを識別する。「インターネットゲートウェイコンパートメントを変更する」API要求に対するセキュリティゾーン仕様は、インターネットゲートウェイリソース上で実行されるべき動作(「ChangeInternetGatewayCompartment」)と、当該動作を実行する下流サービス(「仮想ネットワークサービス」)と、API要求内で識別されるプライマリリソース(「インターネットゲートウェイ」)と、プライマリリソースに関連付けられるコンパートメント識別子とを識別する。
【0103】
開示されるセキュリティゾーンポリシー施行システムによって実現されるクラウドベースのセキュリティソリューションは、企業のユーザに、クラウド内のユーザのリソースをセキュアに構成し、アクセスし、管理するためのロバストなセキュアフレームワークを提供する。前述のように、ある実施形態では、セキュリティゾーンポリシー施行システムは、CSPIによって管理される種々のリソースに関連するセキュリティポリシーを管理および施行するための集中型要求処理システムと併せて動作する。
【0104】
本開示で説明されるクラウドベースのセキュリティソリューションは、従来のクラウドベースのセキュリティサービスを上回るいくつかの技術的進歩および/または改善を提供する。開示されるセキュアフレームワークは、企業のユーザによってアクセスされるクラウド内のリソースのセット上で施行され得る、セキュリティゾーンおよびセキュリティゾーンポリシーのセットを備える。リソースのセットへのアクセスは、セキュリティゾーンポリシーのセットによって管理され、リソースにアクセスするユーザのアイデンティティに結び付けられない。したがって、IAMポリシーによってあるリソースにアクセスすること(および/またはリソースに対して動作を実行すること)が許可されるユーザが、そのリソースに関連付けられるセキュリティゾーンポリシーのセットに違反する場合、開示されるセキュリティソリューションよって、アクセスを拒否される場合がある。セキュリティゾーンポリシーは、特定のアクションまたは動作が企業の任意のユーザによってリソースのセットに対して実行されるのを許可しないことを目的とする「拒否セマンティクス」に基づく。これは、特定のユーザが企業内におけるそのユーザの役割/アイデンティティに基づいてリソース上で特定のアクションを実行することを許可してもよい既存のIAM承認ポリシーによって採用される従来の「許可セマンティクス」とは対照的である。
【0105】
例示的なアーキテクチャ
クラウドサービスという語は、概して、CSPによって提供されるシステムおよびインフラストラクチャ(クラウドインフラストラクチャ)を使用して、クラウドサービスプロバイダ(CSP)によってユーザまたは顧客にオンデマンドで(たとえば、サブスクリプションモデルを介して)利用可能にされるサービスを指すよう用いられる。典型的には、CSPのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは別個である。したがって、顧客は、CSPによって提供されるクラウドサービスを、そのサービスのために別個のハードウェアおよびソフトウェアリソースを購入する必要なく、利用することができる。クラウドサービスは、加入する顧客が、サービスを提供するために使用されるインフラストラクチャの入手に投資する必要なしに、顧客に、アプリケーションおよびコンピューティングリソースへの容易でスケーラブルなアクセスを提供するように設計される。
【0106】
様々なタイプのクラウドサービスを提供するいくつかのクラウドサービスプロバイダがある。ソフトウェア・アズ・ア・サービス(SaaS)、プラットフォーム・アズ・ア・サービス(PaaS)、インフラストラクチャ・アズ・ア・サービス(IaaS)などを含む様々な異なるタイプまたはモデルのクラウドサービスがある。
【0107】
顧客は、CSPによって提供される1つ以上のクラウドサービスに加入し得る。顧客は、個人、組織、企業などの任意の主体であり得る。顧客がCSPによって提供されるサービスに加入または登録すると、テナンシまたはアカウントがその顧客のために作成される。次いで、顧客は、このアカウントを介して、そのアカウントに関連付けられる1つ以上の加入したクラウドリソースにアクセスし得る。
【0108】
上述のように、サービスとしてのインフラストラクチャ(IaaS)は、1つの特定のタイプのクラウドコンピューティングである。IaaSは、パブリックネットワーク(たとえば、インターネット)を介して、仮想化されたコンピューティングリソースを提供するよう構成され得る。IaaSモデルでは、クラウドコンピューティングプロバイダは、インフラストラクチャ構成要素(例えば、サーバ、ストレージデバイス、ネットワークノード(例えば、ハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザ層)など)をホストし得る。場合によっては、IaaSプロバイダはまた、それらのインフラストラクチャ構成要素に付随するよう、様々なサービス(例えば、課金、監視、ロギング、負荷分散およびクラスタリングなど)を供給してもよい。したがって、これらのサービスはポリシー駆動型であってもよいので、IaaSユーザは、アプリケーションの可用性および性能を維持するために負荷分散を駆動するためにポリシーを実現することが可能であってもよい。
【0109】
いくつかの事例では、IaaS顧客は、インターネット等のワイドエリアネットワーク(WAN)を通してリソースおよびサービスにアクセスしてもよく、クラウドプロバイダのサービスを使用して、アプリケーションスタックの残りの要素をインストールしてもよい。たとえば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)を作成し、各VMにオペレーティングシステム(OS)をインストールし、データベースなどのミドルウェアを展開し、ワークロードおよびバックアップのためにストレージバケットを作成し、さらには企業ソフトウェアをそのVMにインストールし得る。次いで、顧客は、プロバイダのサービスを使用して、ネットワークトラフィックの均衡化、アプリケーション問題のトラブルシューティング、パフォーマンスの監視、災害復旧の管理などを含む様々な機能を実行し得る。
【0110】
ほとんどの場合、クラウドコンピューティングモデルは、クラウドプロバイダの参加を必要とすることになる。クラウドプロバイダは、IaaSの提供(例えば、申し出、レンタル、販売)に特化した第三者サービスであってもよいが、その必要はない。エンティティも、プライベートクラウドを展開することを選択し、インフラストラクチャサービスの独自のプロバイダになるかもしれない。
【0111】
いくつかの例では、IaaS展開は、新たなアプリケーションまたはアプリケーションの新たなバージョンを準備されたアプリケーションサーバなどに置くプロセスである。それはまた、サーバを準備する(例えば、ライブラリ、デーモンなどをインストールする)プロセスも、含んでもよい。これは、多くの場合、クラウドプロバイダによって、ハイパーバイザ層(例えば、サーバ、ストレージ、ネットワークハードウェア、および仮想化)の下で管理される。したがって、顧客は、(たとえば、(たとえば、オンデマンドで起動されてもよい)セルフサービス仮想マシン上での)ハンドリング(OS)、ミドルウェア、および/またはアプリケーション展開などを担ってもよい。
【0112】
いくつかの例では、IaaSプロビジョニングは、使用のためにコンピュータまたは仮想ホストを取得すること、および必要とされるライブラリまたはサービスをそれらにインストールすることさえも指してもよい。ほとんどの場合、展開はプロビジョニングを含まず、プロビジョニングは最初に実行される必要があってもよい。
【0113】
場合によっては、IaaSプロビジョニングには2つの異なる課題がある。第1に、何かが動作する前にインフラストラクチャの初期セットをプロビジョニングするという最初の課題がある。第2に、あらゆるものがプロビジョニングされると、既存のインフラストラクチャを発展させる(例えば、新たなサービスの追加、サービスの変更、サービスの削除など)という課題がある。場合によっては、これらの2つの課題は、インフラストラクチャの構成が宣言的に定義されることを可能にすることによって対処されてもよい。言い換えれば、インフラストラクチャ(例えば、どのような構成要素が必要とされるか、およびそれらがどのように対話するか)は、1つ以上の構成ファイルによって定義され得る。したがって、インフラストラクチャの全体的なトポロジー(例えば、どのようなリソースがどのリソースに依存するか、およびそれらが各々どのように協働するか)は、宣言的に記述され得る。いくつかの例では、トポロジーが定義されると、構成ファイルに記述される異なる構成要素を作成および/または管理するワークフローを生成し得る。
【0114】
いくつかの例では、インフラストラクチャは、多くの相互接続された要素を有してもよい。たとえば、コアネットワークとしても知られている1つ以上の仮想プライベートクラウド(VPC)(例えば、構成可能および/または共有されるコンピューティングリソースの、潜在的にオンデマンドのプール)があり得る。いくつかの例では、ネットワークのインバウンドおよび/またはアウトバウンドトラフィックがどのようにセットアップされるかを定義するためにプロビジョニングされる1つ以上のインバウンド/アウトバウンドトラフィックグループルール、および1つ以上の仮想マシン(VM)も、あり得る。ロードバランサ、データベースなどの他のインフラストラクチャ要素もプロビジョニングされてもよい。ますます多くのインフラストラクチャ要素が所望および/または追加されるにつれて、インフラストラクチャは漸進的に進化し得る。
【0115】
いくつかの例では、様々な仮想コンピューティング環境にわたるインフラストラクチャコードの展開を可能にするために、連続展開技法が採用されてもよい。加えて、説明される技法は、これらの環境内でインフラストラクチャ管理を可能にし得る。いくつかの例では、サービスチームが、1つ以上の、ただし多くの場合、多くの、異なる生産環境(例えば、時として世界全体に及ぶ、種々の異なる地理的場所にわたる)に展開されることが望まれるコードを書き込み得る。しかしながら、いくつかの例では、コードが展開されるインフラストラクチャは、最初にセットアップされなければならない。いくつかの事例では、プロビジョニングは、手動で行われ得、プロビジョニングツールを利用してリソースをプロビジョニングしてもよく、および/または、インフラストラクチャがプロビジョニングされると、展開ツールを利用してコードを展開してもよい。
【0116】
図13は、少なくとも1つの実施形態による、IaaSアーキテクチャの例示的なパターンを示すブロック
図1300である。サービスオペレータ1302は、仮想クラウドネットワーク(VCN)1306およびセキュアホストサブネット1308を含み得るセキュアホストテナンシ1304に通信可能に結合され得る。いくつかの例では、サービスオペレータ1302は、1つ以上のクライアントコンピューティングデバイスを用いていてもよく、それらは、ポータブルハンドヘルドデバイス(たとえば、iPhone(登録商標)、セルラー電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))またはウェアラブルデバイス(たとえばGoogle Glass(登録商標)頭部装着型ディスプレイ)であってもよく、Microsoft Windows Mobile(登録商標)などのソフトウェア、および/もしくは、iOS、Windows Phone、 Android、BlackBerry 8、Palm OSなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス(SMS)、Blackberry(登録商標)、または他のイネーブルにされた通信プロトコルである。代替的に、クライアントコンピューティングデバイスは、例として、様々なバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/もしくはLinux (登録商標)オペレーティングシステムを実行するパーソナルコンピュータならびに/またはラップトップコンピュータを含む汎用パーソナルコンピュータとし得る。クライアントコンピューティングデバイスは、例えばGoogle(登録商標) Chrome OSなどの様々GNU/Linuxオペレーティングシステムを含むがこれに限定されない、様々な市販のUNIX(登録商標)またはUNIXのようなオペレーティングシステムのいずれかを実行するワークステーションコンピュータとし得る。代替として、または加えて、クライアントコンピューティングデバイスは、VCN1306および/またはインターネットにアクセスし得るネットワークを介して通信することが可能な、シンクライアントコンピュータ、インターネット対応ゲームシステム(例えば、Kinect(登録商標)ジェスチャー入力装置を有するかまたは有さないMicrosoft Xboxゲームコンソール)、および/またはパーソナルメッセージングデバイス等の任意の他の電子デバイスであってもよい。
【0117】
VCN1306はローカルピアリングゲートウェイ(LPG)1310を含み得、それは、SSH VCN1312に含まれるLPG1310を介してセキュアシェル(SSH)VCN1312に通信可能に結合され得る。SSH VCN1312は、SSHサブネット1314を含み得、SSH VCN1312は、制御プレーンVCN1316に含まれるLPG1310を介して制御プレーンVCN1316に通信可能に結合され得る。また、SSH VCN1312は、LPG1310を介してデータプレーンVCN1318に通信可能に結合され得る。制御プレーンVCN1316およびデータプレーンVCN1318は、IaaSプロバイダによって所有および/または運用され得るサービステナンシ1319に含まれ得る。
【0118】
制御プレーンVCN1316は、周辺ネットワーク(例えば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)として機能する制御プレーンデミリタライズドゾーン(DMZ)層1320を含み得る。DMZベースのサーバは、制限された責任を有し、侵害が含まれるように保つのを助けてもよい。さらに、DMZ層1320は、1つ以上のロードバランサ(LB)サブネット1322と、アプリサブネット1326を含み得る制御プレーンアプリ層1324と、データベース(DB)サブネット1330(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含み得る制御プレーンデータ層1328とを含み得る。制御プレーンDMZ層1320に含まれるLBサブネット1322は、制御プレーンアプリ層1324に含まれるアプリサブネット1326と、制御プレーンVCN1316に含まれ得るインターネットゲートウェイ1334とに通信可能に結合され得、アプリサブネット1326は、制御プレーンデータ層1328に含まれるDBサブネット1330と、サービスゲートウェイ1336と、ネットワークアドレス変換(NAT)ゲートウェイ1338とに通信可能に結合され得る。制御プレーンVCN1316は、サービスゲートウェイ1336およびNATゲートウェイ1338を含み得る。
【0119】
制御プレーンVCN1316は、アプリサブネット1326を含み得るデータプレーンミラーアプリ層1340を含み得る。データプレーンミラーアプリ層1340に含まれるアプリサブネット1326は、計算インスタンス1344を実行し得る仮想ネットワークインターフェイスコントローラ(VNIC)1342を含み得る。計算インスタンス1344は、データプレーンミラーアプリ層1340のアプリサブネット1326を、データプレーンアプリ層1346に含まれ得るアプリサブネット1326に、通信可能に結合し得る。
【0120】
データプレーンVCN1318は、データプレーンアプリ層1346と、データプレーンDMZ層1348と、データプレーンデータ層1350とを含み得る。データプレーンDMZ層1348は、データプレーンアプリ層1346のアプリサブネット1326およびデータプレーンVCN1318のインターネットゲートウェイ1334に通信可能に結合され得るLBサブネット1322を含み得る。アプリサブネット1326は、データプレーンVCN1318のサービスゲートウェイ1336およびデータプレーンVCN1318のNATゲートウェイ1338に通信可能に結合され得る。データプレーンデータ層1350も、データプレーンアプリ層1346のアプリサブネット1326に通信可能に結合され得るDBサブネット1330を含み得る。
【0121】
制御プレーンVCN1316およびデータプレーンVCN1318のインターネットゲートウェイ1334は、パブリックインターネット1354に通信可能に結合され得るメタデータ管理サービス1352に通信可能に結合され得る。パブリックインターネット1354は、制御プレーンVCN1316およびデータプレーンVCN1318のNATゲートウェイ1338に通信可能に結合され得る。制御プレーンVCN1316およびデータプレーンVCN1318のサービスゲートウェイ1336は、クラウドサービス1356に通信可能に結合され得る。
【0122】
いくつかの例では、制御プレーンVCN1316またはデータプレーンVCN1318のサービスゲートウェイ1336は、パブリックインターネット1354を通過することなくクラウドサービス1356にアプリケーションプログラミングインターフェイス(API)呼び出しを行い得る。サービスゲートウェイ1336からのクラウドサービス1356へのAPI呼び出しは、一方向であり得、サービスゲートウェイ1336は、クラウドサービス1356にAPI呼び出しを行い得、クラウドサービス1356は、要求されたデータをサービスゲートウェイ1336に送信し得る。しかし、クラウドサービス1356は、サービスゲートウェイ1336へのAPI呼び出しを開始しなくてもよい。
【0123】
いくつかの例では、セキュアホストテナンシ1304は、サービステナンシ1319に直接接続することができ、サービステナンシは、そうでなければ隔離されてもよい。セキュアホストサブネット1308は、他の態様では隔離されたシステムを介して双方向通信を可能にしてもよいLPG1310を通じてSSHサブネット1314と通信し得る。セキュアホストサブネット1308をSSHサブネット1314に接続することは、セキュアホストサブネット1308にサービステナンシ1319内の他のエンティティへのアクセスを与えてもよい。
【0124】
制御プレーンVCN1316は、サービステナンシ1319のユーザが所望のリソースをセットアップまたは別様にプロビジョニングすることを可能にしてもよい。制御プレーンVCN1316内でプロビジョニングされる所望のリソースは、データプレーンVCN1318内で展開または別様に使用されてもよい。いくつかの例では、制御プレーンVCN1316は、データプレーンVCN1318から隔離され得、制御プレーンVCN1316のデータプレーンミラーアプリ層1340は、データプレーンミラーアプリ層1340およびデータプレーンアプリ層1346に含まれ得るVNIC1342を介して、データプレーンVCN1318のデータプレーンアプリ層1346と通信し得る。
【0125】
いくつかの例では、システムのユーザまたは顧客は、メタデータ管理サービス1352に要求を通信し得るパブリックインターネット1354を介して、要求、例えば、作成、読出、更新、または削除(CRUD)動作を行い得る。メタデータ管理サービス1352は、インターネットゲートウェイ1334を介して制御プレーンVCN1316に要求を通信し得る。この要求は、制御プレーンDMZ層1320に含まれるLBサブネット1322によって受信され得る。LBサブネット1322は、要求が有効であると判断してもよく、この判断に応答して、LBサブネット1322は、制御プレーンアプリ層1324に含まれるアプリサブネット1326に要求を送信し得る。要求が検証され、パブリックインターネット1354への呼び出しを必要とする場合、パブリックインターネット1354への呼び出しは、パブリックインターネット1354への呼び出しを行い得るNATゲートウェイ1338に送信されてもよい。要求によって記憶されることが望まれ得るメモリは、DBサブネット1330に記憶され得る。
【0126】
いくつかの例では、データプレーンミラーアプリ層1340は、制御プレーンVCN1316とデータプレーンVCN1318との間の直接通信を容易にし得る。たとえば、構成の変更、更新、または他の適切な修正が、データプレーンVCN1318に含まれるリソースに適用されることが望まれる場合がある。VNIC1342を介して、制御プレーンVCN1316は、データプレーンVCN1318に含まれるリソースと直接通信し得、それによって、構成に対する変更、更新、または他の好適な修正を実行し得る。
【0127】
いくつかの実施形態では、制御プレーンVCN1316およびデータプレーンVCN1318は、サービステナンシ1319に含まれ得る。この場合、システムのユーザまたは顧客は、制御プレーンVCN1316またはデータプレーンVCN1318のいずれかを所有または操作しなくてもよい。代わりに、IaaSプロバイダは、制御プレーンVCN1316およびデータプレーンVCN1318を所有または動作させてもよく、それらの両方はサービステナンシ1319に含まれてもよい。この実施形態は、ユーザまたは顧客が他のユーザまたは他の顧客のリソースと対話することを防止し得るネットワークの隔離を可能にし得る。また、この実施形態は、システムのユーザまたは顧客が、記憶のために、所望のレベルの脅威防止を有さない場合があるパブリックインターネット1354に依存する必要なく、データベースをプライベートに記憶することを可能にしてもよい。
【0128】
他の実施形態では、制御プレーンVCN1316に含まれるLBサブネット1322は、サービスゲートウェイ1336から信号を受信するよう構成され得る。この実施形態では、制御プレーンVCN1316およびデータプレーンVCN1318は、パブリックインターネット1354を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成されてもよい。IaaSプロバイダの顧客は、顧客が使用するデータベースがIaaSプロバイダによって制御されてもよく、パブリックインターネット1354から隔離されてもよいサービステナンシ1319上に記憶されてもよいため、この実施形態を所望し得る。
【0129】
図14は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図1400である。サービスオペレータ1402(例えば、
図13のサービスオペレータ1302)は、仮想クラウドネットワーク(VCN)1406(例えば、
図13のVCN1306)およびセキュアホストサブネット1408(たとえば、
図13のセキュアホストサブネット1308)を含み得るセキュアホストテナンシ1404(例えば、
図13のセキュアホストテナンシ1304)に通信可能に結合され得る。VCN1406は、SSH VCN1412に含まれるLPG1310を介してセキュアシェル(SSH)VCN1412(例えば、
図13のSSH VCN1312)に通信可能に結合され得るローカルピアリングゲートウェイ(LPG)1410(例えば、
図13のLPG1310)を含み得る。SSH VCN1412は、SSHサブネット1414(たとえば、
図13のSSHサブネット1314)を含み得、SSH VCN1412は、制御プレーンVCN1416に含まれるLPG1410を介して制御プレーンVCN1416(例えば、
図13の制御プレーンVCN1316)に通信可能に結合され得る。制御プレーンVCN1416は、サービステナンシ1419(例えば、
図13のサービステナンシ1319)に含まれ得、データプレーンVCN1418(例えば、
図13のデータプレーンVCN1318)は、システムのユーザまたは顧客によって所有または運用されてもよい顧客テナンシ1421に含まれ得る。
【0130】
制御プレーンVCN1416は、LBサブネット1422(たとえば、
図13のLBサブネット1322)を含み得る制御プレーンDMZ層1420(例えば、
図13の制御プレーンDMZ層1320)と、アプリサブネット1426(例えば、
図13のアプリサブネット1326)を含み得る制御プレーンアプリ層1424(例えば、
図13の制御プレーンアプリ層1324)と、(たとえば、
図13のDBサブネット1330に類似した)データベース(DB)サブネット1430を含み得る制御プレーンデータ層1428(例えば、
図13の制御プレーンデータ層1328)とを含み得る。制御プレーンDMZ層1420に含まれるLBサブネット1422は、制御プレーンアプリ層1424に含まれるアプリサブネット1426と、制御プレーンVCN1416に含まれ得るインターネットゲートウェイ1434(例えば、
図13のインターネットゲートウェイ1334)とに通信可能に結合され得、アプリサブネット1426は、制御プレーンデータ層1428に含まれるDBサブネット1430と、サービスゲートウェイ1436(例えば、
図13のサービスゲートウェイ)と、ネットワークアドレス変換(NAT)ゲートウェイ1438(例えば、
図13のNATゲートウェイ1338)とに通信可能に結合され得る。制御プレーンVCN1416は、サービスゲートウェイ1436およびNATゲートウェイ1438を含み得る。
【0131】
制御プレーンVCN1416は、アプリサブネット1426を含み得るデータプレーンミラーアプリ層1440(例えば、
図13のデータプレーンミラーアプリ層1340)を含み得る。データプレーンミラーアプリ層1440に含まれるアプリサブネット1426は、計算インスタンス1444(例えば、
図13の計算インスタンス1344と同様)を実行し得る仮想ネットワークインターフェイスコントローラ(VNIC)1442(例えば、1342のVNIC)を含み得る。計算インスタンス1444は、データプレーンミラーアプリ層1440に含まれるVNIC1442とデータプレーンアプリ層1446に含まれるVNIC1442とを介して、データプレーンミラーアプリ層1440のアプリサブネット1426と、データプレーンアプリ層1446(例えば、
図13のデータプレーンアプリ層1346)に含まれ得るアプリサブネット1426との間の通信を容易にし得る。
【0132】
制御プレーンVCN1416に含まれるインターネットゲートウェイ1434は、パブリックインターネット1454(例えば、
図13のパブリックインターネット1354)に通信可能に結合され得るメタデータ管理サービス1452(例えば、
図13のメタデータ管理サービス1352)に通信可能に結合され得る。パブリックインターネット1454は、制御プレーンVCN1416に含まれるNATゲートウェイ1438に通信可能に結合され得る。制御プレーンVCN1416に含まれるサービスゲートウェイ1436は、クラウドサービス1456(例えば、
図13のクラウドサービス1356)に通信可能に結合され得る。
【0133】
いくつかの例では、データプレーンVCN1418は、顧客テナンシ1421に含まれ得る。この場合、IaaSプロバイダは、顧客ごとに制御プレーンVCN1416を提供してもよく、IaaSプロバイダは、顧客ごとに、サービステナンシ1419に含まれる固有の計算インスタンス1444をセットアップしてもよい。各計算インスタンス1444は、サービステナンシ1419に含まれる制御プレーンVCN1416と顧客テナンシ1421に含まれるデータプレーンVCN1418との間の通信を可能にしてもよい。計算インスタンス1444は、サービステナンシ1419に含まれる制御プレーンVCN1416においてプロビジョニングされるリソースが、顧客テナンシ1421に含まれるデータプレーンVCN1418において展開されるかまたは別様に使用されることを可能にしてもよい。
【0134】
他の例では、IaaSプロバイダの顧客は、顧客テナンシ1421に在住するデータベースを有してもよい。この例では、制御プレーンVCN1416は、アプリサブネット1426を含み得るデータプレーンミラーアプリ層1440を含み得る。データプレーンミラーアプリケーション層1440は、データプレーンVCN1418内に存在し得るが、データプレーンミラーアプリケーション層1440は、データプレーンVCN1418内に在住しなくてもよい。すなわち、データプレーンミラーアプリケーション層1440は、顧客テナンシ1421へのアクセスを有してもよいが、データプレーンミラーアプリケーション層1440は、データプレーンVCN1418内に存在しなくてもよく、またはIaaSプロバイダの顧客によって所有もしくは運用されなくてもよい。データプレーンミラーアプリケーション層1440は、データプレーンVCN1418への呼び出しを行うように構成されてもよいが、制御プレーンVCN1416に含まれる任意のエンティティへの呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN1416内にプロビジョニングされるデータプレーンVCN1418内のリソースを展開または別様に使用することを所望してもよく、データプレーンミラーアプリケーション層1440は、顧客のリソースの所望の展開または他の使用を容易にし得る。
【0135】
いくつかの実施形態では、IaaSプロバイダの顧客は、フィルタをデータプレーンVCN1418に適用し得る。この実施形態では、顧客は、データプレーンVCN1418が何にアクセスできるかを判断し得、顧客は、データプレーンVCN1418からパブリックインターネット1454へのアクセスを制限してもよい。IaaSプロバイダは、データプレーンVCN1418の任意の外部ネットワークもしくはデータベースへのアクセスをフィルタ処理するかまたは別様に制御することができなくてもよい。顧客テナンシ1421に含まれるデータプレーンVCN1418上に顧客によってフィルタおよび制御を適用することは、データプレーンVCN1418を他の顧客およびパブリックインターネット1454から隔離するのを助けることができる。
【0136】
いくつかの実施形態では、クラウドサービス1456は、パブリックインターネット1454上、制御プレーンVCN1416上、またはデータプレーンVCN1418上に存在しない場合があるサービスにアクセスするために、サービスゲートウェイ1436によって呼び出され得る。クラウドサービス1456と制御プレーンVCN1416またはデータプレーンVCN1418との間の接続は、ライブまたは連続的でなくてもよい。クラウドサービス1456は、IaaSプロバイダによって所有または運営される異なるネットワーク上に存在してもよい。クラウドサービス1456は、サービスゲートウェイ1436から呼び出しを受信するよう構成されてもよく、パブリックインターネット1454から呼び出しを受信しないように構成されてもよい。いくつかのクラウドサービス1456は、他のクラウドサービス1456から隔離されてもよく、制御プレーンVCN1416は、制御プレーンVCN1416と同じ領域にない場合があるクラウドサービス1456から隔離されてもよい。たとえば、制御プレーンVCN1416は「領域1」に位置してもよく、クラウドサービス「展開13」は領域1および「領域2」に位置してもよい。展開13への呼び出しが、領域1に位置する制御プレーンVCN1416に含まれるサービスゲートウェイ1436によって行われる場合、その呼び出しは、領域1内の展開13に伝送されてもよい。この例では、制御プレーンVCN1416、または領域1の展開13は、領域2の展開13に通信可能に結合されなくてもよく、またはそうでなければ通信していなくてもよい。
【0137】
図15は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図1500である。サービスオペレータ1502(例えば、
図13のサービスオペレータ1302)は、仮想クラウドネットワーク(VCN)1506(例えば、
図13のVCN1306)およびセキュアホストサブネット1508(たとえば、
図13のセキュアホストサブネット1308)を含み得るセキュアホストテナンシ1504(例えば、
図13のセキュアホストテナンシ1304)に通信可能に結合され得る。VCN1506は、LPG1510(例えば、
図13のLPG1310)を含み得、それは、SSH VCN1512(例えば、
図13のSSH VCN1312)に含まれるLPG1510を介してSSH VCN1512に通信可能に結合され得る。SSH VCN1512は、SSHサブネット1514(たとえば、
図13のSSHサブネット1314)を含み得、SSH VCN1512は、制御プレーンVCN1516(例えば、
図13の制御プレーンVCN1316)に含まれるLPG1510を介して制御プレーンVCN1516に通信可能に結合され得、データプレーンVCN1518(例えば、
図13のデータプレーン1318)に含まれるLPG1510を介してデータプレーンVCN1518通信可能に結合され得る。制御プレーンVCN1516およびデータプレーンVCN1518は、サービステナンシ1519(例えば、
図13のサービステナンシ1319)に含まれ得る。
【0138】
制御プレーンVCN1516は、ロードバランサ(LB)サブネット1522(たとえば、
図13のLBサブネット1322)を含み得る制御プレーンDMZ層1520(例えば、
図13の制御プレーンDMZ層1320)と、(たとえば、
図13のアプリサブネット1326に類似している)アプリサブネット1526を含み得る制御プレーンアプリ層1524(例えば、
図13の制御プレーンアプリ層1324)と、DBサブネット1530を含み得る制御プレーンデータ層1528(例えば、
図13の制御プレーンデータ層1328)とを含み得る。制御プレーンDMZ層1520に含まれるLBサブネット1522は、制御プレーンアプリ層1524に含まれるアプリサブネット1526と、制御プレーンVCN1516に含まれ得るインターネットゲートウェイ1534(例えば、
図13のインターネットゲートウェイ1334)とに通信可能に結合され得、アプリサブネット1526は、制御プレーンデータ層1528に含まれるDBサブネット1530に、ならびにサービスゲートウェイ1536(例えば、
図13のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1538(例えば、
図13のNATゲートウェイ1338)に通信可能に結合され得る。制御プレーンVCN1516は、サービスゲートウェイ1536およびNATゲートウェイ1538を含み得る。
【0139】
データプレーンVCN1518は、データプレーンアプリ層1546(例えば、
図13のデータプレーンアプリ層1346)、データプレーンDMZ層1548(例えば、
図13のデータプレーンDMZ層1348)、およびデータプレーンデータ層1550(例えば、
図13のデータプレーンデータ層1350)を含み得る。データプレーンDMZ層1548は、データプレーンアプリ層1546の信頼できるアプリサブネット1560および信頼できないアプリサブネット1562と、データプレーンVCN1518に含まれるインターネットゲートウェイ1534とに通信可能に結合され得るLBサブネット1522を含み得る。信頼できるアプリサブネット1560は、データプレーンVCN1518に含まれるサービスゲートウェイ1536と、データプレーンVCN1518に含まれるNATゲートウェイ1538と、データプレーンデータ層1550に含まれるDBサブネット1530とに通信可能に結合され得る。信頼できないアプリサブネット1562は、データプレーンVCN1518に含まれるサービスゲートウェイ1536と、データプレーンデータ層1550に含まれるDBサブネット1530とに通信可能に結合され得る。データプレーンデータ層1550は、データプレーンVCN1518に含まれるサービスゲートウェイ1536に通信可能に結合され得るDBサブネット1530を含み得る。
【0140】
信頼できないアプリサブネット1562は、テナント仮想マシン(VM)1566(1)~(N)に通信可能に結合され得る1つ以上のプライマリVNIC1564(1)~(N)を含み得る。各テナントVM1566(1)~(N)は、それぞれの顧客テナンシ1570(1)~(N)に含まれ得るそれぞれのコンテナエグレスVCN1568(1)~(N)に含まれ得るそれぞれのアプリサブネット1567(1)~(N)に通信可能に結合され得る。それぞれのセカンダリVNIC1572(1)~(N)は、データプレーンVCN1518に含まれる信頼できないアプリサブネット1562とコンテナエグレスVCN1568(1)~(N)に含まれるアプリサブネットとの間の通信を容易にし得る。各コンテナエグレスVCN1568(1)~(N)は、パブリックインターネット1554(例えば、
図13のパブリックインターネット1354)に通信可能に結合され得るNATゲートウェイ1538を含み得る。
【0141】
制御プレーンVCN1516に含まれ、データプレーンVCN1518に含まれるインターネットゲートウェイ1534は、パブリックインターネット1554に通信可能に結合され得るメタデータ管理サービス1552(例えば、
図13のメタデータ管理システム1352)に通信可能に結合され得る。パブリックインターネット1554は、制御プレーンVCN1516に含まれ、データプレーンVCN1518に含まれるNATゲートウェイ1538に通信可能に結合され得る。制御プレーンVCN1516に含まれ、データプレーンVCN1518に含まれるサービスゲートウェイ1536は、クラウドサービス1556に通信可能に結合され得る。
【0142】
いくつかの実施形態では、データプレーンVCN1518は、顧客テナンシ1570と統合され得る。この統合は、コードを実行するときにサポートを望む場合がある場合などのいくつかの場合において、IaaSプロバイダの顧客にとって有用または望ましくあり得る。顧客は、破壊的である場合があるか、他の顧客リソースと通信する場合があるか、またはそうでなければ望ましくない影響を引き起こす場合がある、実行すべきコードを与える場合がある。これに応答して、IaaSプロバイダは、顧客によってIaaSプロバイダに与えられたコードを実行するかどうかを判断してもよい。
【0143】
いくつかの例では、IaaSプロバイダの顧客は、IaaSプロバイダへの一時的なネットワークアクセスを許可し、ある機能がデータプレーン層アプリ1546にアタッチされるよう要求する場合がある。機能を実行するためのコードは、VM1566(1)~(N)において実行されてもよく、データプレーンVCN1518上の他のどこかで動作するように構成されなくてもよい。各VM1566(1)~(N)は、1つの顧客テナンシ1570に接続されてもよい。VM1566(1)~(N)に含まれるそれぞれのコンテナ1571(1)~(N)は、コードを実行するよう構成されてもよい。この場合、二重隔離があり得(例えば、コンテナ1571(1)~(N)は、コードを実行し、コンテナ1571(1)~(N)は、信頼できないアプリサブネット1562に含まれる少なくともVM1566(1)~(N)に含まれてもよい)、これは、正しくないかまたはそうでなければ望ましくないコードが、IaaSプロバイダのネットワークを損傷すること、または異なる顧客のネットワークを損傷することを防ぐのを助けてもよい。コンテナ1571(1)~(N)は、顧客テナンシ1570に通信可能に結合されてもよく、顧客テナンシ1570との間でデータを送信または受信するよう構成されてもよい。コンテナ1571(1)~(N)は、データプレーンVCN1518内の任意の他のエンティティとの間でデータを送信または受信するよう構成されなくてもよい。コードの実行が完了すると、IaaSプロバイダは、コンテナ1571(1)~(N)をキルするかまたは別様に廃棄してもよい。
【0144】
いくつかの実施形態では、信頼できるアプリサブネット1560は、IaaSプロバイダによって所有または操作されてもよいコードを実行してもよい。この実施形態では、信頼できるアプリサブネット1560は、DBサブネット1530に通信可能に結合されてもよく、DBサブネット1530内でCRUD動作を実行するよう構成されてもよい。信頼できないアプリサブネット1562は、DBサブネット1530に通信可能に結合されてもよいが、この実施形態では、信頼できないアプリサブネットは、DBサブネット1530内で読出動作を実行するよう構成されてもよい。各顧客のVM1566(1)~(N)に含まれ得、その顧客からのコードを実行してもよいコンテナ1571(1)~(N)は、DBサブネット1530と通信可能に結合されなくてもよい。
【0145】
他の実施形態では、制御プレーンVCN1516およびデータプレーンVCN1518は、直接通信可能に結合されなくてもよい。この実施形態では、制御プレーンVCN1516とデータプレーンVCN1518との間に直接通信がなくてもよい。しかしながら、通信は、少なくとも1つの方法を通して間接的に起こり得る。制御プレーンVCN1516とデータプレーンVCN1518との間の通信を容易にし得るLPG1510が、IaaSプロバイダによって確立されてもよい。別の例では、制御プレーンVCN1516またはデータプレーンVCN1518は、サービスゲートウェイ1536を介してクラウドサービス1556に呼び出しを行い得る。例えば、制御プレーンVCN1516からのクラウドサービス1556への呼び出しは、データプレーンVCN1518と通信し得るサービスの要求を含み得る。
【0146】
図16は、少なくとも1つの実施形態による、IaaSアーキテクチャの別の例示的なパターンを示すブロック
図1600である。サービスオペレータ1602(例えば、
図13のサービスオペレータ1302)は、仮想クラウドネットワーク(VCN)1606(例えば、
図13のVCN1306)およびセキュアホストサブネット1608(たとえば、
図13のセキュアホストサブネット1308)を含み得るセキュアホストテナンシ1604(例えば、
図13のセキュアホストテナンシ1304)に通信可能に結合され得る。VCN1606は、LPG1610(例えば、
図13のLPG1310)を含み得、それは、SSH VCN1612(例えば、
図13のSSH VCN1312)に含まれるLPG1610を介してSSH VCN1612に通信可能に結合され得る。SSH VCN1612は、SSHサブネット1614(たとえば、
図13のSSHサブネット1314)を含み得、SSH VCN1612は、制御プレーンVCN1616(例えば、
図13の制御プレーンVCN1316)に含まれるLPG1610を介して制御プレーンVCN1616に通信可能に結合され得、データプレーンVCN1618(例えば、
図13のデータプレーン1318)に含まれるLPG1610を介してデータプレーンVCN1618に通信可能に結合され得る。制御プレーンVCN1616およびデータプレーンVCN1618は、サービステナンシ1619(例えば、
図13のサービステナンシ1319)に含まれ得る。
【0147】
制御プレーンVCN1616は、LBサブネット1622(たとえば、
図13のLBサブネット1322)を含み得る制御プレーンDMZ層1620(例えば、
図13の制御プレーンDMZ層1320)と、アプリサブネット1626(例えば、
図13のアプリサブネット1326)を含み得る制御プレーンアプリ層1624(例えば、
図13の制御プレーンアプリ層1324)と、DBサブネット1630(例えば、
図15のDBサブネット1530)を含み得る制御プレーンデータ層1628(例えば、
図13の制御プレーンデータ層1328)とを含み得る。制御プレーンDMZ層1620に含まれるLBサブネット1622は、制御プレーンアプリ層1624に含まれるアプリサブネット1626と、制御プレーンVCN1616に含まれ得るインターネットゲートウェイ1634(例えば、
図13のインターネットゲートウェイ1334)とに通信可能に結合され得、アプリサブネット1626は、制御プレーンデータ層1628に含まれるDBサブネット1630と、サービスゲートウェイ1636(例えば、
図13のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ1638(例えば、
図13のNATゲートウェイ1338)とに通信可能に結合され得る。制御プレーンVCN1616は、サービスゲートウェイ1636およびNATゲートウェイ1638を含み得る。
【0148】
データプレーンVCN1618は、データプレーンアプリ層1646(例えば、
図13のデータプレーンアプリ層1346)、データプレーンDMZ層1648(例えば、
図13のデータプレーンDMZ層1348)、およびデータプレーンデータ層1650(例えば、
図13のデータプレーンデータ層1350)を含み得る。データプレーンDMZ層1648は、データプレーンアプリ層1646の信頼できるアプリサブネット1660(例えば、
図15の信頼できるアプリサブネット1560)および信頼できないアプリサブネット1662(例えば、
図15の信頼できないアプリサブネット1562)と、データプレーンVCN1618に含まれるインターネットゲートウェイ1634とに通信可能に結合され得るLBサブネット1622を含み得る。信頼できるアプリサブネット1660は、データプレーンVCN1618に含まれるサービスゲートウェイ1636と、データプレーンVCN1618に含まれるNATゲートウェイ1638と、データプレーンデータ層1650に含まれるDBサブネット1630とに通信可能に結合され得る。信頼できないアプリサブネット1662は、データプレーンVCN1618に含まれるサービスゲートウェイ1636と、データプレーンデータ層1650に含まれるDBサブネット1630とに通信可能に結合され得る。データプレーンデータ層1650は、データプレーンVCN1618に含まれるサービスゲートウェイ1636に通信可能に結合され得るDBサブネット1630を含み得る。
【0149】
信頼できないアプリサブネット1662は、信頼できないアプリサブネット1662内に常駐するテナント仮想マシン(VM)1666(1)~(N)に通信可能に結合され得るプライマリVNIC1664(1)~(N)を含み得る。各テナントVM1666(1)~(N)は、それぞれのコンテナ1667(1)~(N)においてコードを実行し得、コンテナエグレスVCN1668に含まれ得るデータプレーンアプリ層1646に含まれ得るアプリサブネット1626に通信可能に結合され得る。それぞれのセカンダリVNIC1672(1)~(N)は、データプレーンVCN1618に含まれる信頼できないアプリサブネット1662とコンテナエグレスVCN1668に含まれるアプリサブネットとの間の通信を容易にし得る。コンテナエグレスVCNは、パブリックインターネット1654(例えば、
図13のパブリックインターネット1354)に通信可能に結合され得るNATゲートウェイ1638を含み得る。
【0150】
制御プレーンVCN1616に含まれ、データプレーンVCN1618に含まれるインターネットゲートウェイ1634は、パブリックインターネット1654に通信可能に結合され得るメタデータ管理サービス1652(例えば、
図13のメタデータ管理システム1352)に通信可能に結合され得る。パブリックインターネット1654は、制御プレーンVCN1616に含まれ、データプレーンVCN1618に含まれるNATゲートウェイ1638に通信可能に結合され得る。制御プレーンVCN1616に含まれ、データプレーンVCN1618に含まれるサービスゲートウェイ1636は、クラウドサービス1656に通信可能に結合され得る。
【0151】
いくつかの例では、
図16のブロック
図1600のアーキテクチャによって示されるパターンは、
図15のブロック
図1500のアーキテクチャによって示されるパターンの例外と見なされてもよく、IaaSプロバイダが顧客と直接通信することができない場合(たとえば切断された領域)、それは、IaaSプロバイダの顧客にとって望ましい場合がある。各顧客についてVM1666(1)~(N)に含まれるそれぞれのコンテナ1667(1)~(N)は、顧客によってリアルタイムでアクセスされ得る。コンテナ1667(1)~(N)は、コンテナエグレスVCN1668に含まれ得るデータプレーンアプリ層1646のアプリサブネット1626に含まれるそれぞれのセカンダリVNIC1672(1)~(N)への呼び出しを行うように構成されてもよい。セカンダリVNIC1672(1)~(N)はNATゲートウェイ1638に呼び出しを送信し得、NATゲートウェイ1638はパブリックインターネット1654に呼び出しを送信してもよい。この例では、顧客によってリアルタイムでアクセスされ得るコンテナ1667(1)~(N)は、制御プレーンVCN1616から隔離され得、データプレーンVCN1618に含まれる他のエンティティから隔離され得る。コンテナ1667(1)~(N)はまた、他の顧客からのリソースからも隔離されてもよい。
【0152】
他の例では、顧客は、コンテナ1667(1)~(N)を使用してクラウドサービス1656を呼び出し得る。この例では、顧客は、コンテナ1667(1)~(N)内において、クラウドサービス1656にサービスを要求するコードを実行してもよい。コンテナ1667(1)~(N)はこの要求をセカンダリVNIC1672(1)~(N)に送信し得、セカンダリVNIC1672(1)~(N)はその要求をNATゲートウェイに送信し、NATゲートウェイはその要求をパブリックインターネット1654に送信し得る。パブリックインターネット1654は、インターネットゲートウェイ1634を介して、制御プレーンVCN1616に含まれるLBサブネット1622に要求を送信し得る。要求が有効であると判定することに応答して、LBサブネットはその要求をアプリサブネット1626に送信し得、アプリサブネット1626はその要求をサービスゲートウェイ1636を介してクラウドサービス1656に送信し得る。
【0153】
図示されるIaaSアーキテクチャ1300、1400、1500、1600は、図示される以外の構成要素を有してもよいことを諒解されたい。さらに、図示される実施形態は、本開示の実施形態を組み込んでもよいクラウドインフラストラクチャシステムのいくつかの例にすぎない。いくつかの他の実施形態では、IaaSシステムは、図示されるよりも多いまたは少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または構成要素の異なる構成または配置を有してもよい。
【0154】
ある実施形態では、本明細書に説明されるIaaSシステムは、セルフサービスであり、サブスクリプションベースであり、弾性的にスケーラブルであり、信頼性があり、高い可用性があり、セキュアな態様で顧客に配信される、アプリケーション、ミドルウェア、およびデータベースサービス提供の一式を含んでもよい。そのようなIaaSシステムの例は、本譲受人によって提供されるOracle Cloud Infrastructure(OCI)である。
【0155】
図17は、様々な実施形態が実現されてもよい例示的なコンピュータシステム1700を示す。システム1700は、上記で説明されるコンピュータシステムのうちのいずれかを実現するために使用されてもよい。図に示されるように、コンピュータシステム1700は、バスサブシステム1702を介していくつかの周辺サブシステムと通信する処理ユニット1704を含む。これらの周辺サブシステムは、処理加速ユニット1706、I/Oサブシステム1708、ストレージサブシステム1718、および通信サブシステム1724を含んでもよい。ストレージサブシステム1718は、有形のコンピュータ可読記憶媒体1722およびシステムメモリ1710を含む。
【0156】
バスサブシステム1702は、コンピュータシステム1700のさまざまなコンポーネントおよびサブシステムに、意図されるように互いに通信させるための機構を提供する。バスサブシステム1702は、単一のバスとして概略的に示されるが、バスサブシステムの代替実施形態は、複数のバスを利用してもよい。バスサブシステム1702は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカルバス、およびIEEE P1386.1規格に従って製造される中二階バスとして実現され得る周辺コンポーネントインターコネクト(PCI)バスを含んでもよい。
【0157】
処理ユニット1704は、1つ以上の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実現することができ、コンピュータシステム1700の動作を制御する。1つ以上のプロセッサが処理ユニット1704に含まれてもよい。これらのプロセッサは、シングルコアプロセッサまたはマルチコアプロセッサを含んでもよい。特定の実施形態では、処理ユニット1704は、シングルコアプロセッサもしくはマルチコアプロセッサが各処理ユニットに含まれる1つ以上の独立した処理ユニット1732および/または1734として実現されてもよい。他の実施形態では、処理ユニット1704はまた、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されるクワッドコア処理ユニットとして実現されてもよい。
【0158】
様々な実施形態では、処理ユニット1704は、プログラムコードに応答して様々なプログラムを実行することができ、複数の同時に実行されるプログラムまたはプロセスを維持することができる。任意の所与の時間に、実行されるべきプログラムコードの一部またはすべてが、プロセッサ1704、および/またはストレージサブシステム1718に常駐することができる。好適なプログラミングを通して、プロセッサ1704は、上記で説明される種々の機能性を提供することができる。コンピュータシステム1700は、デジタル信号プロセッサ(DSP)、特殊目的プロセッサなどを含み得る処理加速ユニット1706をさらに含んでもよい。
【0159】
I/Oサブシステム1708は、ユーザインターフェイス入力デバイスおよびユーザインターフェイス出力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、例えば、ユーザが、ジェスチャおよび発話コマンドを使用して、ナチュラルユーザインターフェイスを通して、Microsoft Xbox(登録商標)360ゲームコントローラ等の入力デバイスを制御し、それと相互作用することを可能にする、Microsoft Kinect(登録商標)モーションセンサ等のモーション感知および/またはジェスチャ認識デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行なっている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(たとえばGoogle Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識デバイスも含んでもよい。加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでもよい。
【0160】
ユーザインターフェイス入力デバイスは、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスも含んでもよいが、それらに限定されるものではない。加えて、ユーザインターフェイス入力デバイスは、例えば、コンピュータ断層撮影、磁気共鳴撮像、ポジトロン断層撮影、医療用超音波検査装置等の医療用撮像入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスはまた、例えば、MIDIキーボード、デジタル楽器等の音声入力デバイスを含んでもよい。
【0161】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイス等の非視覚的ディスプレイを含んでもよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という語の使用は、コンピュータシステム1700からユーザまたは他のコンピュータに情報を出力するためのすべての考えられ得るタイプのデバイスおよび機構を含むよう意図される。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスならびに音声/映像情報を視覚的に伝えるさまざまな表示デバイスを含んでもよいが、それらに限定されるものではない。
【0162】
コンピュータシステム1700は、現在のところシステムメモリ1710内に位置しているものとして示されているソフトウェア要素を含むストレージサブシステム1718を備えてもよい。システムメモリ1710は、処理ユニット1704上でロード可能および実行可能なプログラム命令、ならびにこれらのプログラムの実行中に生成されるデータを記憶してもよい。
【0163】
コンピュータシステム1700の構成およびタイプに応じて、システムメモリ1710は、揮発性(ランダムアクセスメモリ(RAM)など)および/または不揮発性(読み出し専用メモリ(ROM)、フラッシュメモリなど)であってもよい。RAMは、典型的には、処理ユニット1704に即座にアクセス可能である、ならびに/もしくは処理ユニット1704によって現在操作および実行されている、データならびに/またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ1710は、スタティックランダムアクセスメモリ(SRAM)またはダイナミックランダムアクセスメモリ(DRAM)など、複数の異なるタイプのメモリを含んでもよい。いくつかの実現例では、起動中などにコンピュータシステム1700内の要素間で情報を転送するのに役立つ基本的なルーチンを含むベーシックインプット/アウトプットシステム(BIOS)が、典型的には、ROMに記憶されてもよい。限定ではなく例として、システムメモリ1710はまた、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含んでもよいアプリケーションプログラム1712、プログラムデータ1714、およびオペレーティングシステム1716も示す。例として、オペレーティングシステム1716は、様々なバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/もしくはLinux(登録商標)オペレーティングシステム、様々な市販のUNIX(登録商標)もしくはUNIX様オペレーティングシステム(様々なGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されない)、ならびに/またはiOS, Windows(登録商標)Phone, Android(登録商標)OS、BlackBerry(登録商標)10OS、およびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含んでもよい。
【0164】
記憶サブシステム1718はまた、いくつかの実施形態の機能性を提供する基本的なプログラミングおよびデータ構造を記憶するための有形のコンピュータ可読記憶媒体も提供してもよい。プロセッサによって実行されると上述の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が、ストレージサブシステム1718に格納されてもよい。これらのソフトウェアモジュールまたは命令は、処理ユニット1704によって実行されてもよい。ストレージサブシステム1718はまた、本開示に従って使用されるデータを記憶するためのリポジトリを提供してもよい。
【0165】
ストレージサブシステム1700はまた、コンピュータ可読記憶媒体1722にさらに接続され得るコンピュータ可読記憶媒体リーダ1720を含み得る。システムメモリ1710とともに、およびオプションとして、システムメモリ1710と組み合わせて、コンピュータ可読記憶媒体1722は、コンピュータ可読情報を、一時的および/またはより恒久的に収容、記憶、伝送、および検索するために、遠隔の、ローカルな、固定された、および/またはリムーバブルなストレージデバイスに記憶媒体を加えたものを包括的に表してもよい。
【0166】
コードまたはコードの一部を含むコンピュータ可読記憶媒体1722はまた、限定はしないが、情報の記憶および/または伝送のための任意の方法または技術で実現される揮発性および不揮発性の、リムーバブルおよび非リムーバブル媒体などの、記憶媒体ならびに通信媒体を含む、当該技術において公知であるかまたは用いられる任意の適切な媒体を含むことができる。これは、RAM、ROM、電子的に消去可能プログラマブルROM(EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体等の有形のコンピュータ可読記憶媒体を含んでもよい。これはまた、データ信号、データ伝送、または所望の情報を伝送するために使用することができ、コンピューティングシステム1700によってアクセスすることができる、任意の他の媒体等の非有形のコンピュータ可読媒体を含むことができる。
【0167】
例として、コンピュータ可読記憶媒体1722は、非リムーバブル不揮発性磁気媒体に対して読み書きするハードディスクドライブ、リムーバブル不揮発性磁気ディスクに対して読み書きする磁気ディスクドライブ、CD ROM、DVDおよびBlu-Ray(登録商標)ディスクなどの、リムーバブル不揮発性光ディスクに対して読み書きする光ディスクドライブ、または他の光学媒体を含んでもよい。コンピュータ可読記憶媒体1722は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含んでもよいが、これらに限定されない。コンピュータ可読記憶媒体1722はまた、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含んでもよい。ディスクドライブおよびそれらに関連付けられるコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶をコンピュータシステム1700に提供してもよい。
【0168】
通信サブシステム1724は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1724は、他のシステムとコンピュータシステム1700との間のデータの送受のためのインターフェイスとして働く。例えば、通信サブシステム1724は、コンピュータシステム1700がインターネットを介して1つ以上のデバイスに接続することを可能にしてもよい。いくつかの実施形態では、通信サブシステム1724は、(たとえば、セルラー電話技術、3G、4GもしくはEDGE(グローバル進化のための高速データレート)などの先進データネットワーク技術、WiFi(IEEE802.11ファミリー規格、もしくは他のモバイル通信技術、またはそれらのいずれかの組み合わせを用いて)無線音声および/もしくはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、ならびに/または他のコンポーネントを含んでもよい。いくつかの実施形態では、通信サブシステム1724は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続性(例えば、イーサネット(登録商標))を提供することができる。
【0169】
いくつかの実施形態では、通信サブシステム1724はまた、コンピュータシステム1700を使用してもよい1人以上のユーザの代わりに、構造化されたおよび/または構造化されていないデータフィード1726、イベントストリーム1728、イベント更新1730等の形式で入力通信を受信してもよい。
【0170】
例として、通信サブシステム1724は、Twitter(登録商標)フィード、Facebook(登録商標)更新、Rich Site Summary(RSS)フィードなどのウェブフィード、および/もしくは1つ以上の第三者情報源からのリアルタイム更新などの、ソーシャルネットワークならびに/または他の通信サービスのユーザからリアルタイムでデータフィード1726を受信するよう構成されてもよい。
【0171】
加えて、通信サブシステム1724はまた、連続データストリームの形式でデータを受信するよう構成されてもよく、これは、明示的な終端を伴わない、本質的に連続的または無限であってもよい、リアルタイムイベントのイベントストリーム1728および/またはイベント更新1730を含んでもよい。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などが含まれてもよい。
【0172】
通信サブシステム1724はまた、構造化されたおよび/または構造化されていないデータフィード1726、イベントストリーム1728、イベント更新1730などを、コンピュータシステム1700に結合される1つ以上のストリーミングデータソースコンピュータと通信してもよい1つ以上のデータベースに出力するよう構成されてもよい。
【0173】
コンピュータシステム1700は、ハンドヘルドポータブルデバイス(例えば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、種々のタイプの1つとすることができる。
【0174】
常に変化するコンピュータおよびネットワークの性質のため、図に示されるコンピュータシステム1700の記載は、単に具体的な例として意図される。図に描写されるシステムより多いまたは少ないコンポーネントを有する、多くの他の構成が可能である。たとえば、カスタマイズされたハードウェアも使用されるかもしれず、および/または、特定の要素が、ハードウェア、ファームウェア、ソフトウェア(アプレットを含む)、または組み合わせで実現されるかもしれない。さらに、ネットワーク入力/出力デバイス等の他のコンピューティングデバイスへの接続が採用されてもよい。本明細書に提供される開示および教示に基づいて、当業者は、種々の実施形態を実現するために、他の態様および/または方法を理解するであろう。
【0175】
特定の実施形態について説明してきたが、様々な修正、変更、代替構成、および均等物も本開示の範囲内に包含される。実施形態は、ある特定のデータ処理環境内での動作に限定されず、複数のデータ処理環境内で自由に動作することができる。加えて、実施形態は、特定の一連のトランザクションおよびステップを使用して説明されているが、本開示の範囲は、説明された一連のトランザクションおよびステップに限定されないことが、当業者に明白となるはずである。上述した実施形態のさまざまな特徴および局面は、個別にまたはともに用いられてもよい。
【0176】
さらに、実施形態は、ハードウェアおよびソフトウェアの特定の組み合わせを使用して説明されたが、ハードウェアおよびソフトウェアの他の組み合わせも本開示の範囲内であることを認識されたい。実施形態は、ハードウェアのみで、またはソフトウェアのみで、またはそれらの組合せを使用して実現されてもよい。本明細書に記載されたさまざまなプロセスは、同じプロセッサまたは任意の組み合わせの異なるプロセッサ上で実現され得る。したがって、構成要素またはモジュールが特定の動作を実行するように構成されるとして記載されている場合、そのような構成は、たとえば、動作を実行する電子回路を設計すること、プログラミング可能な電子回路(マイクロプロセッサなど)をプログラミングして動作を実行すること、またはそれらの任意の組み合わせによって達成され得る。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されないさまざまな技術を用いて通信することができ、異なる対のプロセスが異なる技術を用いてもよく、同じ対のプロセスが異なる時間に異なる技術を用いてもよい。
【0177】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で見なされるべきである。しかしながら、特許請求の範囲に記載された、より広範な精神および範囲から逸脱することなく、追加、削減、削除、ならびに他の修正および変更がなされ得ることは明らかであろう。したがって、特定の開示の実施形態を説明してきたが、これらは限定を意図するものではない。さまざまな修正および均等物が、特許請求の範囲内にある。
【0178】
開示された実施形態を説明する文脈における(特に特許請求の範囲の文脈における)文言「ある(a)」および「ある(an)」および「その(the)」ならびに同様の指示対象の使用は、本明細書において別段の指示がない限り、または文脈によって明らかに矛盾しない限り、単数形および複数形の両方を包含すると解釈されるべきである。文言「備える(comprising)」、「有する(having)」、「含む(including)」、および「含有する(containing)」は、特に断らない限り、非限定的な文言(すなわち、「~を含むがそれに限定されない」を意味する)として解釈されるべきである。「接続される」という文言は、何かが介在する場合であっても、部分的または全体的に内部に含まれる、取り付けられる、または共に合わせられるものとして解釈されるべきである。本明細書における値の範囲の記載は、本明細書において別段の指示がない限り、単に、その範囲内に入る各別個の値を個々に言及する簡潔な方法としての役割を果たすことを意図しており、各別個の値は、あたかもそれが本明細書において個々に記載されているかのように本明細書に組み込まれる。本明細書に記載されるすべての方法は、本明細書に別段の指示がない限り、または文脈によって明らかに矛盾しない限り、任意の好適な順序で実施され得る。本明細書で提供される任意のおよびすべての例、または例示的な言葉(例えば、「など」)の使用は、単に、実施形態をよりよく説明することを意図するものであり、別段の請求がない限り、本開示の範囲を限定するものではない。本明細書におけるいかなる文言も、任意の請求されていない要素を本開示の実施に不可欠であることを示すものとして解釈されるべきではない。
【0179】
句「X、Y、またはZの少なくとも1つ」などの離接的文言は、特に別段の記載がない限り、項目、用語などがX、Y、もしくはZ、またはそれらの任意の組合せ(例えば、X、Y、および/またはZ)のいずれかであってもよいことを提示するために一般に使用される文脈内で理解されることが意図される。したがって、そのような離接的文言は、概して、ある実施形態が、Xの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つが各々存在することを必要とすることを包含するよう意図せず、および包含するべきではない。
【0180】
本開示を実施するために公知の最良の形態を含む、本開示の好ましい実施形態が本明細書に記載されている。これらの好ましい実施形態の変形例は、前述の説明を読めば当業者には明らかになるであろう。当業者は、適宜、そのような変形例を採用することができるはずであり、本開示は、本明細書に具体的に説明されるものとは別様に実践されてもよい。したがって、本開示は、適用可能な法によって許可されるように、特許請求の範囲に記載される主題のすべての修正物および均等物を含む。さらに、そのすべての可能な変形物における上記の要素の任意の組み合わせは、本明細書において別段の指示がない限り、本開示によって包含される。
【0181】
本明細書に引用される刊行物、特許出願、および特許を含むすべての引用文献は、あたかも各引用文献が個々にかつ具体的に引用により援用されるよう示され、その全体がここに記載されるのと同程度に、ここに引用により援用される。
【0182】
上記の明細書では、本開示の局面についてその具体的な実施形態を参照して説明しているが、本開示はそれに限定されるものではないということを当業者は認識するであろう。上記の開示のさまざまな特徴および局面は、個々にまたは一緒に用いられてもよい。さらに、実施形態は、本明細書の、より広い精神および範囲から逸脱することなく、本明細書に説明されるものを超えて、任意の数の環境および用途において利用され得る。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
【国際調査報告】