(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-30
(54)【発明の名称】SLA保証を管理するための動的パワーユーザ識別及び分離
(51)【国際特許分類】
G06F 21/55 20130101AFI20240123BHJP
【FI】
G06F21/55 320
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023545961
(86)(22)【出願日】2022-01-28
(85)【翻訳文提出日】2023-08-29
(86)【国際出願番号】 US2022014441
(87)【国際公開番号】W WO2022165272
(87)【国際公開日】2022-08-04
(32)【優先日】2021-01-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517325652
【氏名又は名称】ネットスコープ, インク.
【氏名又は名称原語表記】NETSKOPE, INC.
(74)【代理人】
【識別番号】100114476
【氏名又は名称】政木 良文
(72)【発明者】
【氏名】ラジャゴパラン, チャンドラセカラン
(57)【要約】
グループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダによってユーザグループに課されるスループットペナルティを回避し、グループからの要求、及びユーザグループ内の個々のユーザからSaaSベンダへの要求のAPIイベントレート又はボリュームを時間内に集合的に監視する方法が開示される。また、グループのAPIレートが、全体的に、グループに対するスループットペナルティのSaaSが課されたトリガを超えるか、又はそれに近づくときに、パワーユーザを、限度を超えてAPIイベントをサブミットしているとして認識し、グループのAPIイベントレートに対するユーザの影響を低減するためのアクションを取る。更に、パワーユーザからSaaSへのAPIイベントサブミッションの送信を割り振り、SaaSによるスループットペナルティのトリガを回避し、パワーユーザ以外のグループ内のユーザのレイテンシを低減し、パワーユーザのレイテンシを増加させることが含まれる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ユーザグループ内のユーザからの過剰なアプリケーションプログラムインターフェース(略してAPI)イベントに起因して、サービスとしてのソフトウェア(略してSaaS)ベンダによって前記ユーザグループに課されるスループットペナルティを回避する方法であって、
前記ユーザグループからの要求、及び前記ユーザグループ内の個々のユーザからSaaSベンダへの要求について、APIイベントレート又はボリュームを時間内に集合的に監視することと、
少なくとも、前記ユーザグループについての前記APIイベントレート又はボリュームが、全体として、前記ユーザグループに対する前記スループットペナルティのSaaSが課したトリガを超えるか又はそれに近づくとき、制限を超えてAPIイベントをサブミットしているとしてパワーユーザを認識し、前記ユーザグループの前記APIイベントレート又はボリュームに対する前記パワーユーザの影響を低減するためのアクションを取ることと、
前記パワーユーザから前記SaaSへのAPIイベントサブミッションの送信を割り振り、前記SaaSによる前記スループットペナルティのトリガを回避し、それによって、前記パワーユーザ以外の前記ユーザグループ内の前記ユーザのレイテンシを低減し、前記パワーユーザのレイテンシを増加させることと、を含む、方法。
【請求項2】
前記ユーザグループに対するAPIイベントの前記SaaSベンダからの通知に基づいて、前記APIイベントレート又はボリュームを時間内に監視することを更に含む、請求項1に記載の方法。
【請求項3】
前記SaaSベンダにサブミットされているAPIイベント要求の1つ以上のアクティブアナライザによるカウントに基づいて、前記APIイベントレート又はボリュームを時間内に監視することを更に含む、請求項1に記載の方法。
【請求項4】
前記パワーユーザが前記SaaSへのAPIイベントサブミッションを行うことを遮断すること及び一時的に中断することのうちの1つによって割り振りを行うことを更に含む、請求項1に記載の方法。
【請求項5】
前記パワーユーザは、前記APIイベントを生成するようにプログラムされたボットである、請求項4に記載の方法。
【請求項6】
前記遮断又は一時的な中断を追跡するために人間のユーザに通知を送信することを更に含む、請求項4に記載の方法。
【請求項7】
前記一時的に中断することは、所定の時間の間、又は前記ユーザグループによる全体的なサブミッションがもはや前記SaaSが課したトリガを超えなくなるまでである、請求項4に記載の方法。
【請求項8】
前記パワーユーザによる前記SaaSベンダへのサブミッションのレートを遅くする、プロキシによって管理される補助APIイベントキューに前記パワーユーザを割り当てることによって割り振りを行うことを更に含む、請求項1に記載の方法。
【請求項9】
前記パワーユーザによるAPIイベントサブミッションの更新されたレート又はボリュームが復元限度を下回ったとき、前記補助APIイベントキューへの割り当てを解除することを更に含む、請求項8に記載の方法。
【請求項10】
前記ユーザグループによるAPIイベントサブミッションの更新されたレート又はボリュームが、全体的に、もはや前記SaaSが課したトリガを超えないとき、前記補助APIイベントキューへの割り当てを解除することを更に含む、請求項8に記載の方法。
【請求項11】
前記補助APIイベントキューが空であるか、又は所定の時間の間キュー深さ制限未満であったとき、前記補助APIイベントキューへの割り当てを解除することを更に含む、請求項8に記載の方法。
【請求項12】
前記パワーユーザのためのサブミッションの処理を前記ユーザグループ内の他のユーザのためのサブミッションから分離する、プロキシによって管理されるオーバーフローAPIイベントチャネルに前記パワーユーザを割り当てることによって割り振りを行うことを更に含む、請求項1に記載の方法。
【請求項13】
前記パワーユーザによるAPIイベントサブミッションの更新されたレート又はボリュームが復元限度を下回ったとき、前記オーバーフローAPIイベントチャネルへの割り当てを解除することを更に含む、請求項12に記載の方法。
【請求項14】
前記ユーザグループによるAPIイベントサブミッションの更新されたレート又はボリュームが、全体的に、もはや前記SaaSが課したトリガを超えないとき、前記オーバーフローAPIイベントチャネルへの割り当てを解除することを更に含む、請求項12に記載の方法。
【請求項15】
前記オーバーフローAPIイベントチャネルが空であるか、又は所定の時間の間キュー深さ制限未満であったとき、前記オーバーフローAPIイベントチャネルへの割り当てを解除することを更に含む、請求項12に記載の方法。
【請求項16】
前記SaaSは、前記オーバーフローAPIイベントチャネルの使用を別個に測定する、請求項12に記載の方法。
【請求項17】
メモリにロードされたプログラム命令を含む有形の非一時的コンピュータ可読記憶媒体であって、前記プログラム命令は、プロセッサ上で実行されると、前記プロセッサに、ユーザグループ内のユーザからの過剰なアプリケーションプログラムインターフェース(略してAPI)イベントに起因して、サービスとしてのソフトウェア(略してSaaS)ベンダによって前記ユーザグループに対して課されるスループットペナルティを回避する方法を実装させ、前記方法は、
前記ユーザグループからの要求、及び前記ユーザグループ内の個々のユーザからSaaSベンダへの要求について、APIイベントレート又はボリュームを時間内に集合的に監視することと、
前記ユーザグループについての前記APIイベントレート又はボリュームが、全体として、前記ユーザグループに対するスループットペナルティのSaaSが課したトリガを超えるか又はそれに近づくとき、制限を超えてAPIイベントをサブミットしているとしてパワーユーザを認識し、前記ユーザグループの前記APIイベントレート又はボリュームに対する前記パワーユーザの影響を低減するためのアクションを取ることと、
前記パワーユーザから前記SaaSへのAPIイベントサブミッションの送信を割り振り、前記SaaSによる前記スループットペナルティのトリガを回避し、それによって、前記パワーユーザ以外の前記ユーザグループ内の前記ユーザのレイテンシを低減し、前記パワーユーザのレイテンシを増加させることと、を含む、有形の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記ユーザグループに対するAPIイベントの前記SaaSベンダからの通知に基づいて、前記APIイベントレート又はボリュームを時間内に監視することを更に含む、請求項17に記載の有形の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記パワーユーザが前記SaaSへのAPIイベントサブミッションを行うことを遮断すること及び一時的に中断することのうちの1つによって割り振りを行うことを更に含む、請求項17に記載の有形の非一時的なコンピュータ可読記憶媒体。
【請求項20】
前記遮断又は一時的な中断を追跡するために人間のユーザに通知を送信することを更に含む、請求項19に記載の有形の非一時的なコンピュータ可読記憶媒体。
【請求項21】
前記一時的に中断することは、所定の時間の間、又は前記ユーザグループによる全体的なサブミッションがもはや前記SaaSが課したトリガを超えなくなるまでである、請求項19に記載の有形の非一時的コンピュータ可読記憶媒体。
【請求項22】
ユーザグループ内のユーザからの過剰なアプリケーションプログラムインターフェース(略してAPI)イベントに起因して、サービスとしてのソフトウェア(略してSaaS)ベンダによって前記ユーザグループに対して課されるスループットペナルティを回避するためのデバイスであって、前記デバイスは、プロセッサと、前記プロセッサに結合されたメモリと、前記メモリにロードされたコンピュータ命令と、を含み、前記コンピュータ命令は、実行されると、前記プロセッサに、
前記ユーザグループからの要求、及び前記ユーザグループ内の個々のユーザからSaaSベンダへの要求について、APIイベントレート又はボリュームを時間内に集合的に監視することと、
前記ユーザグループについての前記APIイベントレート又はボリュームが、全体として、前記ユーザグループに対するスループットペナルティのSaaSが課したトリガを超えるか又はそれに近づくとき、制限を超えてAPIイベントをサブミットしているとしてパワーユーザを認識し、前記ユーザグループの前記APIイベントレート又はボリュームに対する前記パワーユーザの影響を低減するためのアクションを取ることと、
前記パワーユーザから前記SaaSへのAPIイベントサブミッションの送信を割り振り、前記SaaSによる前記スループットペナルティのトリガを回避し、それによって、前記パワーユーザ以外の前記ユーザグループ内の前記ユーザのレイテンシを低減し、前記パワーユーザのレイテンシを増加させることと、を含むプロセスを実装させる、デバイス。
【請求項23】
前記SaaSベンダにサブミットされているAPIイベント要求の1つ以上のアクティブアナライザによるカウントに基づいて、前記APIイベントレート又はボリュームを時間内に監視することを更に含む、請求項22に記載のデバイス。
【請求項24】
前記パワーユーザによる前記SaaSベンダへのサブミッションのレートを遅くする、プロキシによって管理される補助APIイベントキューに前記パワーユーザを割り当てることによって割り振りを行うことを更に含む、請求項22に記載のデバイス。
【請求項25】
前記パワーユーザによるAPIイベントサブミッションの更新されたレート又はボリュームが復元限度を下回ること、
前記ユーザグループによるAPIイベントサブミッションの更新されたレート又はボリュームが、全体として、もはや前記SaaSが課したトリガを超えないこと、
前記補助APIイベントキューが、空であるか、又は所定の時間の間キュー深さ制限未満であったこと、のうちの少なくとも1つが発生したときに、前記補助APIイベントキューへの割り当てを解除することを更に含む、請求項24に記載のデバイス。
【発明の詳細な説明】
【相互参照】
【0001】
本出願は、2021年1月29日に出願された「Dynamic Power User Identification and Isolation For Managing SLA Guarantees」と題する米国特許出願第17/163,285号の優先権及び利益を主張する。
【援用】
【0002】
以下の材料は、本出願において参照により援用される。
【0003】
2014年3月05日に出願された「Security for Network Delivered Services」と題する米国非仮特許出願第14/198,508号(代理人整理番号NSKO1000-3)(現在、2016年2月23日に発行された米国特許第9,270,765号)、
2016年12月02日に出願された「Systems and Methods of Enforcing Multi-Part Policies on Data-Deficient Transactions of Cloud Computing Services」と題する米国非仮特許出願第15/368,240号(代理人整理番号NSKO1003-2)(現在は2020年11月03日に発行された米国特許第10,826,940号)、及び2016年3月11日に出願された「Systems and Methods of Enforcing Multi-Part Policies on Data-Deficient Transactions of Cloud Computing Services」と題する米国仮特許出願第62/307,305号(代理人整理番号NSKO1003-1)、
“Cloud Security for Dummies,Netskope Special Edition”by Cheng,Ithal,Narayanaswamy,and Malmskog,John Wiley & Sons,Inc.2015;
“Netskope Introspection”by Netskope,Inc.;
“Data Loss Prevention and Monitoring in the Cloud”by Netskope,Inc.;
“The 5 Steps to Cloud Confidence”by Netskope,Inc.;
“Netskope Active Cloud DLP”by Netskope,Inc.;
“Repave the Cloud-Data Breach Collision Course”by Netskope,Inc.;及び
“Netskope Cloud Confidence Index(商標)”by Netskope,Inc.
【技術分野】
【0004】
開示される技術は、概して、セキュリティ及び規制順守のために、ユーザグループ内のユーザからの過剰なアプリケーションプログラミングインターフェース(API)イベントに起因して、サービスとしてのソフトウェア(SaaS)ベンダによって組織のユーザグループに課されるスループットペナルティを回避することに関する。より具体的には、開示される技術は、サービスレベルアグリーメント(SLA)保証を管理するための動的パワーユーザ識別及び分離に関する。
【背景技術】
【0005】
このセクションで議論される主題は、単にこのセクションにおけるその言及の結果として従来技術であると想定されるべきではない。同様に、このセクションで言及される問題、又は背景として提供される主題に関連する問題は、従来技術において以前に認識されていたと仮定されるべきではない。このセクションの主題は、異なるアプローチを表すにすぎず、それ自体、特許請求される技術の実装形態に対応することもできる。
【0006】
コーポレート機能のためにクラウドサービスを使用することは一般的である。調査によると、エンタープライズワークロードの80%が2025年までにクラウド内に存在することが示唆されている。インターナショナルデータコーポレーションによれば、「パブリッククラウド情報テクノロジ(IT)インフラストラクチャへの支出は、2020年の第2の四半期に初めて従来のITインフラストラクチャへの支出を上回った」。例えば、エンタープライズ企業はしばしば、サービスを配信するためにコーポレートネットワーク内にサーバをインストールする代わりに、サービスとしてのソフトウェア(SaaS)ソリューションを利用している。
【0007】
企業は、通常、サービスを配信するために企業ネットワーク内にサーバをインストールする代わりに、SaaSソリューションを利用している。SaaSソリューションのプロバイダは、サービスと顧客との間で、顧客のデータの保証された可用性、性能、セキュリティ及びプライバシーの期待を設定するサービスレベルアグリーメント(SLA)を提供する。次に、顧客は、複数の顧客ブランチ及びデータセンターの間で、自身のデータを安全に共同で作成し、編集し、保存できることを期待する。
【0008】
十分なセキュリティサービスの必要性の一例では、2020年に、グローバルパンデミックが、企業の知識労働者の間での遠隔作業への急激なシフトを引き起こし、それが次に、危険な挙動の増加をもたらした。攻撃者は、COVID19をテーマとしたフィッシング電子メール、スキャム及びトロイの木馬を用いて、大流行を利用しようとした。この期間の間、より洗練されたサイバー攻撃で使用される技術も進化し続けている。出願人は、攻撃者が初期配信のための技術を変更し、悪意のあるMicrosoft Officeドキュメントファイルの人気は6倍を超えて増加し、ポータブル実行可能ファイルに匹敵するか又はそれを超えたことを報告している。攻撃者は、人気のあるクラウドアプリ及びサービスを悪用して、悪意のあるファイルを企業内の被害者に配信し続けており、その50%超がクラウドを通じて配信されている。
【0009】
人間のユーザによるSaaSアプリの使用に加えて、SaaSアプリは、SaaSアプリ内のオブジェクトに対する更新を生成するボット又はスクリプトとも統合されている。これらの更新は、識別される通知として受信され、安全なサービスを保証するために検査される。一方、SaaSアプリは、単位時間当たりにユーザに代わって行われるAPI呼び出しの数などの要因にレート制限を課すことができるため、ユーザに代わって実施される動作の数は、単位時間当たりにユーザに対して許可されるAPI呼び出しの数の要因となる。API呼び出しは、効率的に使用される乏しいリソースであり、これは、ワーカーにおいて作成されるオペレーションを、ユーザが実施することができる作業量に制限することの有用性を動機付ける。ユーザ及び通知に対して盲目的にワーカーへの操作及びスケジューリングを作成することは、ヘッドオブラインブロッキングにつながり、他のユーザの通知の処理を遅延させる。
【0010】
組織のためのサービスレベルアグリーメント(SLA)に応答して、ユーザグループ内のユーザからの過剰なAPIイベントに起因して、SaaSベンダによってユーザグループに課されるスループットペナルティを回避するための機会が生じる。
【図面の簡単な説明】
【0011】
図面において、同様の参照文字は、概して、異なる図全体を通して同様の部分を指す。また、図面は、必ずしも縮尺通りではなく、代わりに、概して、開示される技術の原理を図示することに重点が置かれている。以下の説明では、開示される技術の種々の実装形態が、以下の図面を参照して説明される。
【0012】
【
図1】開示される技術の一実装形態による、ユーザグループ内のユーザからの過剰なAPIイベントに起因してユーザグループに対してSaaSベンダによって課されるスループットペナルティを回避するためのシステムのアーキテクチャレベルの概略図を示す。
【
図2】内部検査のためのSaaSアプリケーションイベントを表すユーザデータのフローの高レベルブロック図を示す。
【
図3】ユーザのSLA契約に従って、単位時間当たりに処理され得るよりも多くの通知を生成するパワーユーザを識別するためのブロック図を示す。
【
図4】APIイベントレートに対するユーザの影響を追跡するための、複数のユーザについての時間ウィンドウ内のAPIイベントカウントの例示的なテーブルを示す。
【
図5A】ネットワークイベントのためにサードパーティSaaSベンダから受信された例示的なプッシュされた通知を、JSONスタイル表現の通知メタデータとともに列挙する。
【
図5B】ネットワークイベントのためにサードパーティSaaSベンダから受信された例示的なプッシュされた通知を、JSONスタイル表現の通知メタデータとともに列挙する。
【
図6A】ネットワークイベントのアイテム作成604のための例示的なメタデータをJSONスタイル表現で列挙する。
【
図6B】ネットワークイベントのアイテム作成604のための例示的なメタデータをJSONスタイル表現で列挙する。
【
図6C】ネットワークイベントのアイテム作成604のための例示的なメタデータをJSONスタイル表現で列挙する。
【
図7A】例示的なアラート、管理者のためのメッセージを示す。
【
図7B】パワーユーザが構成されたポリシーに違反した場合に管理者が受信する電子メールの例を示す。
【
図8】5分の期間にわたって受信されたAPIイベントのグラフと、開示された方法を介して割り振られたパワーユーザからSaaSへのAPIイベントサブミッションの送信とを用いて、10人のユーザのうちの9人に対する低減されたレイテンシを示す。
【
図9】開示される技術の一実装形態による、ユーザグループ内のユーザからの過剰なAPIイベントに起因して、ユーザグループに対してSaaSベンダによって課されるスループットペナルティを回避するための方法のための代表的なワークフローを示す。
【
図10】開示される技術の一実装形態による、ユーザグループ内のユーザからの過剰なAPIイベントに起因して、ユーザグループに対してSaaSベンダによって課されるスループットペナルティを回避するために使用され得るコンピュータシステムの簡略化されたブロック図である。
【発明を実施するための形態】
【0013】
以下の詳細な説明は、図面を参照して行われる。特許請求の範囲によって定義されるその範囲を限定するためではなく、開示される技術を例示するために、例示的な実装形態が説明される。当業者であれば、以下の説明に基づいて種々の同等の変形例を認識するであろう。
【0014】
SaaSアプリは、実際のユーザによって使用され、SaaSアプリはまた、SaaSアプリ内のオブジェクトに対する更新を生成するボット又はスクリプトと統合される。更新は、通知としてSaaSアプリから受信される。
【0015】
SaaSアプリは、APIイベントにレート制限を課し、一部の要因に基づいてレート制限を課すことができる。レート制限に関する共通の要因の1つは、ユーザに基づく。ユーザ毎の、ユーザのためのAPIイベントの数を制限することができる。SaaSアプリは、ユーザに代わって単位時間当たりのAPIイベントに対してレート制限を課すため、ユーザに代わって実施される動作の数は、単位時間当たりにユーザに許可されるAPIイベントの数の要因となる。すなわち、APIイベントは、効率的に使用される不十分なリソースであり、これは、ワーカープロセスにおいて作成されるオペレーションを、ユーザのために実施することができる作業の量に制限することの有用性を促進する。ユーザ及び通知に対して盲目的にワーカープロセスに対する操作及びスケジューリングを作成することは、パケットのラインが第1のパケットによって保持されるときに発生し、他のユーザの通知の処理を遅延させる性能制限現象であるヘッドオブラインブロッキングにつながる可能性がある。
【0016】
過去において、SLA保証を管理するための手法は、外部アプリケーションによって課されたレート制限に反応することであった。重要ではあるが、この手法は、別のユーザの使用量によって影響を受けるべきではない他のユーザのサービスレベルアグリーメント(SLA)を保証するのに十分なリソース使用量を改善するのに十分な影響を有していない。
【0017】
開示される技術は、典型的には組織のユーザグループ内のユーザからの過剰なAPIイベントに起因して、SaaSベンダによってユーザグループに課されるスループットペナルティを回避するという技術的問題を解決する。本出願人によって開示される手法は、ユーザグループからの、及びユーザグループ内の個々のユーザからSaaSベンダへの要求についてのAPIイベントレートを監視し、制限を超えるAPIイベントをサブミットし、ユーザグループのAPIイベントレートに対するパワーユーザの影響を低減するためのアクションを取るものとしてパワーユーザを認識する。ユーザがパワーユーザとして認識されると、情報はスケジューラにフィードバックされ、スケジューラは、パワーユーザが動作を実行するレートに基づいて、ユーザが意図された動作を継続することを許可しないアクションを取ることができる。一例では、アクションは、特定のユーザの通知ワークロードを抑制し、リソースが他のユーザの通知処理のために有用に利用されることを確実にすることである。この手法は、パワーユーザが識別され、その使用がユーザごとに利用可能なAPI割当量に基づくSLA保証に絞られた後、他のユーザに対するSLA保証を維持することができるため、システムスループット及び顧客とも称される組織に利益をもたらす。構成可能なアクションは、更なる処理からユーザを隔離するポリシーとして管理者によってセットアップすることが可能であり、アラートのためのポリシーがセットアップされた場合に管理者にアラートすることができる。一部の実施形態では、別の構成可能なポリシーアクションは、組織内の他のユーザによって必要とされるリソースを保護するために、それらの通知を処理するための別個のキューをパワーユーザのために作成することであり得る。
【0018】
次に、組織のユーザグループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダによってユーザグループに課されるスループットペナルティを回避するための例示的なシステムについて説明する。
【0019】
システム
図1は、組織に代わってSaaS APIへの準リアルタイムアクセスを改善するためのシステム100のアーキテクチャレベルの概略図を示している。システム100は、ネットワークセキュリティシステム155、管理クライアント112、クラウドサービス118、クライアントデバイス142、及びパブリックネットワーク145を含む。ネットワークセキュリティシステム155は、顧客データプライバシー保護156と、アクティブアナライザ165と、内部検査エンジン175と、モニタ184と、ストレージ186とを含む。ネットワークセキュリティシステム155のモニタ184は、抽出エンジン171と、分類エンジン172と、セキュリティエンジン173と、管理プレーン174と、データプレーン180とを含む。管理クライアント112は、タブレット122及びモバイル132を含み、クラウドサービス118は、クラウドサービスA128~クラウドサービスZ138を含み、クライアントデバイス142は、モバイル152及びコンピュータ162を含む。アクティブアナライザ165は、機密コンテンツがネットワーク145を横断するときに、モニタ184を使用して機密コンテンツに対してリアルタイムでポリシーを施行する。ストレージ186は、コンテンツポリシー187、コンテンツプロファイル188、コンテンツ検査ルール189、エンタープライズデータ197、クライアントの情報198、及びユーザ識別情報199を含む。ユーザ識別情報は、トークン、UUIDなどの一意の識別子、公開キー証明書などの形態で、ネットワークセキュリティシステムによってクライアントデバイスに提供されるインジケータを指す。一部の実装形態では、ユーザ識別情報は、特定のユーザ及び特定のデバイスにリンクされ得、したがって、同じ個人が、そのモバイルフォンとコンピュータとで異なるユーザ識別情報を有する場合がある。ユーザ識別情報は、エントリ又はユーザidコーポレート識別情報ディレクトリにリンクすることができるが、それとは異なる。一実装形態では、ネットワークセキュリティによって署名された暗号証明書がユーザ識別情報として使用される。他の実装形態では、ユーザ識別情報は、ユーザに対してのみ一意であり、デバイスにわたって同一であり得る。
【0020】
システム100の説明を続けると、一部の実装形態では、ストレージ186は、マルチテナントデータベースシステム(MTDS)などの多くの方法で実装され得るオンデマンドデータベースサービス(ODDS)を形成するために、1つ以上のテナントからの情報を共通データベースイメージのテーブルに記憶することができる。データベース画像は、1つ以上のデータベースオブジェクトを含むことができる。他の実装形態では、データベースは、リレーショナルデータベース管理システム(RDBMS)、オブジェクト指向データベース管理システム(OODBMS)、分散ファイルシステム(DFS)、ノースキーマデータベース、又は任意の他のデータ記憶システム若しくはコンピューティングデバイスであり得る。
【0021】
エンタープライズデータ197は、知的財産、非公開金融、戦略的計画、顧客リスト、顧客又は従業員に属する個人的に識別可能な情報(PII)、患者健康データ、ソースコード、営業秘密、予約情報、パートナー契約、企業計画、合併及び取得文書、並びに他の秘匿データを含むが、それらに限定されない、組織データを含み得る。特に、「エンタープライズデータ」という用語は、文書、ファイル、フォルダ、ウェブページ、ウェブページの集合、画像、又は任意の他のテキストベースの文書を指す。
【0022】
システム100の要素の相互接続において、ネットワーク145は、管理クライアントタブレット122及びモバイル132、クライアントデバイスモバイル152及びコンピュータ162、クラウドサービスA128~クラウドサービスZ138、並びにネットワークセキュリティシステム155を通信可能に結合する。通信経路は、パブリック及び/又はプライベートネットワーク上のポイントツーポイントであり得る。通信は、種々のネットワーク、例えば、プライベートネットワーク、VPN、MPLS回路、又はインターネットを経由して生じることができ、適切なアプリケーションプログラムインターフェース(API)及びデータ交換フォーマット、例えば、REST、JSON、XML、SOAP、及び/又はJMSを使用することができる。全ての通信は暗号化することができる。この通信は、概して、EDGE、3G、4G LTE、Wi-Fi、及びWiMAXなどのプロトコルを介して、ローカルエリアネットワーク(LAN)、WAN(広域通信網)、電話ネットワーク(パブリック交換電話網(PSTN))、セッション開始プロトコル(SIP)、無線ネットワーク、ポイントツーポイントネットワーク、スター型ネットワーク、トークンリングネットワーク、ハブネットワーク、モバイルインターネットを含むインターネットなどのネットワークを介する。加えて、ユーザ名/パスワード、OAuth、Kerberos、SecureID、デジタル証明書などの種々の認可及び認証技術が、通信をセキュアにするために使用され得る。
【0023】
図1のシステムアーキテクチャの説明を更に続けると、ネットワークセキュリティシステム155は、互いに通信するように結合された1つ以上のコンピュータ及びコンピュータシステムを含むことができるモニタ184及びストレージ186を含む。それらはまた、1つ以上の仮想コンピューティング及び/又はストレージリソースであり得る。例えば、モニタ184は、1つ以上のAmazon EC2インスタンスとすることができ、ストレージ186は、Amazon S3(商標)ストレージとすることができる。直接物理コンピュータ又は従来の仮想マシン上でネットワークセキュリティシステム155を実装するのではなく、Salesforce製のRackspace、Heroku、又はForce.comなどの他のサービスとしてのコンピューティングプラットフォームを使用することができる。更に、セキュリティ機能を実装するために、1つ以上のエンジンを使用することができ、1つ以上のポイントオブプレゼンス(POP)を確立することができる。エンジンは、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、又は任意の他のデータ処理システム若しくはコンピューティングデバイスを含む種々のタイプのものであり得る。エンジンは、異なるネットワーク接続を介してデータベースに通信可能に結合することができる。例えば、抽出エンジン171は、ネットワーク145(例えば、インターネット)を介して結合することができ、分類エンジン172は、直接ネットワークリンクを介して結合することができ、セキュリティエンジン173は、更に異なるネットワーク接続によって結合することができる。開示される技術に関して、データプレーン180のPOPは、クライアントの構内でホストされるか、又はクライアントによって制御されるバーチャルプライベートネットワーク内に位置する。
【0024】
図1の説明を続けると、システム100は、管理プレーン174及びデータプレーン180を介して種々の機能にアクセスする顧客データプライバシー保護156を有するネットワークセキュリティシステム155を含む。一実装形態によれば、データプレーン180は、抽出エンジン171、分類エンジン172、及びセキュリティエンジン173を含む。制御プレーンなどの他の機能も提供することができる。これらの機能は、クラウドサービス118とクライアントデバイス142との間のセキュアなインターフェースを集合的に提供する。ネットワークセキュリティシステム155を説明するために「ネットワークセキュリティシステム」という用語を使用するが、より一般的には、システムは、アプリケーションの可視性及び制御機能並びにセキュリティを提供する。一例では、3万5000のクラウドアプリケーションが、クライアントデバイス142によって使用中のサーバと交差するライブラリ内に常駐する。
【0025】
管理クライアント112は、一実装形態によれば、コンテンツポリシー187を定義及び管理するためにネットワークセキュリティシステム155によって提供されるセキュアなウェブ配信インターフェースを有するウェブブラウザを備えたコンピューティングデバイスである。ネットワークセキュリティシステム155はマルチテナントシステムであり、したがって、一部の実装形態によれば、管理クライアントのユーザは、その組織に関連付けられたコンテンツポリシー187のみを変更することができる。一部の実装形態では、ポリシーをプログラム的に定義及び/又は更新するためのAPIが提供され得る。かかる実装形態では、管理クライアント112は、1つ以上のサーバ、例えば、Microsoft Active Directoryなどのコーポレート識別情報ディレクトリ、Google Driveファイルストレージ及び同期サービス、又は更新をプッシュし、かつ/若しくはコンテンツポリシー187に対する更新のプル要求に応答するSlackビジネス通信プラットフォームを含み得る。両方のシステムを共存させることができ、例えば、一部の企業は、コーポレート識別情報ディレクトリを使用して組織内のユーザの識別を自動化すると同時に、ウェブインターフェースを使用してユーザのニーズに合わせてポリシーを調整することができる。管理クライアントには役割が割り当てられ、ネットワークセキュリティシステム155データへのアクセスは、例えば読み取り専用/読み取り書き込みなどの役割に基づいて制御される。
【0026】
制御プレーンは、管理プレーン174及びデータプレーン180とともに、又はその代わりに使用されてもよい。これらのグループ間の機能の特定の分割は、実装形態上の選択である。同様に、機能は、ローカル性、性能、及び/又はセキュリティを改善するために、いくつかのポイントオブプレゼンス(POP)にわたって高度に分散され得る。開示される技術の一実施形態では、データプレーンは、構内又はバーチャルプライベートネットワーク上にあり、ネットワークセキュリティシステムの管理プレーンは、クラウドサービス内に、又はコーポレートネットワークとともに位置する。別のセキュアなネットワーク実装形態では、POPは別様に分散され得る。
【0027】
システム100は、特定のブロックを参照して本明細書で説明されるが、ブロックは、説明の便宜のために定義され、構成部品の特定の物理的配置を必要とすることを意図するものではないことを理解されたい。更に、ブロックは、物理的に別個のコンポーネントに対応する必要はない。物理的に別個のコンポーネントが使用される限りにおいて、コンポーネント間の接続は、必要に応じて有線及び/又は無線とすることができる。異なる要素又はコンポーネントは、単一のソフトウェアモジュールに組み合わせることができ、複数のソフトウェアモジュールは、同じハードウェア上で実行することができる。
【0028】
更に、この技術は、互いに協働し通信する2つ以上の別個の異なるコンピュータ実装システムを使用して実装することができる。この技術は、プロセス、方法、装置、システム、デバイス、コンピュータ可読命令若しくはコンピュータプログラムコードを記憶するコンピュータ可読記憶媒体などのコンピュータ可読媒体として、又はコンピュータ可読プログラムコードがその中に具現化されたコンピュータ使用可能媒体を備えるコンピュータプログラム製品としてなど、多数の方法で実装され得る。開示される技術は、Oracle(商標)互換データベース実装、IBM DB2 Enterprise Server(商標)互換リレーショナルデータベース実装、MySQL(商標)若しくはPostgreSQL(商標)互換リレーショナルデータベース実装、又はMicrosoft SQL Server(商標)互換リレーショナルデータベース実装、又はVampire(商標)互換非リレーショナルデータベース実装、Apache Cassandra(商標)互換非リレーショナルデータベース実装、BigTable(商標)互換非リレーショナルデータベース実装、又はHBase(商標)若しくはDynamoDB(商標)互換非リレーショナルデータベース実装などのNoSQL非リレーショナルデータベース実装のようなデータベースシステム又はリレーショナルデータベース実装を含む任意のコンピュータ実装システムとの関連で実装することができる。加えて、開示される技術は、MapReduce(商標)、バルク同期プログラミング、MPIプリミティブなどのような異なるプログラミングモデル、又はAmazon Elasticsearch Service(商標)及びAmazon Kinesis(商標)、Apache Storm(商標)、Apache Spark(商標)、Apache Kafka(商標)、Apache Flink(商標)、Truviso(商標)、IBM Info-Sphere(商標)、Borealis(商標)及びYahoo!S4(商標)を含むAmazon Web Services(AWS)(商標)のような異なるスケーラブルバッチ及びストリーム管理システムを使用して実装することができる。
【0029】
ネットワークセキュリティシステム155は、何万ものクラウドベースのアプリケーションとのユーザによる対話を監視し、生のイベントデータからメタデータを生成し、クラウドアプリケーショントランザクションから収集された情報がシステムを通過する。ネットワークセキュリティシステム155内の顧客データプライバシー保護156は、クライアントデバイス142からライブネットワークトラフィックを受け入れ、どのユーザがどのクラウドアプリを利用しているかを識別するメタデータを含め、進行中にイベントメタデータを生成して、ログイン、ファイルアップロード、及びログアウトなどのイベントを表す。クラウドアプリ対話に対応するライブネットワークトラフィックは、どのアプリが使用中であるか、どのIPアドレスからログエントリが到着するかを含むユーザ情報を含むイベントの作成を刺激する。クラウドサービス検出及びコンテンツベースの機能又はアクティビティ識別は、サービスに対して行われる呼び出しを含むサービストランザクションをリアルタイムで深く検査することによって、組織のネットワークとインターフェースするクラウドサービスを発見するアルゴリズムベースのトラフィック分析を使用する。開示される技術は、コネクタ又は標準化された統合を使用して、クライアントデバイス142とクラウドサービス118との間のトランザクションを解釈する。トランザクションは、実施されているアクティビティ及びその関連するパラメータを識別するために分解される。トランザクションは、JSONファイルとして表され、これは、ユーザがクラウドサービスにおいてどのようなアクションを行っているかを、それが起こっているときにモニタ184が解釈することを可能にする構造及びフォーマットを含む。
【0030】
一部の実装形態では、収集されたメタデータは、処理及び/又は正規化される。一部の例では、メタデータは、クラウドサービス118によって提供される構造化データ及び機能ターゲット特定のデータ構造を含む。フリーテキストなどの非構造化データもまた、クラウドサービス118によって提供され、クラウドサービス118をターゲットにすることができる。内部検査エンジン175は、構造化データと非構造化データの両方を集約することができる。例えば、アセンブルされたメタデータは、JSON(JavaScript Option表記)、BSON(バイナリJSON)、XML、Protobuf、Avro、又はThriftオブジェクトのような半構造化データフォーマットで記憶され、これは、ストリングフィールド(又は列)と、数、ストリング、アレイ、オブジェクトなどのような潜在的に異なるタイプの対応する値とからなる。他の実装形態では、JSONオブジェクトは、ネストされることができ、フィールドは、多値、例えば、アレイ、ネストされたアレイなどであり得る。これらのJSONオブジェクトは、Apache Cassandra(商標)158、GoogleのBigTable(商標)、HBase(商標)、Voldemort(商標)、CouchDB(商標)、MongoDB(商標)、Redis(商標)、Riak(商標)、Neo4j(商標)などのようなスキーマレス又はNoSQLキー値メタデータストア148に記憶され、これは、SQLのデータベースと同等のキースペースを使用して構文解析されたJSONオブジェクトを記憶する。各キースペースは、テーブルに類似し、行及び列のセットからなる列ファミリに分割される。
【0031】
一実装形態では、内部検査エンジン175は、着信メタデータを分析し、受信されたデータ内のキーワード、イベント、ユーザID、位置、人口統計、ファイルタイプ、タイムスタンプなどを識別するメタデータパーサ(明瞭性を高める省略されている)を含む。構文解析は、テキストのストリームをキーワード、又は「目標設定可能パラメータ」と称される他の意味のある要素に分解し、分析するプロセスである。一実装形態では、ターゲットパラメータのリストが、例えば、マッチングエンジン(図示せず)による構文解析又はテキストマイニングなどの更なる処理のために入力される。構文解析は、利用可能なメタデータから意味を抽出する。一実装形態では、トークン化は、メタデータのストリーム内の粒状要素(例えば、トークン)を識別するための構文解析の第1のステップとして動作するが、構文解析は次いで、トークンが見つかったコンテキストを使用して、参照されている情報の意味及び/又は種類を決定することに進む。内部検査エンジン175によって分析されたメタデータは同種ではない(例えば、多くの異なるフォーマットで多くの異なるソースが存在する)ため、特定の実装形態は、クラウドサービスごとに少なくとも1つのメタデータパーサを採用し、場合によっては2つ以上のメタデータパーサを採用する。他の実装形態では、内部検査エンジン175は、モニタ184を使用して、クラウドサービスを検査し、コンテンツメタデータをアセンブルする。
【0032】
図2は、内部検査のためのSaaSアプリケーションイベントを表すユーザデータのフローの高レベルブロック
図200を示している。SaaSユーザ202は、ネットワーク145を介してSaaSアプリケーション242を利用する。SaaSユーザ202は、タブレット122及びモバイル152などの管理クライアント112の種々のデバイスのいずれかを操作することができ、モバイル132及びコンピュータ162などのクライアントデバイス142から操作することができる。例示的なサードパーティ管理クラウドSaaSアプリは、Office 365、Boxクラウドコンテンツ管理、Salesforce、Google Workplace及びAmazon Web Services(AWS)を含む。SaaSアプリは、識別されたユーザのサービスレベルアグリーメント(SLA)及び単位時間当たりにユーザに代わって行われるAPI呼び出しの数に基づいて、又は組織のSLA及び組織内のユーザのグループによって行われるAPI呼び出しの数に基づいて、API呼び出しに対してレート制限を課すことができる。SaaSアプリケーション242は、イベントを表す通知をプッシュする。サンプルイベントの通知メタデータは、
図5A及び
図5B、並びに
図6A、
図6B、及び
図6Cに示されており、例示的なイベントは、本明細書において後で説明される。
【0033】
ブロック
図200の説明を続けると、内部検査エンジン175は、インスタンス又はアカウントのユーザ又は管理者の代わりに、レシーバ235においてSaaSアプリケーション242からユーザイベントの通知を受信する。SaaSアプリケーション242はまた、API呼び出しを介してSaaSアプリ内のオブジェクトに対する更新を生成するボット又はスクリプトと統合される。一例では、同期アプリケーション又はダウンロードボットは、組織内の単一のユーザのための一連の動作を生成することができる、1つのシーケンスにおける10,000回の動作など、多くの潜在的なAPI呼び出しイベントを生成する。単一のキューは、単一の高需要ユーザに起因して、低需要ユーザの遅延をもたらす可能性がある。内部検査エンジン175はまた、これらの更新を通知として受信する。内部検査エンジン175は、更新を識別し、それらに作用する。レシーバ235は、ユーザのコンプライアンスチェック及びパワーユーザの識別をトリガするプッシュされた通知を受信し、評価する。レシーバ235は、SaaSアプリケーション242に関連してデータストリームを処理するワーカー275への処理をスケジューリングするスケジューラ255に通知を送信する。ユーザの代わりにサードパーティSaaSベンダによって実施される動作の数は、上述したように、SLA契約を管理する1つの態様として、単位時間当たりにユーザに許可されるAPI呼び出しの数に関連する。開示される技術は、処理され得る数よりも多くの通知を生成するユーザを識別する。これは、圧倒的な数の通知がヘッドオブラインブロッキングにつながり、他のユーザの通知の処理を遅延させることになるため、ワーカーがユーザのために単位時間当たりに実施することができる動作の数についての情報なしに、ワーカー275において動作を作成し、作業をスケジューリングすることに起因して発生する問題を軽減する。
【0034】
図3は、ユーザのSLA契約に従って、単位時間当たりに処理され得るよりも多くの通知を生成するパワーユーザを識別するためのブロック
図300を示している。ネットワークセキュリティシステム155は、パワーユーザ識別子352を使用して、通知メタデータ内のログイン及びIDを使用してパワーユーザを一意に識別し、ユーザグループから、集合的に、及びユーザグループ内の個々のユーザから、SaaSベンダへの要求についてのAPIイベントレートを監視する。ある場合には、SaaSアプリケーション242は、ユーザグループ内のユーザからのAPIイベントについての通知をパワーユーザ識別子352及びスケジューラ255に送信する。パワーユーザ識別子352は、パワーユーザを、限度を超えてAPIイベントをサブミットしているものとして認識し、識別されたユーザが、組織のSLAで指定された単位時間当たりの割り振られた動作数よりも多く消費しているときを判定することができる。パワーユーザ識別子352は、パワーユーザの識別情報をスケジューラ255に供給し、スケジューラは、フィードバックに基づいてアクションを取ることができ、識別されたパワーユーザのためのアラート372を生成する。アクションのオプションについては、本明細書で後述する。スケジューラ255は、ワーカー275による通知処理をスケジューリングするときに、パワーユーザ識別子352からの情報と、ユーザのデータ使用量を追跡した結果とを考慮に入れる。別の場合には、1つ以上のアクティブアナライザ165は、一次キュー及び補助キュー377を介してSaaSベンダにサブミットされているAPIイベント要求のカウントに基づいて、APIイベントレート又はボリュームを時間内に監視する。パワーユーザ識別子352は、各ユーザのデータ使用量を追跡するためのスライディングウィンドウを維持し、定期的な時間増分で、各ユーザのデータ使用量値をデータ使用量ストア342内のテーブル内のエントリとして記憶する。
【0035】
図4は、APIイベントレートに対するユーザの影響を追跡するための、複数のユーザについての時間ウィンドウにおけるAPIイベントカウントの例示的なテーブルを示している。このテーブルは、ユーザのAPIイベントレートを経時的に追跡するための、4人のユーザに対する7つの連続した時間ウィンドウを示している。SaaSアプリケーション242がパワーユーザ識別子352に通知を送信するたびに、APIイベントレート及びボリュームがデータ使用量ストア342内で更新される。パワーユーザを認識するために、
図4に示されるテーブルの別個の行に表される各ユーザについて、前のn個のウィンドウの値と現在のウィンドウに追加された値との移動和が計算される。合計が構成可能な閾値よりも大きい場合、ユーザは、次の指定された時間量xの間、パワーユーザとして識別される。期間xの終わりに、ユーザは、パワーユーザから通常ユーザにリセットされ得る。ユーザは、構成された数の連続した時間ウィンドウの値の合計、すなわち、それらのデータ使用量が、関心のあるスライドウィンドウにわたって閾値よりも大きくなるたびに、パワーユーザとしてマークされ得る。
図4では、4人のユーザu1、u2、u3、及びu4が、イベントをアクティブに生成している。4人のユーザの各々について、7つの時間ウィンドウw1、w2、w3、w4、w5、w6、及びw7の各々において受信された通知の数が、表の行に列挙されている。この例では、構成されたポリシーは、パワーユーザが、直近の5つの連続するスロットにおいて100の閾値よりも多くを使用するユーザとして定義されることを指定する。限度の値は、ユーザグループに対するスループットペナルティのSaaSが課したトリガを超えるか又はそれに近づく値に基づいて、特定の値に構成される。この例では、パワーユーザ識別子352は、5つの連続する時間ウィンドウ455(影付き)における通知の数のu3の合計が4+20+40+5+40=109であるため、アラート372を生成する。ユーザu3は、この例では100に設定された制限を超えるAPIイベントをサブミットすることにより、パワーユーザに指定される。ユーザがパワーユーザとして認識されると、パワーユーザからSaaSへのAPIイベントサブミッションの送信は、SaaSによるスループットペナルティのトリガを回避するように割り振られる。場合によっては、パワーユーザは、APIイベントを生成するようにプログラムされたボットである。
【0036】
この開示された方法の全体的な効果は、パワーユーザ以外のユーザグループ内のユーザのレイテンシを減少させ、パワーユーザのレイテンシを増加させることである。一実施形態では、パワーユーザを記述するポリシーは、人間の管理者によって組織に対して構成可能であり、組織に対するSLA契約の要件を表す。
【0037】
内部検査エンジン175は、SaaSアプリケーション242にファイル作成、ファイル編集、及びファイル共有を含むAPIイベント通知を生成させる動作の範囲を監視する。ファイルは、ユーザを追加し、リンクを作成し、ユーザを削除し、リンクを削除し、ユーザが編集し、閲覧し、共有し、又は共有解除する許可を与えるオプションとともに、共同作業の使用を介して共有することができる。追加の動作には、コピー、移動、ダウンロード、並びにロック作成及びロック削除を介するロックが含まれる。更なる操作には、削除、削除解除、オープン、プレビュー、及びメタデータ更新が含まれ、これらは時折使用される。典型的には、1つの動作に対して1つのAPI呼び出しが使用され、1つのAPI呼び出しは、単一のAPIイベントに対応する。
【0038】
図5A及び
図5Bは、ネットワークイベントのためにサードパーティSaaSベンダから受信された例示的なプッシュされたAPI通知を、JSONスタイル表現の通知メタデータとともに列挙する。ユーザは、ログイン534及びID544を使用して、イベントタイプ「アイテムアップロード」514を要求しているとして一意に識別可能である。
図5A及び
図5Bに示されるプッシュ通知メタデータファイルは、メタデータファイル内に捕捉され得るイベント関連フィールドを網羅するものではなく、むしろ、キーフィールドを強調する。パワーユーザ識別子352は、ログイン534及びid544によって識別されたユーザのためのスライドテーブルエントリを計算するときに、「作成された時間」548を利用する。
【0039】
図6A、
図6B、及び
図6Cは、ネットワークAPIイベント「アイテム作成」604の例示的なメタデータをJSONスタイル表現で列挙している。ユーザの一意の識別子は、ログイン674及びID684によって捕捉され、パワーユーザ識別子352は、パワーユーザを識別するための単位時間当たりの通知のカウントを計算するために、664で作成された時間コンテンツを利用する。
【0040】
アクションは、APIイベントレートが、ユーザグループに対するスループットペナルティのSaaSが課したトリガを超えるか、又はそれに近づくことに応答して構成することができる。ユーザは、管理者がそのオプションを選択するためのポリシーを設定した場合、更なる処理から隔離され得る。1つのアクションのオプションは、特定のユーザの通知ワークロードを遅くし、リソースが他のユーザの通知処理のために有用に利用されることを確実にすることである。すなわち、パワーユーザからSaaSへのAPIイベントサブミッションの送信の割り振りは、パワーユーザがSaaSへのAPIイベントサブミッションを行うことを遮断することによって行うことができる。識別されたパワーユーザの遮断は、所定の時間の間、又はユーザグループによる全体的なサブミッションがもはやSaaSが課したトリガを超えなくなるまでとすることができる。別のアクションのオプションは、パワーユーザがSaaSへのAPIイベントサブミッションを行うのを一時的に中断することによって、割り振りを行うことができる。一時的に中断することは、所定の時間の間、又はユーザグループによる全体的なサブミッションがもはやSaaSが課したトリガを超えなくなるまでとすることができる。場合によっては、ユーザによるアクションがポリシーに違反することがある。この場合、構成されたポリシーは、人間の管理者が異なるアクションが保証されると判断するまで、ユーザを一時停止させることができる。一例では、ユーザは、ボックスへのリンクなどの共有リンクをファイルに追加することができる。共有リンクを有する誰もがファイルにアクセスすることができ、これは、ファイルがパブリックであると見なされることを意味する。次に、共有リンクをファイルに追加する例を挙げる。
curl --location --request PUT 'https://api.box.com/2.0/files/12345?fields=shared_link' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token_redacted}}' \
--data-raw '{
"shared_link": {
"access": "open",
"password": "very-strong-password",
"vanity_name": "my-shared-link",
"unshared_at": "2021-12-12T10:53:43-08:00",
"permissions": {
"can_download": true
}
}
}'
【0041】
セキュリティポリシー施行又は管理者によって開始されたAPIイベントは、リンクをヌルに正常に設定することができ、その結果、元のリンクは無効になり、ファイルは公にアクセス可能ではなくなり、それによって、エンタープライズポリシーを施行する。通常、このタイプのポリシーは、公に投稿されることが予期されない機密コンテンツを有する任意のファイルに一致するように設定される。ファイル上の共有リンクを除去するためのコードが次にリストされる。
curl --location --request PUT 'https://api.box.com/2.0/files/12345?fields=shared_link' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token_redacted}}' \
--data-raw '{
"shared_link": null
}'
【0042】
別のアクションのオプションは、管理者にアラートし、人間のユーザに通知を送信して、遮断又は一時的な中断を追跡することであり得る。セキュリティポリシーは、ポリシーによって異常として定義された何らかのアクションをユーザが取っている可能性があることを識別するために、x時間量当たりのユーザに関する通知のレートを監視することを含み得る。例えば、構成されたポリシーによって定義されるように、ユーザが過剰な量のコンテンツをダウンロードしているか?ユーザが100K個のファイルを有し、それらのダウンロードを開始する場合、最初の100回の通知の後、数秒又は1分で、管理者は、何かが間違っていることをトリガするアラートを受信し得、したがって、ユーザを停止させる必要がある。この場合、人間の管理者は、ユーザを隔離又はブロックすること、及び/又はアクションを継続する許可のために更なる証明書を要求することの複数のオプションのうちの1つを取ることができる。
【0043】
1つの例示的なアクションは
図7Aは、例示的なアラート372と、ユーザChandraが5分以内に1028個のファイルをダウンロードしたことを管理者に知らせるメッセージ724とを示している。
図7Bは、開示される技術の一実施形態において、パワーユーザが構成されたポリシーに違反したときに管理者が受信する例示的な電子メールを示している。この例では、パワーユーザは違反のために無効にされている(774)。
【0044】
図8は、5分の期間にわたって受信されたAPIイベントを示す、10人のユーザのうちの9人についての低減されたレイテンシを示すグラフを示している。グラフは、パワーユーザから開示された方法を介して割り振られたSaaSへのAPIイベントサブミッションの送信の割り振りの効果を示している。1500個の通知に近い、受信されたAPIイベント通知の総数816は、グラフの最上部に最も近い曲線によって示される。グラフは、約500イベントとしての違反ユーザ(パワーユーザ)からの通知の数866と、9人の他のユーザからの通知846との曲線を示している。2つのシナリオが残りの曲線によって示されている。1つのシナリオでは、ユーザは隔離されていない。すなわち、SaaSは、全てのアクティブユーザのAPIイベントを、それらの複合閾値に達した後に制限(抑制)し、ユーザ隔離なしで処理された通知の総数856は、パワーユーザだけの通知の数の曲線866よりもわずかに高い曲線である。第2のシナリオでは、ユーザが監視され、パワーユーザは、制限を超えて、より大量のAPIイベントの時間量をサブミットしているとして認識される。パワーユーザのAPIイベントサブミッションの送信は、ユーザグループに対するスループットペナルティのトリガを回避するために割り振られる。この第2のシナリオでは、パワーユーザのユーザ隔離ありで処理される通知の数836は、はるかに多く、約1000個のAPIイベント通知である。すなわち、パワーユーザ以外のユーザグループのユーザに対するレイテンシが小さくなり、パワーユーザに対するレイテンシが大きくなる。APIイベント通知を処理するための総需要が、SaaSによってトリガされる制限を超えるときにのみ、パワーユーザのためのAPIイベントレートを減速することが必要になる。
【0045】
異なるアクションでは、パワーユーザが認識されると、アクティブアナライザ165は、組織のユーザグループの残りのユーザのリソースを保護するために、パワーユーザのイベント通知を処理するための別個のキューをセットアップすることができる。開示されるプロセスは、その実施形態において、SaaSベンダにサブミットされているAPIイベント要求の1つ以上のアクティブアナライザによるカウントに基づいて、APIイベントレート又はボリュームを時間内に監視することを含む。割り振りは、パワーユーザによるSaaSベンダへのサブミッションのレートを遅くする、プロキシによって管理される補助APIイベントキューにパワーユーザを割り当てることによって行うことができる。補助APIイベントキュー割り当ては、パワーユーザによるAPIイベントサブミッションの更新されたレート又はボリュームが復元限度を下回ったとき、又はユーザグループによるAPIイベントサブミッションの更新されたレート又はボリュームが、全体として、もはやSaaSが課したトリガを超えないときに、解除することができる。別の場合には、補助APIイベントキューが空であるか、又は所定の時間の間キュー深さ制限未満であったときに、補助APIイベントキュー割り当てを解除することができる。別のケースでは、割り振りは、プロキシが、パワーユーザのためのサブミッションの処理をユーザグループ内の他のユーザのためのサブミッションから分離するオーバーフローAPIイベントチャネルにパワーユーザを割り当て、パワーユーザによるAPIイベントサブミッションの更新されたレート又はボリュームが復元限度を下回ったときにオーバーフローAPIイベントチャネル割り当てを解除することによるものであり得る。他の場合には、オーバーフローAPIイベントチャネル割り当てを解除することは、ユーザグループによるAPIイベントサブミッションの更新されたレート又はボリュームが、全体的に、もはやSaaSが課したトリガを超えないとき、又は補助APIイベントキューが空であるか、若しくは所定の時間の間キュー深さ制限未満であったときのために構成され得る。場合によっては、SaaSは、オーバーフローAPIイベントチャネルの使用を別個に測定することができる。
【0046】
次に、ユーザグループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダによってユーザグループに課されるスループットペナルティを回避するためのワークフローについて説明する。
【0047】
ワークフロー
図9は、ユーザグループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダによってユーザグループに課されるスループットペナルティを回避する代表的な方法を示している。フローチャート900は、コンピュータ又は他のデータ処理システムを用いて、例えば、情報を受信又は取り出し、情報を処理し、結果を記憶し、結果を送信するように構成された1つ以上のプロセッサによって、少なくとも部分的に実装され得る。他の実装形態は、
図9に示すものとは異なる順序で、かつ/又は異なる、より少ない、若しくは追加のアクションで、アクションを実施し得る。一部の実装形態では、複数のアクションを組み合わせることができる。便宜上、このフローチャートは、方法を実行するシステムを参照して説明される。システムは、必ずしも方法の一部ではない。
【0048】
開示される技術のこのセクション及び他のセクションで説明される方法は、以下の特徴及び/又は開示される追加の方法に関連して説明される特徴のうちの1つ以上を含むことができる。簡潔にするために、本出願に開示される特徴の組み合わせは、個々に列挙されず、特徴の各基本セットとともに繰り返されない。
【0049】
図9は、ユーザグループからの要求、及びユーザグループ内の個々のユーザからSaaSベンダへの要求について、APIイベントレート又はボリュームを時間内に集合的に監視することを含むアクション910から開始する。
【0050】
プロセス900は、アクション920に進み、ユーザグループのAPIイベントレート又はボリュームが、全体として、ユーザグループに対するスループットペナルティのSaaSが課したトリガを超えるか又はそれに近づくとき、パワーユーザを、制限を超えてAPIイベントをサブミットしているとして認識し、ユーザグループのAPIイベントレート又はボリュームに対するパワーユーザの影響を低減するためのアクションを取る。
【0051】
アクション930は、パワーユーザからSaaSへのAPIイベントサブミッションの送信を割り振り、SaaSによるスループットペナルティのトリガを回避し、それによって、パワーユーザ以外のユーザグループ内のユーザのレイテンシを低減し、パワーユーザのレイテンシを増加させることを含む。
【0052】
このセクションで説明する方法の他の実装形態は、上記で説明した方法のいずれかを実施するためにプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体を含み得る。このセクションで説明する方法の更に他の実装形態は、メモリと、上記で説明した方法のいずれかを実施するためにメモリに記憶された命令を実行するように動作可能な1つ以上のプロセッサとを含むシステムを含み得る。
【0053】
コンピュータシステム
図10は、ユーザグループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダによってユーザグループに課されるスループットペナルティを回避するために使用され得るコンピュータシステム1000の簡略化されたブロック図である。コンピュータシステム1000は、バスサブシステム1055を介していくつかの周辺デバイスと通信する少なくとも1つの中央処理装置(CPU)1072と、本明細書で説明されるネットワークセキュリティサービスを提供するためのネットワークセキュリティシステム155とを含む。これらの周辺デバイスは、例えば、メモリデバイス及びファイルストレージサブシステム1036を含むストレージサブシステム1010と、ユーザインターフェース入力デバイス1038と、ユーザインターフェース出力デバイス1076と、ネットワークインターフェースサブシステム1074とを含むことができる。入力及び出力デバイスは、コンピュータシステム1000とのユーザ対話を可能にする。ネットワークインターフェースサブシステム1074は、他のコンピュータシステム内の対応するインターフェースデバイスへのインターフェースを含む、外部ネットワークへのインターフェースを提供する。
【0054】
一実装形態では、
図1のネットワークセキュリティシステム155は、ストレージサブシステム1010及びユーザインターフェース入力デバイス1038に通信可能にリンクされる。
【0055】
ユーザインターフェース入力デバイス1038は、キーボード、マウス、トラックボール、タッチパッド、又はグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム及びマイクロフォンなどのオーディオ入力デバイス、並びに他のタイプの入力デバイスを含むことができる。概して、「入力デバイス」という用語の使用は、コンピュータシステム1000に情報を入力するための全ての可能なタイプのデバイス及び方法を含むことが意図される。
【0056】
ユーザインターフェース出力デバイス1076は、ディスプレイサブシステム、プリンタ、ファックス機、又は音声出力デバイスなどの非視覚的ディスプレイを含むことができる。ディスプレイサブシステムは、LEDディスプレイ、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、又は可視画像を作成するための何らかの他の機構を含むことができる。ディスプレイサブシステムは、音声出力デバイスなどの非視覚的ディスプレイを提供することもできる。概して、「出力デバイス」という用語の使用は、コンピュータシステム1000からユーザ又は別のマシン若しくはコンピュータシステムに情報を出力するための全ての可能なタイプのデバイス及び方法を含むことが意図される。
【0057】
ストレージサブシステム1010は、本明細書に記載のモジュール及び方法の一部又は全部の機能を提供するプログラミング及びデータ構造を記憶する。サブシステム1078は、グラフィックス処理ユニット(GPU)又はフィールドプログラマブルゲートアレイ(FPGA)であり得る。
【0058】
ストレージサブシステム1010内で使用されるメモリサブシステム1022は、プログラム実行中に命令及びデータを記憶するためのメインランダムアクセスメモリ(RAM)1032と、固定命令が記憶される読み取り専用メモリ(ROM)1034とを含む、いくつかのメモリを含むことができる。ファイルストレージサブシステム1036は、プログラム及びデータファイルのための永続的なストレージを提供することができ、ハードディスクドライブ、関連するリムーバブルメディアを伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、又はリムーバブルメディアカートリッジを含むことができる。特定の実装形態の機能を実装するモジュールは、ファイルストレージサブシステム1036によって、ストレージサブシステム1010内に、又はプロセッサによってアクセス可能な他のマシン内に記憶され得る。
【0059】
バスサブシステム1055は、コンピュータシステム1000の種々のコンポーネント及びサブシステムに、意図されるように互いに通信させるための機構を提供する。バスサブシステム1055は、単一のバスとして概略的に示されているが、バスサブシステムの代替の実装形態は、複数のバスを使用することができる。
【0060】
コンピュータシステム1000自体は、パーソナルコンピュータ、携帯型コンピュータ、ワークステーション、コンピュータターミナル、ネットワークコンピュータ、テレビ、メインフレーム、サーバファーム、疎にネットワーク化されたコンピュータの広く分散されたセット、又は任意の他のデータ処理システム若しくはユーザデバイスを含む、種々のタイプのものであり得る。コンピュータ及びネットワークの絶えず変化する性質に起因して、
図10に示されるコンピュータシステム1000の説明は、本発明の好ましい実施形態を例示するための特定の例としてのみ意図される。
図10に示すコンピュータシステムよりも多い又は少ないコンポーネントを有するコンピュータシステム1000の多くの他の構成が可能である。
【0061】
特定の実装形態
ユーザグループ内のユーザからの過剰なAPIイベントに起因して、SaaSベンダによってユーザグループに課されるスループットペナルティを回避するための一部の特定の実装形態及び特徴が、以下の議論で説明される。
【0062】
1つの開示された実装形態では、ユーザグループ内のユーザからの過剰なAPIイベントに起因してSaaSベンダによってユーザグループに課されるスループットペナルティを回避する開示された方法は、ユーザグループからの要求、及びユーザグループ内の個々のユーザからSaaSベンダへの要求について、APIイベントレート又はボリュームを時間内に集合的に監視することを含む。方法はまた、制限を超えてAPIイベントをサブミットしているとしてパワーユーザを認識することと、ユーザグループのAPIイベントレート又はボリュームに対するパワーユーザの影響を低減するためのアクションを取ることとを含む。アクションを取ることは、ユーザグループについてのAPIイベントレート又はボリュームが、全体として、ユーザグループに対するスループットペナルティのSaaSが課したトリガを超えるか又はそれに近づくときの状況に限定され得る。開示される方法は、パワーユーザからSaaSへのAPIイベントサブミッションの送信を割り振り、SaaSによるスループットペナルティのトリガを回避し、それによって、パワーユーザ以外のユーザグループ内のユーザのレイテンシを低減し、パワーユーザのレイテンシを増加させることを更に含む。
【0063】
開示される技術のこのセクション及び他のセクションで説明される方法は、以下の特徴及び/又は開示される追加の方法に関連して説明される特徴のうちの1つ以上を含むことができる。簡潔にするために、本出願に開示される特徴の組み合わせは、個々に列挙されず、特徴の各基本セットとともに繰り返されない。読者は、この方法で識別された特徴を、実装形態として識別された基本特徴のセットとどのように容易に組み合わせることができるかを理解するであろう。
【0064】
一実装形態では、APIイベントレート又はボリュームを監視する開示された方法は、ユーザグループに関するAPIイベントのSaaSベンダからの通知に基づいて、コレクタへのSaaS実装通知を用いて処理され得る。代替的な実装形態では、APIイベントレート又はボリュームの監視は、SaaSベンダにサブミットされているAPIイベント要求の1つ以上のアクティブアナライザによるカウントに基づいて処理することができ、申込者はコレクタへの通知を行う。
【0065】
割り振りは、パワーユーザがSaaSへのAPIイベントサブミッションを行うことを遮断することを含み得る。これは、APIイベントを生成するようにプログラムされたボットに適用することができる。これは、遮断を追跡するために人間のユーザに通知を送信することを含み得る。
【0066】
割り振りは、パワーユーザがSaaSへのAPIイベントサブミッションを行うことを一時的に中断することを含み得る。これは、APIイベントを生成するようにプログラムされたボットに適用することができる。それは、所定の時間の間、又はユーザグループによる全体的なサブミッションがもはやSaaSが課したトリガを超えなくなるまでとすることができる。それは、一時的な中断を追跡するために人間のユーザに通知を送信することを含み得る。
【0067】
割り振りは、プロキシによって管理される補助APIイベントキューにパワーユーザを割り当てることを含むことができ、この補助APIイベントキューは、パワーユーザに代わってサブミッションのレートを遅くし、場合によっては抑制する。補助APIイベントキューへの割り当ては、パワーユーザによるAPIイベントサブミッションの更新されたレート又はボリュームが復元限度を下回ったときに解除することができる。補助APIイベントキューへの割り当ては、ユーザグループによるAPIイベントサブミッションの更新されたレート又はボリュームが、全体として、もはやSaaSが課したトリガを超えないときに、解除することができる。補助APIイベントキューへの割り当ては、補助APIイベントキューが空であるか、又は所定の時間の間キュー深さ制限未満であったときに、解除することができる。SaaSは、一部の実装形態では、オーバーフローAPIイベントチャネルの使用を別個に測定することができる。
【0068】
割り振りは、パワーユーザのためのサブミッションのミーティングをユーザグループ内の他のユーザのためのサブミッションから分離する、プロキシによって管理されるオーバーフローAPIイベントチャネルにパワーユーザを割り当てることを含み得る。オーバーフローAPIイベントチャネルの使用は、SaaSによって別個に課金され得る。オーバーフローAPIイベントチャネルへの割り当ては、パワーユーザによるAPIイベントサブミッションの更新されたレート又はボリュームが復元限度を下回ったときに解除され得る。オーバーフローAPIイベントチャネルへの割り当ては、ユーザグループによるAPIイベントサブミッションの更新されたレート又はボリュームが、全体的に、もはやSaaSが課したトリガを超えないときに解除され得る。一部の実装形態では、SaaSは、オーバーフローAPIイベントチャネルの使用を別個に測定する。
【0069】
このセクションで説明される方法の他の実装形態は、プロセッサ上で実行されると、プロセッサに上記で説明された方法のいずれかを実施させる、メモリにロードされたプログラム命令を記憶する有形の非一時的コンピュータ可読記憶媒体を含み得る。このセクションで説明する方法の更に別の実装形態は、メモリと、上記で説明した方法のいずれかを実施するためにメモリに記憶されたコンピュータ命令を実行するように動作可能な1つ以上のプロセッサとを含むデバイスを含み得る。
【0070】
上記で説明又は参照された任意のデータ構造及びコードは、多くの実装形態によれば、コンピュータシステムによって使用するためのコード及び/又はデータを記憶することができる任意のデバイス又は媒体であり得るコンピュータ可読記憶媒体上に記憶される。これには、揮発性メモリ、非揮発性メモリ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、DVD(ディジタルバーサタイルディスク又はディジタルビデオディスク)などの磁気及び光記憶デバイス、あるいは現在知られている又は今後開発されるコンピュータ可読媒体を格納することができる他の媒体が含まれるが、これらに限定されるものではない。
【0071】
前述の説明は、開示される技術の作製及び使用を可能にするために提示される。開示される実装形態に対する種々の修正が明らかになり、本明細書で定義される一般原理は、開示される技術の趣旨及び範囲から逸脱することなく、他の実装形態及び適用例に適用され得る。したがって、開示される技術は、示される実装形態に限定されるものではなく、本明細書で開示される原理及び特徴と一致する最も広い範囲を与えられるべきである。開示される技術の範囲は、添付の特許請求の範囲によって定義される。
【手続補正書】
【提出日】2023-08-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
少なくとも1つのパワーユーザからの過剰なアプリケーションプログラムインターフェース(略してAPI)イベントに起因して、サービスとしてのソフトウェア(略してSaaS)ベンダによってグループに課されるスループットペナルティ
の起動を阻止する方法であって、
ユーザグループ内のユーザである、個人として、及びユーザグループの登録されたメンバーとしての両方からSaaSベンダへの要求について、APIイベントレート又はボリュームを時間内に監視することと、
少なくとも、前記ユーザグループについての前記APIイベントレート又はボリュームが、全体として、前記ユーザグループに対する前記スループットペナルティ
を課すためのSaaS
ベンダが課したトリガを超えるか又はそれに近づくとき、
全体として、制限を超えてAPIイベントをサブミット
する前記ユーザグループのメンバーとして登録されたパワーユーザを、前記監視に基づいて、識別し、前記ユーザグループの前記APIイベントレート又はボリュームに対する前記パワーユーザの影響を低減するためのアクションを取ることと、
前記ユーザグループに代わって、前記パワーユーザによる前記SaaSベンダへのサブミッションのレートを遅くする、プロキシによって管理される補助APIイベントキューに前記パワーユーザを割り当てることによって、前記パワーユーザから前記SaaS
ベンダへのAPIイベントサブミッションの送信を割り振り、
それによって、前記SaaS
ベンダによる前記スループットペナルティのトリガを回避
することと、を含む、方法。
【請求項2】
前記ユーザグループに対するAPIイベントの前記SaaSベンダからの通知に基づいて、前記APIイベントレート又はボリュームを時間内に監視することを更に含む、請求項1に記載の方法。
【請求項3】
前記SaaSベンダにサブミットされているAPIイベント要求の1つ以上のアクティブアナライザによるカウントに基づいて、前記APIイベントレート又はボリュームを時間内に監視することを更に含む、請求項1に記載の方法。
【請求項4】
前記パワーユーザが前記SaaSへのAPIイベントサブミッションを行うことを遮断すること及び一時的に中断することのうちの1つによって割り振りを行うことを更に含む、請求項1に記載の方法。
【請求項5】
前記パワーユーザは、前記APIイベントを生成するようにプログラムされたボットである、請求項4に記載の方法。
【請求項6】
前記遮断又は一時的な中断を追跡するために人間のユーザに通知を送信することを更に含む、請求項4に記載の方法。
【請求項7】
前記一時的に中断することは、所定の時間の間、又は前記ユーザグループによる全体的なサブミッションがもはや前記SaaSが課したトリガを超えなくなるまでである、請求項4に記載の方法。
【請求項8】
前記パワーユーザによるAPIイベントサブミッションの更新されたレート又はボリュームが復元限度を下回ったとき、前記補助APIイベントキューへの割り当てを解除することを更に含む、請求項
1に記載の方法。
【請求項9】
前記ユーザグループによるAPIイベントサブミッションの更新されたレート又はボリュームが、全体的に、もはや前記SaaSが課したトリガを超えないとき、前記補助APIイベントキューへの割り当てを解除することを更に含む、請求項
1に記載の方法。
【請求項10】
前記補助APIイベントキューが空であるか、又は所定の時間の間キュー深さ制限未満であったとき、前記補助APIイベントキューへの割り当てを解除することを更に含む、請求項
1に記載の方法。
【請求項11】
少なくとも1つのパワーユーザからの過剰なアプリケーションプログラムインターフェース(略してAPI)イベントに起因して、サービスとしてのソフトウェア(略してSaaS)ベンダによってグループに課されるスループットペナルティの起動を阻止する方法であって、
ユーザグループ内のユーザである、個人として、及びユーザグループの登録されたメンバーとしての両方からSaaSベンダへの要求について、APIイベントレート又はボリュームを時間内に監視することと、
少なくとも、前記ユーザグループについての前記APIイベントレート又はボリュームが、全体として、前記ユーザグループに対する前記スループットペナルティを課すためのSaaSベンダが課したトリガを超えるか又はそれに近づくとき、全体として、制限を超えてAPIイベントをサブミットする前記ユーザグループのメンバーとして登録されたパワーユーザを、前記監視に基づいて、識別し、前記ユーザグループの前記APIイベントレート又はボリュームに対する前記パワーユーザの影響を低減するためのアクションを取ることと、
前記ユーザグループに代わって、 前記
登録されたパワーユーザのためのサブミッションの処理を前記ユーザグループ内の他のユーザのためのサブミッションから分離する
補助APIイベントキューを介して、プロキシによって管理されるオーバーフローAPIイベントチャネルに前記
登録されたパワーユーザを割り当てることによって
、前記登録されたパワーユーザから前記SaaSベンダへのAPIイベントサブミッションの送信を割り振り
、それによって、前記SaaSベンダによる前記スループットペナルティのトリガを回避することと、を含む、方法。
【請求項12】
前記パワーユーザによるAPIイベントサブミッションの更新されたレート又はボリュームが復元限度を下回ったとき、前記オーバーフローAPIイベントチャネルへの割り当てを解除することを更に含む、請求項1
1に記載の方法。
【請求項13】
前記ユーザグループによるAPIイベントサブミッションの更新されたレート又はボリュームが、全体的に、もはや前記SaaSが課したトリガを超えないとき、前記オーバーフローAPIイベントチャネルへの割り当てを解除することを更に含む、請求項1
1に記載の方法。
【請求項14】
前記オーバーフローAPIイベントチャネルが空であるか、又は所定の時間の間キュー深さ制限未満であったとき、前記オーバーフローAPIイベントチャネルへの割り当てを解除することを更に含む、請求項1
1に記載の方法。
【請求項15】
前記SaaSは、前記オーバーフローAPIイベントチャネルの使用を別個に測定する、請求項1
1に記載の方法。
【請求項16】
メモリにロードされたプログラム命令を含む有形の非一時的コンピュータ可読記憶媒体であって、前記プログラム命令は、
ハードウェアプロセッサ上で実行されると、前記
ハードウェアプロセッサに、
少なくとも1つのパワーユーザからの過剰なアプリケーションプログラムインターフェース(略してAPI)イベントに起因して、サービスとしてのソフトウェア(略してSaaS)ベンダによってグループに対して課されるスループットペナルティ
の起動を阻止する
ステップを実装させ、前記
ステップは、
ユーザグループ内のユーザである、個人として、及びユーザグループの登録されたメンバーとしての両方からSaaSベンダへの要求について、APIイベントレート又はボリュームを時間内に監視することと、
少なくとも、前記ユーザグループについての前記APIイベントレート又はボリュームが、全体として、前記ユーザグループに対する
前記スループットペナルティ
を課すためのSaaS
ベンダが課したトリガを超えるか又はそれに近づくとき、
全体として、制限を超えてAPIイベントをサブミット
する前記ユーザグループのメンバーとして登録されたパワーユーザを、前記監視に基づいて、識別し、前記ユーザグループの前記APIイベントレート又はボリュームに対する前記パワーユーザの影響を低減するためのアクションを取ることと、
前記ユーザグループに代わって、前記パワーユーザによる前記SaaSベンダへのサブミッションのレートを遅くする、プロキシによって管理される補助APIイベントキューに前記パワーユーザを割り当てることによって、前記パワーユーザから前記SaaS
ベンダへのAPIイベントサブミッションの送信を割り振り、
それによって、前記SaaS
ベンダによる前記スループットペナルティのトリガを回避
することと、を含む、有形の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記ステップが、前記ユーザグループに対するAPIイベントの前記SaaSベンダからの通知に基づいて、前記APIイベントレート又はボリュームを時間内に監視することを更に含む、請求項1
6に記載の有形の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記ステップが、前記パワーユーザが前記SaaSへのAPIイベントサブミッションを行うことを遮断すること及び一時的に中断することのうちの1つによって割り振りを行うことを更に含む、請求項1
6に記載の有形の非一時的なコンピュータ可読記憶媒体。
【請求項19】
前記ステップが、前記遮断又は一時的な中断を追跡するために人間のユーザに通知を送信することを更に含む、請求項1
8に記載の有形の非一時的なコンピュータ可読記憶媒体。
【請求項20】
前記一時的に中断することは、所定の時間の間、又は前記ユーザグループによる全体的なサブミッションがもはや前記SaaSが課したトリガを超えなくなるまでである、請求項1
8に記載の有形の非一時的コンピュータ可読記憶媒体。
【請求項21】
少なくとも1つのパワーユーザからの過剰なアプリケーションプログラムインターフェース(略してAPI)イベントに起因してサービスとしてのソフトウェア(略してSaaS)ベンダによってグループに対して課されるスループットペナルティ
の起動を阻止するためのデバイスであって、前記デバイスは、プロセッサと、前記プロセッサに結合されたメモリと、前記メモリにロードされたコンピュータ命令と、を含み、前記コンピュータ命令は、実行されると、前記プロセッサに、
ユーザグループ内のユーザである、個人として、及びユーザグループの登録されたメンバーとしての両方からSaaSベンダへの要求について、APIイベントレート又はボリュームを時間内に監視することと、
少なくとも、前記ユーザグループについての前記APIイベントレート又はボリュームが、全体として、前記ユーザグループに対する
前記スループットペナルティ
を課すためのSaaS
ベンダが課したトリガを超えるか又はそれに近づくとき、
全体として、制限を超えてAPIイベントをサブミット
する前記ユーザグループのメンバーとして登録されたパワーユーザを、前記監視に基づいて、識別し、前記ユーザグループの前記APIイベントレート又はボリュームに対する前記パワーユーザの影響を低減するためのアクションを取ることと、
前記ユーザグループに代わって、前記パワーユーザによる前記SaaSベンダへのサブミッションのレートを遅くする、プロキシによって管理される補助APIイベントキューに前記パワーユーザを割り当てることによって、前記パワーユーザから前記SaaS
ベンダへのAPIイベントサブミッションの送信を割り振り、
それによって、前記SaaS
ベンダによる前記スループットペナルティのトリガを回避
することと、を含む
ステップを実装させる、デバイス。
【請求項22】
前記ステップが、前記SaaSベンダにサブミットされているAPIイベント要求の1つ以上のアクティブアナライザによるカウントに基づいて、前記APIイベントレート又はボリュームを時間内に監視することを更に含む、請求項2
1に記載のデバイス。
【請求項23】
前記ステップが、
前記パワーユーザによるAPIイベントサブミッションの更新されたレート又はボリュームが復元限度を下回ること、
前記ユーザグループによるAPIイベントサブミッションの更新されたレート又はボリュームが、全体として、もはや前記SaaSが課したトリガを超えないこと、
及び
前記補助APIイベントキューが、空であるか、又は所定の時間の間キュー深さ制限未満であったこと、のうちの少なくとも1つが発生したときに、前記補助APIイベントキューへの割り当てを解除することを更に含む、請求項2
1に記載のデバイス。
【国際調査報告】