(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-10
(45)【発行日】2024-04-18
(54)【発明の名称】アクセス制御情報の修正のポリシーに基づくトリガー
(51)【国際特許分類】
G06F 21/62 20130101AFI20240411BHJP
G06F 21/45 20130101ALI20240411BHJP
【FI】
G06F21/62
G06F21/45
(21)【出願番号】P 2021571288
(86)(22)【出願日】2020-06-08
(86)【国際出願番号】 IB2020055358
(87)【国際公開番号】W WO2020250103
(87)【国際公開日】2020-12-17
【審査請求日】2022-11-21
(32)【優先日】2019-06-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ガルガロ、ジャンルカ
(72)【発明者】
【氏名】ロンバルディ、ルイージ
(72)【発明者】
【氏名】ファッゾーネ、ダビデ
(72)【発明者】
【氏名】スペランデオ、ラッファエレ
【審査官】岸野 徹
(56)【参考文献】
【文献】欧州特許出願公開第02009865(EP,A1)
【文献】特開2009-289137(JP,A)
【文献】国際公開第2013/042634(WO,A1)
【文献】特表2015-516610(JP,A)
【文献】米国特許出願公開第2009/0300711(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/45
(57)【特許請求の範囲】
【請求項1】
1つまたは複数の対象による情報技術システムの1つまたは複数のリソースへのアクセスを制御するためのアクセス制御情報の保守を容易にするための方法であって、
制御コンピューティング・システムによって、前記リソースと、前記対象と、前記対象による前記リソースへの前記アクセスとに関連する1つまたは複数のポリシー・パラメータにそれぞれ基づく1つまたは複数のトリガー・ポリシーを取り出すこと
であって、前記1つまたは複数のトリガー・ポリシーの各々が、真であるかを決定することによって評価される、前記1つまたは複数のトリガー・ポリシーを取り出すことと、
前記制御コンピューティング・システムによって、前記ポリシー・パラメータを取り出すことと、
前記制御コンピューティング・システムによって、対応する前記ポリシー・パラメータに従って前記トリガー・ポリシーを評価することと、
前記制御コンピューティング・システムによって、前記トリガー・ポリシーの前記評価の結果に従ってトリガー・インジケータを決定すること
であって、前記トリガー・インジケータが、対応するスコアに従って真である前記トリガー・ポリシーに重み付けすることによって計算されるトリガー指標である、前記トリガー・インジケータを決定することと、
前記制御コンピューティング・システムによって、前記トリガー・インジケータに応答して前記アクセス制御情報の修正をトリガーするための前記トリガー・インジケータの指示を出力することであって、前記修正が、前記対象を前記リソースにマッピングするためのマイニング・アクティビティおよび前記マイニング・アクティビティの結果に基づく前記アクセス制御情報の可能性のある更新を含む、前記出力することとを含む、方法。
【請求項2】
前記1つまたは複数のトリガー・ポリシーの各々は、前記情報技術システムの前記1つまたは複数のリソース、前記1つまたは複数の対象、前記情報技術システムの前記1つまたは複数のリソースへの前記アクセスに関連する前記アクセス制御情報の修正のための条件を識別し、
前記ポリシー・パラメータは、第1の閾値を超える新しいユーザの数の変更、第2の閾値を超える部門内の新しいユーザの数の変更、第3の閾値を超える組織図内の変更の数の変更、前記1つまたは複数のトリガー・ポリシーの最後の評価以降の第4の閾値を超える前記対象の新しいロールの数を含む、請求項1に記載の方法。
【請求項3】
前記修正の必要性を示す正の値を有する前記トリガー・インジケータに応答して前記マイニング・アクティビティを実行することをさらに含む、請求項
1または2に記載の方法。
【請求項4】
前記マイニング・アクティビティの前記結果に従って前記アクセス制御情報を更新することをさらに含む、請求項
1ないし3のいずれか一項に記載の方法。
【請求項5】
前記アクセス制御情報が、前記情報技術システムにおいて1つまたは複数のアクティビティを実行するための1つまたは複数の権限をそれぞれ含んでいる1つまたは複数のロールの指示、および前記対象の各々に割り当てられた前記ロールのうちの1つまたは複数の指示を含み、前記マイニング・アクティビティがロール・マイニングである、請求項1ないし
4のいずれか一項に記載の方法。
【請求項6】
前記アクセス制御情報が、1つまたは複数のルールを含み、各ルールが、1つまたは複数の属性に基づいており、前記ルールが満たされた場合の前記情報技術システムにおけるアクティビティに関連する少なくとも1つの権限を示し、前記マイニング・アクティビティがルール・マイニングである、請求項1ないし
5のいずれか一項に記載の方法。
【請求項7】
前記制御コンピューティング・システムによって、前記トリガー・ポリシーに割り当てられた対応するスコアに従って前記トリガー・インジケータを決定することをさらに含む、請求項1ないし
6のいずれか一項に記載の方法。
【請求項8】
前記制御コンピューティング・システムによって、前記修正をトリガーすることに寄与する前記トリガー・ポリシーのうちの関連する1つまたは複数に関連付けて前記修正を示す履歴情報を格納することと、
前記制御コンピューティング・システムによって、前記修正後のランク付け時に、前記履歴情報および前記アクセス制御情報に従って、前記関連するトリガー・ポリシーの前記スコアを更新することとをさらに含む、請求項1ないし
7のいずれか一項に記載の方法。
【請求項9】
前記制御コンピューティング・システムによって、ランク付け時に、1つまたは複数の影響を受けた制御項目の指示を含んでいる履歴情報を格納することと、
前記制御コンピューティング・システムによって、前記ランク付け時に、前記影響を受けた制御項目に従って前記関連するトリガー・ポリシーの前記スコアを更新することとをさらに含む、請求項1ないし
8のいずれか一項に記載の方法。
【請求項10】
前記制御コンピューティング・システムによって、ランク付け時に、影響を受けた制御項目の対応する存続期間インジケータを取り出すことと、
前記制御コンピューティング・システムによって、前記影響を受けた制御項目の前記存続期間インジケータに従って前記関連するトリガー・ポリシーの前記スコアを更新することとをさらに含む、請求項1ないし
9のいずれか一項に記載の方法。
【請求項11】
前記制御コンピューティング・システムによって、ランク付け時に、影響を受けた制御項目の対応する範囲インジケータを取り出すことと、
前記制御コンピューティング・システムによって、前記影響を受けた制御項目の前記範囲インジケータに従って前記関連するトリガー・ポリシーの前記スコアを更新することとをさらに含む、請求項1ないし
10のいずれか一項に記載の方法。
【請求項12】
前記影響を受けた制御項目の各々の前記範囲インジケータが、前記影響を受けた制御項目に対応する前記対象に基づく、請求項
11に記載の方法。
【請求項13】
前記影響を受けた制御項目の各々の前記範囲インジケータが、前記情報技術システムにおいてアクティビティを実行するための前記影響を受けた制御項目の権限に基づく、請求項
11または
12に記載の方法。
【請求項14】
前記トリガー・ポリシーのうちの条件付けられた1つまたは複数が、1つまたは複数の評価条件の指示を含み、
前記方法が、前記制御コンピューティング・システムによって、前記条件付けられたトリガー・ポリシーの各々の前記評価を、対応する前記評価条件で条件付けることをさらに含む、請求項1ないし
13のいずれか一項に記載の方法。
【請求項15】
前記評価条件のうちの少なくとも1つが、対応する条件付けタスクの完了である、請求項
14に記載の方法。
【請求項16】
前記制御コンピューティング・システムによって、前記ポリシー・パラメータの大きな変更を決定することと、
前記制御コンピューティング・システムによって、前記ポリシー・パラメータの前記大きな変更に応答して、前述の前記トリガー・ポリシーを前記取り出すこと、前記ポリシー・パラメータを取り出すこと、前記トリガー・ポリシーを評価すること、前記トリガー・インジケータを決定すること、および前記トリガー・インジケータの前記指示を出力することを含む、検証プロセスを実行することとをさらに含む、請求項1ないし
15のいずれか一項に記載の方法。
【請求項17】
請求項1ないし
16のいずれか一項に記載の方法における各ステップを制御コンピューティング・システムに実行させるためのコンピュータ・プログラム。
【請求項18】
請求項1ないし
16のいずれか一項に記載の方法における各ステップを制御コンピューティング・システムに実行させるためのコンピュータ・プログラムを記録した、コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報技術分野に関連している。より詳細には、本開示は、情報技術システムへのアクセスの制御に関連している。
【背景技術】
【0002】
本開示の背景は、文脈に関連する技術の説明と共に紹介される。しかし、この説明は、文書、活動、人工物などを参照する場合でも、説明された技術が従来技術の一部であるということ、または本開示に関連する分野における一般的な通常の知識であるということを示唆することも表すこともない。
【0003】
情報技術システムへのアクセスの制御は、情報技術システムの管理にとって極めて重要な問題である。大まかに言えば、この問題は、さまざまな対象(例えば、(人間)のユーザ)によって情報技術システムの(保護された)リソースに対して実行されることがあるアクティビティを制御するために使用されるプロセスに関連している。このアクセス制御プロセスは、(正しい)対象が、正しい理由のために、正しい時間に(正しい)アクティビティを実行できるようにすることを目的とし、これによって、不正な対象が情報技術システムにおいて望ましくない(一般に危険な)アクティビティを実行するリスクを回避する(または少なくとも、大幅に低減する)。これは、データ・セキュリティおよび規制対応を保証するために非常に重要である。
【発明の概要】
【0004】
本発明の第1の態様によれば、1つまたは複数の対象による情報技術システムへのアクセスの制御を容易にするためのコンピュータ実装方法、コンピュータ・プログラム製品、コンピュータ・システム、および制御コンピューティング・システムが提供されている。この方法は、制御コンピューティング・システムによって、情報技術システムに関連する1つまたは複数の状態パラメータにそれぞれ基づく1つまたは複数のトリガー・ポリシーを取り出すことと、制御コンピューティング・システムによって、状態パラメータを取り出すことと、制御コンピューティング・システムによって、対応する状態パラメータに従ってトリガー・ポリシーを評価することと、制御コンピューティング・システムによって、トリガー・ポリシーの前述の評価の結果に従ってトリガー・インジケータを決定することと、制御コンピューティング・システムによって、トリガー・インジケータに従って情報技術システムへのアクセスを制御するために、アクセス制御情報の修正をトリガーするためのトリガー・インジケータの指示を出力することとを含む。
【0005】
本明細書では、基本的な理解を可能にするために、本開示の簡略化された概要が提示されるが、この概要の唯一の目的は、以下のより詳細な説明のための前置きとして、本開示のいくつかの概念を簡略化された形態で紹介することであり、この概要は、本開示の主要な要素の識別として解釈されるべきではなく、本開示の範囲の概要説明としても解釈されるべきではない。
【0006】
大まかに言えば、本開示は、アクセス制御情報の修正のポリシーに基づくトリガーを提供するというアイデアに基づく。
【0007】
特に、実施形態は、情報技術システムへのアクセスの制御を容易にするための方法を提供する。1つまたは複数のトリガー・ポリシーが、情報技術システムに関連する1つまたは複数の状態パラメータに従って評価される。情報技術システムへのアクセスを制御するためのアクセス制御情報の修正が、トリガー・ポリシーの評価の結果に従ってトリガーされる。
【0008】
さらに別の態様は、この方法を実装するためのコンピュータ・プログラムを提供する。
【0009】
さらに別の態様は、対応するコンピュータ・プログラム製品を提供する。
【0010】
さらに別の態様は、対応する制御コンピューティング・システムを提供する。
【0011】
より詳細には、参照によって文字通りに本明細書に組み込まれているすべての請求項の表現と共に(変更すべきところは変更してすべてのその他の態様に適用される、いずれかの特定の態様を参照して提供されるいずれかの有利な特徴と共に)、本開示の1つまたは複数の態様が独立請求項において提示され、有利な特徴が従属請求項において提示される。
【0012】
本発明のこれらおよびその他の目的、特徴、および長所は、添付の図面に関連して読まれる本発明の以下の詳細な実施形態例の説明から、明らかになるであろう。各図が、詳細な説明と併せて、本発明の当業者の理解を促進することにおいて明確にするためにあるため、図面のさまざまな特徴は一定の縮尺ではない。
【図面の簡単な説明】
【0013】
【
図1A】本開示の実施形態に従って、解決策の適用例を示す図である。
【
図1B】本開示の実施形態に従って、解決策の適用例を示す図である。
【
図1C】本開示の実施形態に従って、解決策の適用例を示す図である。
【
図1D】本開示の実施形態に従って、解決策の適用例を示す図である。
【
図2】本開示の実施形態に従う解決策が実践されてよい情報技術インフラストラクチャの概略ブロック図を示す図である。
【
図3】本開示の実施形態に従って解決策を実装するために使用されてよい、主要なソフトウェア・コンポーネントを示す図である。
【
図4A】本開示の実施形態に従って解決策の実装に関連するアクティビティの流れを説明するアクティビティ図を示す図である。
【
図4B】本開示の実施形態に従って解決策の実装に関連するアクティビティの流れを説明するアクティビティ図を示す図である。
【
図4C】本開示の実施形態に従って解決策の実装に関連するアクティビティの流れを説明するアクティビティ図を示す図である。
【
図5】本発明の実施形態に従ってクラウド・コンピューティング環境を示す図である。
【
図6】本発明の実施形態に従って抽象モデル・レイヤを示す図である。
【発明を実施するための形態】
【0014】
請求される構造および方法の詳細な実施形態が本明細書において開示されるが、開示された実施形態が、さまざまな形態で具現化されてよい請求される構造および方法の例にすぎないということが、理解され得る。しかし、本発明は、さまざまな形態で具体化されてよく、本明細書において示された実施形態例に制限されると解釈されるべきではない。説明において、周知の特徴および技術の詳細は、提示された実施形態を不必要に分かりにくくするのを避けるために、省略されることがある。
【0015】
本発明の実施形態は、情報技術分野に関連している。より詳細には、本開示は、情報技術システムへのアクセスの制御に関連している。
【0016】
以下で説明される実施形態例は、特に、情報技術システム内のアクセス制御情報の修正のポリシーに基づくトリガーを可能にするためのシステム、方法、およびプログラム製品を提供する。したがって、本実施形態は、1つまたは複数の対象(またはユーザもしくはシステム)による情報技術システムへのアクセスの制御を容易にすることによって、コンピューティングの技術分野を改善する能力を有する。
【0017】
アクセス制御プロセスは、通常、IDとアクセス管理(以下では、「IAM(Identity and Access Management)」)アプリケーションによって実施される。簡単に言うと、IAMアプリケーションは、対象に関連しているデジタル・アイデンティティ(例えば、パスワードを伴うユーザのアカウント)の管理を可能にする。IAMアプリケーションは、情報技術システムにおいて各対象が特定のアクティビティ(例えば、ファイルの読み取り/書き込み)を実行することを許可する特定の権限を付与することも可能にする。次に、IAMアプリケーションは、それらの権限に従って、対象による情報技術システムへのアクセスの実施を可能にする(例えば、あるファイルに対する読み取り権限を持っている対象は、そのファイルを更新できない)。さらに、IAMアプリケーションは、情報技術システムへのアクセスの、アクセス制御プロセスを管理するセキュリティ・ポリシーへの適合性を監視することを可能にする。
【0018】
アクセス制御プロセスは、異なるセキュリティ・モデルに基づいてよい。例えば、最も一般的なセキュリティ・モデルは、ロール・ベース・アクセス制御(以下では、「RBAC(Role Based Access Control)」)モデルである。その場合、1つまたは複数のロールが定義され、各ロールが(情報技術システムにおいてアクティビティを実行するための)1つまたは複数の権限を持っている。各対象には1つまたは複数のロールが割り当てられ、その後、対応する権限が割り当てられる。別の有望なセキュリティ・モデルは、属性ベースのアクセス制御(ABAC:Attribute Based Access Control)モデルであり、このモデルはポリシー・ベースのアクセス制御(PBAC:Policy Based Access Control)またはクレーム・ベースのアクセス制御(CBAC:Claims Based Access Control)とも呼ばれる。その場合、1つまたは複数の属性に基づいて、権限ごとに1つまたは複数のルールが定義され、各対象に、対応する属性によって満たされたルールの権限が割り当てられる。これによって、特に(数千の対象および権限が存在する)大規模な組織において、アクセス制御プロセスの管理を容易にする。
【0019】
しかし、アクセス制御プロセスは、通常、(相対的に高い頻度で変化する)動的要求の影響を受け、動的要求は、例えば、組織変更、買収、および業務の外部委託、ならびに規制の変更に起因する。したがって、情報技術システムへのアクセスを制御するために使用されるアクセス制御情報は、(実際の要求に遅れずについていこうとして)継続的に修正される。特に、アクセス制御プロセスがRBAC/ABACモデルに基づく場合、対象とリソースの間のマッピングの典型的なパターンを発見するために、ロール/ルール・マイニング技術が適用されることがあり、それに応じて、このパターンがロール/ルールの変更に使用される。いずれの場合でも、このロール/ルール・マイニング・アクティビティは時間がかかり、いずれの場合でも、大変な手動の介入を必要とする。上記のすべてが、アクセス制御情報の修正を非常に高コストにする。
【0020】
したがって、アクセス制御情報の修正は、通常、大きな変更を伴うと見なされるイベントのみに応答して実行され、例えば、組織図における激変、新しい企業の合併、事業部門の独立、新しい戦略領域の作成などの場合に実行される。
【0021】
しかし、アクセス制御情報を修正するための有効な理由であるように見えたイベントであるにもかかわらず、得られた結果がコストに見合わないということが起こることがあり、逆に、代わりに重要でないように見えたイベントが、アクセス制御情報における重大な変更を必要としたということが起こることがある。いずれの場合でも、個別には大きな変更を伴わない小規模なイベントでさえ、長時間にわたって継続的に発生する場合、大幅な変更を伴うことがある。
【0022】
したがって、アクセス制御情報を修正するための正しい時間の決定は、困難であり、いずれの場合でも、完全に手動の作業であり、個人のスキルに強く依存しており、誤りを起こしやすく、ほとんど再現不可能である。結果として、アクセス制御情報の無用な修正を実行するリスクが存在し、情報技術システムの管理コストに悪影響を与える。反対に、アクセス制御情報の有用な修正を遅らせるリスクが存在し、データ・セキュリティまたは規制対応あるいはその両方がリスクにさらされることを引き起こすことがある。
【0023】
本明細書では、基本的な理解を可能にするために、本開示の簡略化された概要が提示されるが、この概要の唯一の目的は、以下のより詳細な説明のための前置きとして、本開示のいくつかの概念を簡略化された形態で紹介することであり、この概要は、本開示の主要な要素の識別として解釈されるべきではなく、本開示の範囲の概要説明としても解釈されるべきではない。
【0024】
大まかに言えば、本開示は、アクセス制御情報の修正のポリシーに基づくトリガーを提供するというアイデアに基づく。
【0025】
特に、実施形態は、1つまたは複数の対象による情報技術システムの1つまたは複数のリソースへのアクセスを制御するために、アクセス制御情報の保守を容易にするための方法を提供する。リソース、対象、または対象によるリソースへのアクセス、あるいはその組み合わせに関連する1つまたは複数のポリシー・パラメータに従って、1つまたは複数のトリガー・ポリシーが評価される。対象をリソースにマッピングするためのマイニング・アクティビティを含むアクセス制御情報の修正が、トリガー・ポリシーの評価の結果に従ってトリガーされる。
【0026】
さらに別の態様は、この方法を実装するためのコンピュータ・プログラムを提供する。
【0027】
さらに別の態様は、対応するコンピュータ・プログラム製品を提供する。
【0028】
さらに別の態様は、対応する制御コンピューティング・システムを提供する。
【0029】
より詳細には、参照によって文字通りに本明細書に組み込まれているすべての請求項の表現と共に(変更すべきところは変更してすべてのその他の態様に適用される、いずれかの特定の態様を参照して提供されるいずれかの有利な特徴と共に)、本開示の1つまたは複数の態様が独立請求項において提示され、有利な特徴が従属請求項において提示される。
【0030】
図1A~1Dを参照すると、本開示の実施形態に従って、解決策の適用例が示されている。
【0031】
図1Aに示されているように、アクセス制御プロセスは、情報技術システム100へのアクセスを制御するように実装される。特に、さまざまな対象(例えば、(人間の)ユーザ)によって情報技術システム100の1つまたは複数のリソースに対して実行されることがあるアクティビティが、対応するアクセス制御情報に従って制御される。例えば、アクセス制御プロセスがRBACモデルに基づく場合、アクセス制御情報は、アクティビティを実行するための権限および対象へのそれらの割り当てを含んでいるロールを示し、アクセス制御プロセスがABACモデルに基づく場合、アクセス制御情報は、対応する属性によって満たされたときに対象によってアクティビティを実行するための権限を定義するルールを示す。
【0032】
本開示の実施形態に従う解決策では、アクセス制御情報の修正がいつ必要とされるかを決定するために、1つまたは複数のトリガー・ポリシーが提供される。各トリガー・ポリシーは、リソース、対象、または対象によるリソースへのアクセス、あるいはその組み合わせに関連する1つまたは複数のポリシー・パラメータ(例えば、それらのうちの新しいものの数)に基づく。例えば、時間と共に定期的に、トリガー・ポリシーおよびそれらのポリシー・パラメータが取り出される。
【0033】
図1Bに示されているように、対応するポリシー・パラメータに従ってトリガー・ポリシーが評価され、例えば、各トリガー・ポリシーが、真または偽のいずれであるかを決定することによって評価される。
【0034】
図1Cに示されているように、トリガー・ポリシーの評価に従ってトリガー・インジケータが決定される。例えば、トリガー・インジケータは、対応するスコア(アクセス制御情報の修正をトリガーすることにおける有効性に依存する)によれば真であるトリガー・ポリシーに重み付けすることによって計算されるトリガー指標である。
【0035】
図1Dに示されているように、それに応じて(例えば、トリガー指標がしきい値を超えたときに)アクセス制御情報の修正を引き起こすために、トリガー・インジケータが出力され(例えば、表示され)、特に、この修正は、対象をリソースにマッピングするためのマイニング・アクティビティ(例えば、RBACモデルの場合はロール・マイニング、およびABACモデルの場合はルール・マイニング)、およびマイニング・アクティビティの結果に基づくアクセス制御情報の可能性のある更新を含む。
【0036】
前述した解決策は、アクセス制御情報を修正するための正しい時間を決定することを容易にし、例えば、アクセス制御情報の修正が必要とされているか(すなわち、適切であるか、有用であるか、または必要であるか)どうかを現在確認することができる。この結果は、高度に正確であり、信頼性があり、かつ再現可能であるように、実質的に自動的な方法で実現される。結果として、アクセス制御情報の無用な修正を実行するリスクが回避され(または少なくとも大幅に低減され)、これには、情報技術システム100の管理コストに対する有利な効果がある。反対に、アクセス制御情報の有用な修正を遅らせるリスクが回避され(または少なくとも大幅に低減され)、それによって、データ・セキュリティまたは規制対応あるいはその両方がリスクにさらされるのを防ぐ。
【0037】
図2を参照すると、本開示の実施形態に従う解決策が実践されてよい情報技術インフラストラクチャ200の概略ブロック図が示されている。
【0038】
情報技術インフラストラクチャ200は、クライアント/サーバ・モデルに基づく分散アーキテクチャを含む。特に、1つまたは複数のサーバ・コンピューティング・マシンまたは単にサーバ205は、サービスを1つまたは複数のクライアント・コンピューティング・マシンまたは単にクライアント210に提供する。このために、クライアント210は、(通信)ネットワーク215を経由して(例えば、インターネットに基づいて)サーバ205と通信する。サーバ205のうちの1つまたは複数は、アクセスが保護される必要がある前述した情報技術システムを実装する、参照番号205rで区別されているリソース・サーバであり、(例えば、顧客関係管理(CRM:customer relationship management)、ライトウェイト・ディレクトリ・アクセス・プロトコル(LDAP:lightweight directory access protocol)、セキュリティ情報イベント管理(SIEM:security information and event management)、SaaS(Software as a Service)、電子メールなどのようなサービスを提供する)リソース・サーバ205rは、クライアント210の(許可された)ユーザのみによってアクセスされてよいハードウェア・リソースまたはソフトウェア・リソースあるいはその両方(例えば、デバイス、マシン、ファイル、プログラム、Webページなど)を含む。サーバ205のうちの1つ(または複数)は、クライアント210のユーザによるリソース・サーバ205rのリソースへのアクセス(例えば、デバイスを使用する、マシンを起動/停止する、ファイルを読み取る/書き込む、プログラムを実行する、Webページをダウンロードするなどのためのアクセス)を制御する、参照番号205cで区別されている制御サーバである。
【0039】
前述したコンピューティング・マシン(すなわち、サーバ205およびクライアント210)の各々は、1つまたは複数のレベルを含む(コンピューティング・マシン205、210の種類に従って適切に大きさを変更されたアーキテクチャを含む)バス構造220を介して互いに接続された複数のユニットを含む。特に、1つまたは複数のマイクロプロセッサ(μP:microprocessors)225は、コンピューティング・マシン205、210の動作を制御し、不揮発性メモリ(ROM)230は、コンピューティング・マシン205、210のブートストラップのための基本コードを格納し、揮発性メモリ(RAM)235は、マイクロプロセッサ225によって作業メモリとして使用される。コンピューティング・マシン205、210は、プログラムおよびデータを格納するための大容量メモリ240(例えば、サーバ205が実装されているデータ・センタのストレージ・デバイス、およびクライアント210のハード・ディスク)を備えている。さらに、コンピューティング・マシン205,210は、周辺機器または入出力(I/O:Input/Output)ユニット245のための複数のコントローラを含み、例えば、各サーバ205の周辺機器245は、サーバ205を対応するデータ・センタに接続し、次に制御のためにデータ・センタのコンソール(例えば、DVDのような光ディスクなどの取り外し可能ストレージ・ユニットの読み取り/書き込みのためのドライブも備えているパーソナル・コンピュータ)に接続し、ネットワーク215との通信のためにデータ・センタのスイッチ/ルータ・サブシステムに接続するためのネットワーク・カードを備え、一方、各クライアント210の周辺機器245は、キーボード、マウス、モニタ、ネットワーク215に接続するためのネットワーク・アダプタ(NIC)、および取り外し可能ストレージ・ユニットの読み取り/書き込みのためのドライブを備える。
【0040】
図3を参照すると、本開示の実施形態に従って解決策を実装するために使用されてよい、主要なソフトウェア・コンポーネントが示されている。
【0041】
特に、すべてのソフトウェア・コンポーネント(プログラムおよびデータ)は、参照番号300で全体として示されている。ソフトウェア・コンポーネント300は、通常、大容量メモリに格納され、プログラムが実行されているときに、制御サーバの作業メモリに(少なくとも部分的に)読み込まれる。プログラムは、例えば取り外し可能ストレージ・ユニットから、またはネットワークから、大容量メモリに最初にインストールされる(図に示されていない)。これに関して、各プログラムは、指定された論理機能を実装するための1つまたは複数の実行可能な命令を含んでいる、コードのモジュール、セグメント、または部分であることができる。
【0042】
アクセス制御マネージャ305は、クライアント(図に示されていない)からの情報技術システムへのアクセスを制御する。アクセス制御マネージャ305は、バックグラウンドでサービスとして実行され、アクセス制御マネージャ305は、(情報技術システムの対応するリソースに対して)選択されたアクティビティを実行するためのクライアントからのすべての要求を傍受し、対応する対象(例えば、クライアントにログインしたユーザ)に付与された許可に従って、要求を許可するか、または防ぐ。アクセス制御マネージャ305は、権限データベース310およびIDデータベース315に(読み取り/書き込みモードで)アクセスし、これらのデータベースは、情報技術システムへのアクセスを制御するために使用されるアクセス制御情報を格納する。特に、アクセス制御マネージャ305がRBACモデルに基づく場合、権限データベース310が、(対応する一意の識別子によって識別された)ロールごとのエントリを含み、このエントリは、1つまたは複数のアクティビティを実行するためにロールに割り当てられた1つまたは複数の権限を示す(例えば、開発者は、自分が作業しているすべてのプロジェクトに対する読み取り/書き込みが許可され、チーム・リーダーは、自分のチームの開発者のすべてのプロジェクトに対する読み取り/書き込みが許可され、マネージャは、このマネージャに直属する開発者のすべてのプロジェクトに対する読み取りが許可される、などである)。
【0043】
IDデータベース315は、(対応する一意の識別子によって識別された)アクセス制御マネージャ305に登録されたユーザごとのエントリを含み、このエントリは、ユーザのアカウントおよびパスワード、ならびにユーザに割り当てられた1つまたは複数のロールを示す。代替として、アクセス制御マネージャ305がABACモデルに基づく場合、権限データベース310は、ルールごとのエントリを含む。このエントリは、ルールが満たされたときに1つ(または複数)のアクティビティを実行するための、付与されているか、または拒否されている権限を示す。ルールは1つまたは複数の属性に基づき、これらの属性は、リソース(例えば、リソースの種類、位置、分類など)、ユーザ(例えば、責任、職務、能力、部門など)、アクティビティ(例えば、読み取り、書き込み、削除、承認など)、または状況(例えば、日付、時間など)、あるいはその組み合わせに関連してよい。例えば、ルールは、従業員が、特定の位置にいるときにレポートを更新することを許可され、開発者が、テスト・モードにあるときにプログラムを更新することを許可され、ユーザが、特定の日付の前に文書を読むことを許可されない、などということを示してよい。IDデータベース315は、アクセス制御マネージャ305に登録されたユーザごとのエントリを含み、このエントリは、ユーザのアカウント/パスワード、およびその1つまたは複数の属性を示す。アクセス制御マネージャ305の商業的例は、IBM Corporationによる「IBM Security Identity and Access Manager」である。IBMは、International Business Machines Corporationの登録商標である。
【0044】
本開示の実施形態に従う解決策では、トリガー・マネージャ320が、アクセス制御情報の修正をトリガーする。トリガー・マネージャ320は、アクセス制御マネージャ305と情報をやりとりする。トリガー・マネージャ320は、(例えば、システム管理者によって、トリガー・マネージャ320のユーザ・インターフェイスを介して手動で入力された)トリガー・ポリシー・リポジトリ325に(読み取り/書き込みモードで)アクセスする。トリガー・ポリシー・リポジトリ325は、(対応する一意の識別子によって識別された)トリガー・ポリシーごとのエントリを含み、このエントリは、トリガー・ポリシーおよび対応するスコアを示す。トリガー・ポリシーは、論理値(真または偽)を生成する論理式によって定義され、この論理式は、論理演算子(AND、OR、NOTなど)と組み合わせられてよい(1つまたは複数のポリシー・パラメータに従って論理値をそれぞれ生成する)1つまたは複数の条件を含む。ポリシー・パラメータは、(すなわち、単一のリソース/ユーザのレベルではなく)情報技術システム全体またはその関連する部分の条件に関連するマクロ・インジケータであり、特に、ポリシー・パラメータは、リソース(例えば、新しいリソースの数、特定の位置での新しいリソースの数など)、ユーザ(例えば、新しいユーザの数、部門内の新しいユーザの数、組織図内の変更の数など)、またはユーザによるリソースへのアクセス(例えば、新しいロール/ルールの数、ロール/ルールに対応する新しいユーザの数、ロール/ルール内の新しい権限の数、ルール内の新しい属性の数など)、あるいはその組み合わせに関連してよい。
【0045】
トリガー・ポリシーの単純な例は、次の通りであってよい。
TP1=(Nu>THu)AND(Na>THa)
ここで、Nuは、トリガー・ポリシーの最後の評価以降にIDデータベースに追加された新しいユーザの数であり、THuは、対応するしきい値であり、Naは、トリガー・ポリシーの最後の評価以降に人材データベースに追加された新しいアカウントの数であり、THaは、対応するしきい値であり、TP1は、トリガー・ポリシーの論理値である。トリガー・ポリシーは、(条件付きの)トリガー・ポリシーが評価される前に満たされる、1つまたは複数の評価条件によって条件付けられてもよい。各評価条件は、条件付けタスクの完了(マネージャによって情報を検証すること、ある程度のプロジェクトの進捗に達することなど)に基づく。さらに、評価条件は、IF/THEN構造の形態などの(トリガー・ポリシーの論理値を定義する論理式の一部であるか、またはトリガー・ポリシーから独立した)論理式に依存してよい。
【0046】
単純な評価条件を伴うトリガー・ポリシーの他の例は、次の通りであってよい。
TP2=(Nr>THr)|EV
TP3=(Nr>THr)|IF(TP3)then EV
TP4=(Nr>THr)|IF(Np>THp)then EV
ここで、Nrは、特定の部門のユーザに割り当てられたロールの数、THrは、対応するしきい値、Npは、部門に割り当てられたロールの権限の数、THpは、対応するしきい値、EVは、マネージャによって部門に割り当てられたロールの検証、TP2、TP3、およびTP4は、トリガー・ポリシーの論理値である。したがって、タスクEVが実行される第1の事例では、タスクEVが完了した後に、論理式(Nr>THr)が評価されて、トリガー・ポリシーの論理値TP2を決定し、トリガー・ポリシーTP3を定義する論理式(Nr>THr)が真である場合にタスクEVが実行される第2の事例では、タスクEVが完了した後に、論理式(Nr>THr)が再び評価されて、トリガー・ポリシーの論理値TP3を決定し、論理式(Np>THp)が真である場合にタスクEVが実行される第3の事例では、タスクEVが完了した後に、論理式(Nr>THr)が評価されて、トリガー・ポリシーの論理値TP4を決定する。トリガー・ポリシーのスコアは、数値(例えば、0~1)であり、アクセス制御情報の修正をトリガーすることにおけるトリガー・ポリシーの有効性が高いほど、そのスコアが高い。さらに、トリガー・マネージャ320は、1つまたは複数のポリシー・パラメータ・ソース330に(読み取りモードで)アクセスする。ポリシー・パラメータ・ソース330は、ポリシー・パラメータの値を提供する実体(メモリ構造、サービス、アプリケーションなど)であり、例えば、ポリシー・パラメータ・ソース330は、権限データベース310、IDデータベース315、情報技術システムのインベントリ・データベース、情報技術システムに関連付けられた組織の人材データベースなどを含む。
【0047】
トリガー・マネージャ320は、履歴情報データベース335に(書き込みモードで)アクセスする。履歴情報データベース335は、例えば最後の1~5年以内に、前述した解決策によってトリガーされたアクセス制御情報の修正ごとのエントリを含む。このエントリは、真と評価された(関連する)トリガー・ポリシーを示し、すなわち、これらのトリガー・ポリシーは、アクセス制御情報の修正をトリガーすることに寄与しており、さらにこのエントリは、アクセス制御情報の修正から生じるアクセス制御情報の変更(例えば、作成、更新、または削除されたロール/ルール、更新されたロール/ルールごとに追加、変更、または除去された権限、ユーザごとに追加または除去されたロール、ロール/ユーザごとに追加または除去された属性など)を示す。ランク付けエンジン340は、フィードバック・メカニズムを使用してポリシーのスコアを更新する。このために、ランク付けエンジン340は、履歴データベース335に(読み取りモードで)アクセスし、アクセス制御マネージャ305と情報をやりとりし、トリガー・ポリシー・データベース325に(読み取り/書き込みモードで)アクセスする。
【0048】
トリガー・マネージャ320は、トリガー指標(の最後の値)を格納するトリガー指標テーブル345に(書き込みモードで)アクセスする。出力ドライブ350は、例えばモニタ・ドライブ、電子メール・クライアント、アクセス制御マネージャ305などと情報をやりとりすることによって、トリガー指標の指示を出力する。出力ドライブ350は、トリガー指標テーブル345に(読み取りモードで)アクセスする。
【0049】
図4A~4Cを参照すると、本開示の実施形態に従って解決策の実装に関連するアクティビティの流れを説明するアクティビティ図が示されている。
【0050】
特に、このアクティビティ図は、方法400を使用してアクセス制御情報の修正をトリガーするために使用されてよい例示的なプロセスを表している。これに関して、各ブロックは、制御サーバ上で指定された論理機能を実装するための1つまたは複数の実行可能な命令に対応してよい。
【0051】
図4Aに示されているように、プロセスは、アクセス制御情報を修正する必要性のために検証動作を開始するイベントが発生したときに、ブロック402での検証からブロック404での取り出しに進む。例えばこれは、トリガー・ポリシーを定義するポリシー・パラメータの大きな変更(10~20%を超える変更など)の後、または定期的に(例えば、1~7日ごとに)、あるいはその両方で発生することがある。トリガー・マネージャは、ブロック404で、トリガー・ポリシーおよびそれらのスコアを、対応するデータベースから取り出す。次に、トリガー・ポリシーを処理するためのループに入る。ブロック406で、このループが開始し、トリガー・マネージャが(任意の順序での最初のトリガー・ポリシーから開始して)(現在の)トリガー・ポリシーを考慮する。ブロック408で、トリガー・マネージャが、トリガー・ポリシーに示されたポリシー・パラメータを取り出し、ポリシー・パラメータは、場合によってはキャッシュ・メカニズムを使用して、ポリシー・パラメータ・ソースから取り出される。
【0052】
ブロック410で、トリガー・ポリシーの種類に従ってアクティビティの流れが分岐する。トリガー・ポリシーが条件付けられている場合、(条件付きの)トリガー・ポリシーの評価条件を処理するために、さらにループに入る。ブロック412で、このループが開始し、トリガー・マネージャが(トリガー・ポリシーに示された対応する順序での最初の評価条件から開始して)(現在の)評価条件を考慮する。ブロック414で、評価条件の種類に従ってアクティビティの流れが分岐する。評価条件が論理式に依存する場合、ブロック416で、トリガー・マネージャがその論理式を評価する。ブロック418で、論理式によって生成された論理値に従ってアクティビティの流れが分岐する。論理式が真と評価された場合、プロセスがブロック420に下降し、評価条件がどの論理式にも依存しない場合にブロック414から直接同じ位置にやはり達する。この時点で、(例えば、対応する通知を人に送信すること、対応するコマンドをソフトウェア・アプリケーションに送信することなどによって)条件付けタスクの実行が引き起こされる。次にブロック422で、トリガー・マネージャがアイドル・ループに入り、条件付けタスクの完了を待機する。条件付けタスクが完了するとすぐに(例えば、対応するメッセージによって通知されたときに)、および事前に定義されたタイムアウトの後のいずれの場合でも、プロセスがブロック424に下降し、論理式が偽に評価された場合にブロック418から直接同じ位置にやはり達する。ここでトリガー・マネージャが、最後の評価条件が考慮されたかどうかを検証する。最後の評価条件が考慮されていない場合、トリガー・ポリシーの次の評価条件に対して同じ動作を繰り返すために、プロセスがブロック412に戻る。反対に、トリガー・ポリシーの評価条件がすべて考慮されるとすぐに、ブロック426に下降することによって、対応するループを抜け、トリガー・ポリシーが条件付けられない場合にブロック410から直接同じ位置にやはり達する。
【0053】
これでトリガー・マネージャは、ブロック426でトリガー・ポリシーの論理式を評価してその論理値を決定し(トリガー・ポリシーのいずれかの条件付けタスクが何らかの理由(すなわち、偽の論理式またはタイムアウトの期限切れ)で完了しなかった場合、常に偽に設定される)、この論理値が作業変数に保存される。ブロック428で、トリガー・マネージャが、最後のトリガー・ポリシーが処理されたかどうかを検証する。最後のトリガー・ポリシーが処理されていない場合、次のトリガー・ポリシーに対して同じ動作を繰り返すために、プロセスがブロック406に戻る。反対に、すべてのトリガー・ポリシーが処理されるとすぐに、ブロック430に下降することによって、対応するループを抜ける。
【0054】
図4Bに示されているように、ブロック430で、トリガー・マネージャが、トリガー・ポリシーの論理値およびスコアに従ってトリガー指標を決定する(適切に正規化される)。例えば、次式を適用することによって、トリガー指標が計算される。
【0055】
【数1】
ここで、TOTpはトリガー・ポリシーの総数、TP
iは、真の場合に1、偽の場合に0などの、(対応する作業変数から取り出された)i番目のトリガー・ポリシーの論理値に対応する数値、R
iは、i番目のトリガー・ポリシーのスコア、TIはトリガー指標の値である(トリガー・ポリシーの評価中にトリガー指標が漸増的に計算される場合も、同様の考慮が当てはまる)。このようにして、トリガー指標は0~1の範囲内の値を有する。特に、真と評価されたトリガー・ポリシーのみがトリガー指標に寄与し、これらのトリガー・ポリシーの寄与は、トリガー・ポリシーのスコアに比例する。
【0056】
ブロック432で、トリガー・マネージャが、トリガー指標を(トリガー)しきい値(例えば、0.5~0.7)と比較する。トリガー指標が、トリガーしきい値より(場合によっては厳密に)高い場合、ブロック434で、トリガー・マネージャが、アクセス制御情報の修正をトリガーするための指示を出力し、例えばトリガー・マネージャは、トリガー・メッセージを(電子メール、SMSなどを介して)システム管理者に送信する。トリガー・メッセージは、アクセス制御情報を修正する必要性を示し、トリガー・メッセージは、トリガー指標、真と評価された最高のスコアを有するトリガー・ポリシーなどの、そのように修正する理由に関する追加情報を含んでよい。同時に、ブロック436で、トリガー・マネージャは、(例えば、対応するタイムスタンプによって識別された)アクセス制御情報のこの修正に関する新しいエントリを履歴データベースに追加し、次にトリガー・マネージャは、真と評価された(その後、アクセス制御情報の修正をトリガーすることに寄与した)トリガー・ポリシーの指示を新しいエントリに追加する。トリガー指標がトリガーしきい値より(場合によっては厳密に)低い(かつアクセス制御情報の修正が必要でない)場合、ここでプロセスが、ブロック436から、またはブロック432から直接、ブロック402に戻る(検証プロセスをトリガーする次のイベントを待機する)。
【0057】
アクセス制御情報の修正がトリガーされるたびに、ブロック438で、アクセス制御マネージャが、修正の完了を待機する状態になる。特に、この修正は、リソースにアクセスすることを必要とするユーザの典型的なパターンに従ってリソースへのユーザのマッピングが検出される、マイニング・アクティビティを含み、例えばマイニング・アクティビティは、ボトムアップ・アプローチ、トップダウン・アプローチ、またはバイイグザンプル・アプローチ(by-example approach)を使用して実行されてよい。次に、(例えば、RBACモデルの場合はロールおよびロールに割り当てられたユーザ、またはABACモデルの場合はルールおよびルール/ユーザの属性における)マイニング・アクティビティの結果(すなわち、ユーザとリソースの間のマッピング)に従って、アクセス制御情報に適用される1つまたは複数の変更が決定される。その後、マイニング・アクティビティから生じる変更に従って、(例えば、ロール/ルールを追加すること、ロールに割り当てられたユーザを更新すること、ルールを更新すること、属性を追加/削除すること、ロール/ルールを削除することなどによって)権限データベースまたはIDデータベースあるいはその両方が更新される。(例えば、システム管理者によって手動で入力されたコマンドによって)トリガー・マネージャがアクセス制御情報の修正の完了の通知を受信するとすぐに、プロセスがブロック440に進む。それに応答して、トリガー・マネージャは、(アクセス制御マネージャを介して)権限データベースおよびIDデータベースから、アクセス制御情報に適用された更新の指示を取り出す。ブロック442で、トリガー・マネージャは、これらの更新を履歴データベースの対応するエントリに保存する。次に、プロセスがブロック438に戻り、アクセス制御情報の次の修正の完了を待機する。
【0058】
完全に独立した方法で、プロセスは、トリガー・ポリシーのランク付け動作を実行してそれらのスコアを更新するための(ランク付け)期間(例えば、7~14日ごと)の期限が切れるとすぐに、ブロック444でのランク付けからブロック446での取り出しに進む。それに応答して、ランク付けエンジンは、ブロック404で、トリガー・ポリシーおよびそれらのスコアを、対応するデータベースから取り出す。次に、トリガー・ポリシーを処理するためのループに入る。ブロック448で、このループが開始し、ランク付けエンジンが(任意の順序での最初のトリガー・ポリシーから開始して)(現在の)トリガー・ポリシーを考慮する。ブロック450で、ランク付けエンジンが、トリガー・ポリシーによる影響を受けている、影響を受けた制御項目の指示を(もしあれば)(履歴データベースから)取り出し、影響を受けた制御項目は、アクセス制御情報のすべての修正中に作成されたか、または更新されたか、あるいはその両方であるロール/ルールであり、これらの影響を受けた制御項目に関して、(関連する)トリガー・ポリシーが修正をトリガーすることに寄与した(すなわち、真であると評価された)。
【0059】
トリガー・ポリシーの影響を受けた制御項目を処理するために、さらにループに入る。ブロック452で、このループが開始し、ランク付けエンジンが、処理されるべき影響を受けた制御項目がまだ残っているかどうかを検証する。残っている場合、ブロック454で、ランク付けエンジンが、(任意の順序での最初の影響を受けた制御項目から開始して)まだ処理されるべき(現在の)影響を受けた制御項目を考慮する。ブロック456で、ランク付けエンジンが、影響を受けた制御項目の存続状態を(アクセス制御マネージャを介して権限データベースから)取り出す。ブロック458で、この存続状態に従ってアクティビティの流れが分岐する。影響を受けた制御項目がもはや存在しない場合、ブロック460で、ランク付けエンジンが、影響を受けた制御項目の存続期間インジケータを低い値(例えば、0)に設定する。反対に、影響を受けた制御項目がまだ存在する場合、ブロック462で、ランク付けエンジンが、影響を受けた制御項目の存続期間インジケータを高い値(例えば、1)に設定する。後者の場合、ブロック464で、ランク付けエンジンが、影響を受けた制御項目の範囲インジケータも計算する。
【0060】
範囲インジケータは、(アクセス制御マネージャを介して、ロール・データベースおよびIDデータベースから取り出された情報に従って)影響を受けた制御項目の権限または対応するユーザ(すなわち、(影響を受けた)ロールに割り当てられたユーザ、または(影響を受けた)ルールの属性に一致する属性を有するユーザ)あるいはその両方によって決まる。例えば、次式を適用することによって、範囲インジケータが計算される。
【0061】
【数2】
ここで、Nuが、影響を受けたロールに対応するユーザの数であり、TOTuが、ユーザの総数であり、TOTaが、ソフトウェア・アプリケーションなどの、情報技術システムの(保護された)リソースの総数であり、Np(A
i)が、i番目のソフトウェア・アプリケーションに関する影響を受けた制御項目の権限の数であり、TOTp(A
i)が、i番目のソフトウェア・アプリケーションに関する権限の総数であり、Sが、スコア・インジケータの(0~1の範囲内の)値である。このようにして、影響を受けた制御項目に対応するユーザまたは影響を受けた制御項目の権限あるいはその両方が多いほど、影響を受けた制御項目の範囲インジケータが高くなる。
【0062】
次に、プロセスがブロック452に戻り、同じ動作を繰り返す。再びブロック452を参照すると、処理されるべき影響を受けた制御項目がそれ以上残っていない場合は(トリガー・ポリシーが影響を受けた制御項目を含まない場合、アクセス制御情報のどの修正にも寄与しなかったため、常に真)、すぐにプロセスがブロック466に下降する。
【0063】
この時点で、ランク付けエンジンが、影響を受けた制御項目の存続期間インジケータおよび範囲インジケータに従って、トリガー・ポリシーのスコアを計算する。例えば、次式を適用することによって、スコアが計算される。
【0064】
【数3】
ここで、TOTrは、影響を受けた制御項目の総数であり、L(r
i)は、i番目の影響を受けた制御項目の存続期間インジケータであり、S(r
i)が、i番目の影響を受けた制御項目の範囲インジケータであり、Wが、トリガー・ポリシーの(0~1の範囲内の)スコアである。このようにして、影響を受けた制御項目の存続期間インジケータまたは範囲インジケータあるいはその両方が高いほど、トリガー・ポリシーのスコアが高い。
【0065】
代替として、スコアを漸増的に更新することができる。例えば、影響を受けた制御項目ごとに、スコアは、影響を受けた制御項目がそれ以上存在しない場合にデクリメントされ、影響を受けた制御項目がまだ存在する場合にインクリメントされ、範囲インジケータが(範囲)しきい値より(場合によっては厳密に)低い場合にデクリメントされ、範囲インジケータが範囲しきい値より(場合によっては厳密に)低い場合にインクリメントされ、デクリメントおよびインクリメントは、対応する差分値(例えばそれぞれ、スコアの1~5%およびスコアの1の補数の1~5%)による。
【0066】
どちらの場合も、ブロック468で、ランク付けエンジンが、(手動で初期化されたか、またはデフォルト値に初期化されたエントリの前の値を置き換えることによって)トリガー・ポリシーの(新しい)スコアをトリガー・ポリシー・データベースの対応するエントリに保存する。ブロック470で、ランク付けエンジンが、最後のトリガー・ポリシーが処理されたかどうかを検証する。最後のトリガー・ポリシーが処理されていない場合、次のトリガー・ポリシーに対して同じ動作を繰り返すために、プロセスがブロック448に戻る。反対に、すべてのトリガー・ポリシーが処理されるとすぐに、ブロック444に戻ることによって対応するループを抜け、ランク付け期間の次の期限切れを待機する。
【0067】
その結果、トリガー・ポリシーのスコアは、アクセス制御情報の修正をトリガーすることにおけるトリガー・ポリシーの有効性に自己適応する。実際、1つまたは複数の関連するトリガー・ポリシーが実行をトリガーすることに寄与したすべての修正プロセスは、アクセス制御情報の更新を含んでおり、特に、1つまたは複数の影響を受けた制御項目が作成/更新されていることがある。影響を受けた制御項目ごとに、後で(ランク付け時に)ランク付けプロセスが実行されるときに、影響を受けた制御項目がまだ存在する場合、それは、その有用性が高い可能性があるということを意味し、反対に、後でランク付けするときに、影響を受けた制御項目が存在しない場合、それは、その有用性が低い可能性があるということを意味する。さらに重要なのは、影響を受けた制御項目が(例えば、多数の権限または多数の対応するユーザあるいはその両方によって定義された)大きい範囲を有している場合、それは、その有用性が高い可能性があるということを意味し、反対に、影響を受けた制御項目が(例えば、少数の権限または少数の対応するユーザあるいはその両方によって定義された)不十分な範囲を有している場合、それは、その有用性が低い可能性があるということを意味するということである。対応する影響を受けたほとんどが高い有用性を有していると見なされる場合、修正も有用だった可能性があり、(修正をトリガーすることに寄与した)関連するトリガー・ポリシーが非常に有効である可能性がり、その場合、関連するトリガー・ポリシーのスコアが、次の検証プロセスにおいてより高い加重を有するように、増やされる。反対に、対応する影響を受けたほとんどが低い有用性を有していると見なされる場合、修正も無用だった可能性があり、(修正をトリガーすることに寄与した)関連するトリガー・ポリシーの有効性が低い可能性がり、その場合、関連するトリガー・ポリシーのスコアが、次の検証プロセスにおいてより低い加重を有するように、減らされる。
【0068】
当然ながら、ローカルな特定の要求を満たすために、当業者は、多くの論理的または物理的あるいはその両方の修正および変更を本開示に適用してよい。より詳細には、本開示は、本開示の1つまたは複数の実施形態を参照して、ある程度の特殊性を伴って説明されたが、形態および詳細ならびにその他の実施形態におけるさまざまな省略、置き換え、および変更が可能であるということが、理解されるべきである。特に、本開示のさまざまな実施形態は、本開示の完全な理解を可能にするために先行する説明において示された(数値などの)特定の詳細がなくても実践されてよく、反対に、周知の特徴は、不要な詳細で説明を曖昧にしないようにするために、省略されるか、または簡略化されていることがある。さらに、本開示のいずれかの実施形態に関連して説明された特定の要素または方法のステップあるいはその両方が、一般的な設計上の選択の問題として、任意のその他の実施形態に組み込まれてよいということが、明示的に意図される。
さらに、同じグループおよび異なる実施形態、例、または代替案において提示された項目は、事実上、互いに等価であると解釈されるべきではない(これらは、分離した自律的実体である)。いずれの場合でも、各数値は、適用可能な許容誤差に従って変更されるとして読まれるべきであり、特に、「実質的に」、「約」、「近似的に」などの用語は、「10%以内」と理解されるべきである。さらに、数値の各範囲は、この範囲内(端点を含む)の連続体に沿って任意の可能な数値を明示的に指定するとして意図されるべきである。序数またはその他の修飾語句は、単に、同じ名前を持つ要素を区別するためのラベルとして使用され、それら自体によって、どのような優先順位、先行、または順序も暗示しない。「含む」、「備える」、「有する」、「包含する」、「伴う」などの用語は、開いた、非網羅的な意味を持つ(すなわち、列挙された項目に限定されない)ことが意図されるべきであり、「に基づく」、「に依存する」、「に従って」、「に応じて」などの用語は、非排他的関係(すなわち、その他の可能性のある変数が含まれる)として意図されるべきであり、用語「a/an」は、(特に明示的に示されない限り)1つまたは複数の項目として意図されるべきであり、「のための手段」という用語(または任意の手段+機能の語句)は、関連する機能を実行するように適応または構成された任意の構造として意図されるべきである。
【0069】
例えば、実施形態は、アクセス制御情報の保守を容易にするための方法を提供する。しかし、アクセス制御情報は、任意の種類の制御(例えば、すべてのアクティビティを可能にする/拒否する、一部のアクティビティを可能にするために、第2のレベルのパスワードを入力するなどのアクションをさらに要求する、など)を提供するための(例えば、RBACモデルの場合はロール、ABACモデルの場合はルールおよび属性、アクセス制御リスト(ACL:Access Control List)モデルの場合はテーブルなどに基づく)任意の種類であってよい。
【0070】
一実施形態では、アクセス制御情報は、1つまたは複数の対象による情報技術システムの1つまたは複数のリソースへのアクセスを制御するためにある。しかし、情報技術システムは、任意の数および種類の対象(例えば、ユーザ、プログラム、サービスなど)によってアクセスが制御される必要がある任意の数および種類のリソース(例えば、前述したリソースに対して部分的、異なる、または追加のリソース)を含む、(例えば、スタンドアロン・アーキテクチャなどを含む、任意の種類の有線接続または無線接続あるいはその両方を利用する、ローカル・ネットワーク、広域ネットワーク、グローバル・ネットワーク、セルラー・ネットワーク、または衛星ネットワークに基づく)任意の種類であってよい。
【0071】
一実施形態では、この方法は、制御コンピューティング・システムによって実行される後続のステップを含む。しかし、制御コンピューティング・システムは、任意の種類であってよく(下記を参照)、ステップは、(例えば、アクセス制御情報の大きな変更に応答して、定期的に、手動での要求時に、これらの任意の組み合わせなどで)いつでも実行されてよい。
【0072】
一実施形態では、この方法は、(制御コンピューティング・システムによって)1つまたは複数のトリガー・ポリシーを取り出すことを含む。しかし、トリガー・ポリシーは、任意の数で、任意の方法で(例えば、読み取り/照会動作、ローカル/リモート・コマンドなどによって、データベース、ファイルなどの任意のメモリ構造から)取り出されてよい。
【0073】
一実施形態では、各トリガー・ポリシーは、リソース、対象、または対象によるリソースへのアクセス、あるいはその組み合わせに関連する1つまたは複数のポリシー・パラメータに基づく。しかし、トリガー・ポリシーは、任意の方法で(例えば、論理式、ルール、ステートメントなどによって)、任意の数および種類のポリシー・パラメータ(例えば、リソース、対象、対象によるリソースへのアクセス、これらの任意の組み合わせなどに関連する任意のマクロ情報を提供する、前述したポリシー・パラメータに対して部分的、異なる、または追加のポリシー・パラメータ)に基づいてよい。
【0074】
一実施形態では、この方法は、(制御コンピューティング・システムによって)1つまたは複数のポリシー・パラメータを取り出すことを含む。しかし、ポリシー・パラメータは、任意の方法で(例えば、読み取り/照会動作、ローカル/リモート・コマンドなどによって、前述したポリシー・パラメータ・ソースに対して部分的、異なる、または追加のポリシー・パラメータ・ソースから)取り出されてよい。
【0075】
一実施形態では、この方法は、(制御コンピューティング・システムによって)対応するポリシー・パラメータに従ってトリガー・ポリシーを評価することを含む。しかし、この動作は、各トリガー・ポリシーの値(例えば、論理値、離散準位、数値など)を決定するための任意の方法で(例えば、論理式を評価すること、式を計算すること、ルールを適用すること、分析技術を利用することなどによって)実行されてよい。
【0076】
一実施形態では、この方法は、(制御コンピューティング・システムによって)トリガー・ポリシーの前述の評価の結果に従ってトリガー・インジケータを決定することを含む。しかし、トリガー・インジケータは、任意の種類(例えば、論理値、任意のレベル数を取ってよい離散値、数値など)であってよく、任意の方法で(例えば、トリガー・ポリシーの値に基づいて任意の式を計算すること、任意のしきい値化技術を適用すること、認知技術を利用することなどによって)決定されてよい。
【0077】
一実施形態では、この方法は、(制御コンピューティング・システムによって)トリガー・インジケータの指示を出力することを含む。しかし、トリガー・インジケータは、任意の方法で(例えば、表示される、いずれかの人に送信される、いずれかのソフトウェア・アプリケーションに提供されるなど)、任意の形態で(例えば、値、説明文、警告、またはこれらの任意の組み合わせなどによって)出力されてよい。
【0078】
一実施形態では、アクセス制御情報の修正は、トリガー・インジケータに応答してトリガーされる。しかし、アクセス制御情報の修正は、(例えば、修正が必要であることを単に示すこと、修正の値に基づいて対応する優先レベルを提供することなどの)任意の方法でトリガー・インジケータに従って、(例えば、修正をいずれかの人に提案すること、修正を自動的に開始することなどの)任意の方法でトリガーされてよい。
【0079】
一実施形態では、アクセス制御情報の修正は、対象をリソースにマッピングするためのマイニング・アクティビティを含む。しかし、マイニング・アクティビティは、任意の種類(例えば、ロール・マイニング、ルール・マイニングなど)であってよく、任意の方法で(例えば、手動で、分析技術に基づくなどの自動ツールに支援されて、などで)実行されてよい。
【0080】
一実施形態では、アクセス制御情報の修正は、マイニング・アクティビティの結果に基づくアクセス制御情報の可能性のある更新を含む。しかし、アクセス制御情報は、修正なしに至るまでの任意の方法で、(例えば、1つまたは複数のデータベースまたはファイルなどの任意のメモリ構造内のロール、ルール、属性、ID、アクセス制御リストなどを追加/更新/削除することなどによって)更新されてよい。
【0081】
一実施形態では、この方法は、修正の必要性を示す正の値を有するトリガー・インジケータに応答してマイニング・アクティビティを実行することを含む。しかし、トリガー・インジケータの正の値は、任意の種類(例えば、修正が単に必要とされていること、修正が適切である、有用である、または必要であることなどを示すこと)であってよい。
【0082】
一実施形態では、この方法は、マイニング・アクティビティの結果に従ってアクセス制御情報を更新することを含む。しかし、アクセス制御情報は、マイニング・アクティビティの結果に従って、任意の方法で(例えば、手動で、自動的に、提案された更新を受け入れる、などで)更新されてよい。
【0083】
一実施形態では、アクセス制御情報は、1つまたは複数のロールの指示を含む。しかし、ロールは、任意の数および任意の種類(例えば、重役、マネージャ、開発者、会計士など)であってよい。
【0084】
一実施形態では、各ロールは、情報技術システムにおいて1つまたは複数のアクティビティを実行するための1つまたは複数の権限を持っている。しかし、権限/アクティビティは、任意の数および任意の種類(例えば、前述した権限/アクティビティに対して部分的、異なる、または追加の権限/アクティビティ)であってよい。
【0085】
一実施形態では、アクセス制御情報は、対象の各々に割り当てられたロールのうちの1つまたは複数の指示を含む。しかし、各対象には任意の数のロールが割り当てられてよい。
【0086】
一実施形態では、マイニング・アクティビティはロール・マイニングである。しかし、ロール・マイニングは、任意の種類(例えば、ロールの追加、ロールの権限/割り当ての更新、ロールの削除などをもたらす、ボトムアップ、トップダウン、バイイグザンプル)であってよい。
【0087】
一実施形態では、アクセス制御情報は、1つまたは複数のルールを含む。しかし、ルールは、任意の数および任意の種類(例えば、IF/THEN構造、論理式など)であってよい。
【0088】
一実施形態では、各ルールは1つまたは複数の属性に基づく。しかし、属性は、任意の数および(例えば、リソース、対象、アクティビティ、状況、またはこれらの任意の組み合わせに関連する)任意の種類であってよい。
【0089】
一実施形態では、各ルールは、ルールが満たされた場合の情報技術システムにおけるアクティビティに関連する少なくとも1つの権限を示す。しかし、ルールは、任意の方法(例えば、可能にする、拒否するなど)で、アクティビティに関連する任意の数および任意の種類の権限(上記を参照)を示してよい。
【0090】
一実施形態では、マイニング・アクティビティはルール・マイニングである。しかし、ルール・マイニングは、任意の種類(例えば、ルールの追加/更新/削除、属性の変更などをもたらす、ボトムアップ、トップダウン、バイイグザンプル)であってよい。
【0091】
一実施形態では、この方法は、(制御コンピューティング・システムによって)トリガー・ポリシーに割り当てられた対応するスコアに従ってトリガー・インジケータを決定することを含む。しかし、スコアは、任意の種類(例えば、離散的/連続的加重、フラグ、固定/可変など)であってよく、任意の方法で(例えば、トリガー・ポリシーの値に重み付けすること、トリガー・ポリシーの考慮を有効化/無効化することなどによって)トリガー・インジケータを決定するために使用されてよく、いずれの場合でも、この特徴は簡略化された実装において省略されてもよい。
【0092】
一実施形態では、この方法は、(制御コンピューティング・システムによって)修正を示す履歴情報を格納することを含む。しかし、履歴情報は、任意の種類(例えば、前述した情報に対して部分的、異なる、または追加の情報などの、アクセス制御情報に適用されたすべての変更またはその一部のみ)であってよく、任意の方法で(例えば、データベース、ファイルなどの任意のメモリ構造に)格納されてよい。
【0093】
一実施形態では、履歴情報は、修正をトリガーすることに寄与するトリガー・ポリシーのうちの関連する1つまたは複数に関連付けて、修正を示す。しかし、関連するトリガー・ポリシーは、任意の数であってよく、任意の方法で定義されてよい(例えば、すべてのトリガー・ポリシーが真と評価される、トリガー・ポリシーが真と評価され、しきい値より高いスコアを有する、事前に定義された数のトリガー・ポリシーが真と評価され、最高のスコアを有するなど)。
【0094】
一実施形態では、この方法は、(制御コンピューティング・システムによって)関連するトリガー・ポリシーのスコアを更新することを含む。しかし、スコアは、情報の任意のソース(例えば、履歴情報、アクセス制御情報、ポリシー情報パラメータ、これらの任意の組み合わせなど)に従って、任意の方法で(例えば、再計算すること、差分値だけ増やす/減らすことなどによって)更新されてよい。
【0095】
一実施形態では、関連するトリガー・ポリシーのスコアは、修正後のランク付け時に履歴情報およびアクセス制御情報に従って更新される。しかし、スコアは、任意のランク付け時に(例えば、事前に定義された遅延を伴って、事前に定義された期間に従って継続的に、など)、履歴情報に従って(例えば、最後の修正のみ、場合によっては古さに従って重み付けされた1つまたは複数の修正などを参照して)、かつアクセス制御情報に従って(例えば、状況、履歴情報との比較などに従って)任意の方法で更新されてよい。
【0096】
一実施形態では、この方法は、(制御コンピューティング・システムによって)修正による影響を受けているアクセス制御情報を定義することに寄与している1つまたは複数の影響を受けた制御項目の指示を含んでいる履歴情報を格納することを含む。しかし、影響を受けた制御項目は、任意の数および任意の種類(例えば、ロール、ルール、すべての作成/更新されたロール、ルール、作成されたロール、ルールのみなど)であってよい。
【0097】
一実施形態では、この方法は、(制御コンピューティング・システムによって)ランク付け時に、影響を受けた制御項目に従って、関連するトリガー・ポリシーのスコアを更新することを含む。しかし、スコアは、任意の方法で(例えば、存続期間、範囲、またはこれらの任意の組み合わせなどに従って)、影響を受けた制御項目に従って更新されてよい。
【0098】
一実施形態では、この方法は、(制御コンピューティング・システムによって)ランク付け時に、影響を受けた制御項目の対応する存続期間インジケータを取り出すことを含む。しかし、存続期間インジケータは、任意の種類(例えば、単に、影響を受けた制御項目がまだ存在するかどうかを示すこと、作成または最後の変更から経過した時間を測定することなど)であってよい。
【0099】
一実施形態では、この方法は、(制御コンピューティング・システムによって)影響を受けた制御項目の存続期間インジケータに従って、関連するトリガー・ポリシーのスコアを更新することを含む。しかし、スコアは、存続期間インジケータに従って任意の方法で(例えば、スコアを計算するための任意の線形/非線形の方法で存続期間インジケータを使用すること、固定値だけ、または存続期間インジケータに比例する値だけスコアを増やす/減らすことなどを実行して)更新されてよい。
【0100】
一実施形態では、この方法は、(制御コンピューティング・システムによって)ランク付け時に、影響を受けた制御項目の対応する範囲インジケータを取り出すことを含む。しかし、範囲インジケータは、(例えば、影響を受けた制御項目に対応するユーザ、影響を受けた制御項目の権限、またはこれらの任意の組み合わせなどに基づく)任意の種類であってよい。
【0101】
一実施形態では、この方法は、(制御コンピューティング・システムによって)影響を受けた制御項目の範囲インジケータに従って、関連するトリガー・ポリシーのスコアを更新することを含む。しかし、スコアは、範囲インジケータに従って任意の方法で(例えば、スコアを計算するための任意の線形/非線形の方法で範囲インジケータを使用すること、範囲インジケータがいずれかのしきい値を下回っている/上回っている場合に、固定値だけ、または範囲インジケータに比例する値だけスコアを増やす/減らすことなどを実行して)更新されてよい。
【0102】
一実施形態では、影響を受けた制御項目の各々の範囲インジケータは、影響を受けた制御項目に対応する対象に基づく。しかし、範囲インジケータは、任意の方法で、影響を受けた制御項目に対応する対象に基づいてよい(例えば、影響を受けたロールに割り当てられた対象、影響を受けたルールの属性に一致する属性を有する対象、対象の数、対象の種類に従って対象に重み付けすることによって計算された対象の数などに基づいてよい)。
【0103】
一実施形態では、影響を受けた制御項目の各々の範囲インジケータは、情報技術システムにおいてアクティビティを実行するための、影響を受けた制御項目の権限に基づく。しかし、範囲インジケータは、任意の方法で、影響を受けた制御項目の権限に基づいてよい(例えば、一般に権限の数、場合によってはリソースの種類に従って重み付けされた、各リソースに関する権限の数などに基づいてよい)。
【0104】
一実施形態では、トリガー・ポリシーのうちの条件付けられた1つまたは複数が、1つまたは複数の評価条件の指示を含む。しかし、条件付けられたトリガー・ポリシーは、任意の数および任意の種類の(例えば、タスクの完了、イベントの発生を要求する、任意の論理式に依存するか、または依存しない、などの)評価条件をそれぞれ含んでいる、(0に至るまでの)任意の数であってよい。
【0105】
一実施形態では、この方法は、(制御コンピューティング・システムによって)条件付けられたトリガー・ポリシーの各々の前述の評価を、対応する評価条件で条件付けることを含む。しかし、各条件付けられたトリガー・ポリシーの評価は、(例えば、対応するタイムアウトを伴うか、または伴わずに、条件付けタスクの完了を待機する、イベントの発生を待機する、などの)任意の方法で条件付けられてよい。
【0106】
一実施形態では、評価条件のうちの少なくとも1つは、対応する条件付けタスクの完了である。しかし、条件付けタスクは、任意の種類(例えば、前述した条件付けタスクに対して部分的、異なる、または追加の条件付けタスク)であってよい。
【0107】
一実施形態では、この方法は、(制御コンピューティング・システムによって)ポリシー・パラメータの大きな変更を決定することを含む。しかし、大きな変更は、任意の方法で(例えば、絶対項または相対項のいずれかにおいて変化した、いずれかのポリシー・パラメータの数を参照して)定義されてよく、任意の方法で(例えば、ポリシー・パラメータを監視することによって、対応する通知を受信することによって、などで)決定されてよい。
【0108】
一実施形態では、この方法は、(制御コンピューティング・システムによって)ポリシー・パラメータの大きな変更に応答して(前述のトリガー・ポリシーを取り出すこと、ポリシー・パラメータを取り出すこと、トリガー・ポリシーを評価すること、トリガー・インジケータを決定すること、およびトリガー・インジケータの指示を出力することを含む)検証プロセスを実行することを含む。しかし、検証プロセスは、ポリシー・パラメータの大きな変更に応答して任意の方法で(例えば、自動的な方法、手動での構成を必要とする方法、などで)実行されてよい。
【0109】
一般に、(より多くのステップまたはその一部と同じ機能を有する同様のステップを使用すること、一部の必須でないステップを削除すること、または任意選択的なステップをさらに追加することによって)同等の方法を使用して同じ解決策が実装される場合、同様の考慮事項が当てはまり、さらにステップは、異なる順序で、同時に、または(少なくとも一部において)交互配置される方法で、実行されてよい。
【0110】
実施形態は、制御コンピューティング・システムに前述した方法を実行させるように構成されたコンピュータ・プログラムを提供する。実施形態は、1つまたは複数の対象による情報技術システムへのアクセスの制御を容易にするためのコンピュータ・プログラム製品を提供する。このコンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を含む。プログラム命令は、制御コンピューティング・システムに前述した方法を実行させるために、制御コンピューティング・システムによって実行可能である。しかし、ソフトウェア・プログラムは、スタンドアロン・モジュールとして、既存のソフトウェア・プログラム(例えば、アクセス制御マネージャ)のためのプラグインとして、または後者においては直接的にさえ、実装されてよく、同じ解決策を、(インターネット内などの)ネットワークを介してアクセスされるサービスとしてデプロイすることもできるということが、容易に明らかになるであろう。さらに、プログラムは、任意の制御コンピューティング・システム上で実行されてよい(下記を参照)。いずれの場合でも、本開示の実施形態に従う解決策は、ハードウェア構造を使用して(例えば、半導体材料の1つまたは複数のチップ内に統合された電子回路によって)、または適切にプログラムされるか、もしくはその他の方法で構成されたソフトウェアとハードウェアの組み合わせを使用して、実装されるのに適している。
【0111】
実施形態は、前述した方法のステップを実行するように構成された手段を備えている制御コンピューティング・システムを提供する。実施形態は、同じ方法のステップの各々を実行するための回路(すなわち、例えばソフトウェアによって適切に構成された任意のハードウェア)を備えている制御コンピューティング・システムを提供する。しかし、制御コンピューティング・システムは、任意の種類(例えば、クラウド・コンピューティング環境内などでの、情報技術システムへのアクセスを制御するために使用されるマシンと同じであるか、または異なる、1つまたは複数の物理/仮想マシン、これらの静的または動的組み合わせなど)であってよい。
【0112】
一般に、制御コンピューティング・システムが異なる構造を有しているか、または同等のコンポーネントを含んでいるか、あるいは他の動作可能な特徴を有している場合、同様の考慮事項が当てはまる。いずれの場合でも、制御コンピューティング・システムのすべてのコンポーネントが、より多くの要素に分離されてよく、または2つ以上のコンポーネントが、単一の要素に一緒に結合されてよく、さらに、対応する動作の並列な実行をサポートするために、各コンポーネントが複製されてよい。さらに、特に指定されない限り、異なるコンポーネント間の任意の相互作用は、通常、継続的である必要はなく、直接的であるか、または1つまたは複数の仲介を介して間接的であってよい。
【0113】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
【0114】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasableprogrammable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0115】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0116】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0117】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0118】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を含むように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【0119】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0120】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を含んでいる、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0121】
本明細書に記載されたプログラムは、アプリケーションに基づいて識別され、本発明の特定の実施形態において、そのアプリケーションに関して実装される。ただし、本明細書における特定のプログラムの名前は単に便宜上使用されていると理解されるべきであり、したがって、本発明は、そのような名前によって識別されたか、または暗示されたか、あるいはその両方によって示された特定のアプリケーションのみで使用するように制限されるべきではない。
【0122】
本発明の実施形態は、クラウド・コンピューティング・インフラストラクチャを介してエンド・ユーザに提供されてよい。クラウド・コンピューティングとは、通常、ネットワークを経由したサービスとしての、拡張可能な計算リソースの提供のことを指す。さらに正式には、クラウド・コンピューティングは、計算リソースとその基盤になる技術アーキテクチャ(例えば、サーバ、ストレージ、ネットワーク)の間の抽象化を提供する計算能力として定義されてよく、構成可能な計算リソースの共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にし、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらの計算リソースを迅速にプロビジョニングおよび解放することができる。したがって、クラウド・コンピューティングは、ユーザが、計算リソースの提供に使用される基盤になる物理的システム(またはそのようなシステムの位置)を意識せずに、「クラウド」内の仮想計算リソース(例えば、ストレージ、データ、アプリケーション、および完全に仮想化されたコンピューティング・システム)にアクセスできるようにする。
【0123】
通常、クラウドの計算リソースは、利用回数制料金でユーザに提供され、実際に使用された計算リソース(例えば、ユーザによって消費されたストレージ空間の量、またはユーザによってインスタンス化された仮想化システムの数)についてのみ、ユーザに料金が請求される。ユーザは、インターネットを経由して、クラウドに存在するリソースのいずれかに、いつでも、どこからでもアクセスすることができる。本発明との関連では、ユーザは、クラウド内の利用可能な正規化検索エンジンまたは関連するデータにアクセスすることができる。例えば、正規化検索エンジンは、クラウド内のコンピューティング・システム上で実行され、正規化検索を実行することができる。そのような場合、正規化検索エンジンは、情報のコーパスを正規化し、正規化のインデックスをクラウド内の格納位置に格納することができる。そのようにすることで、ユーザは、クラウドに接続されたネットワーク(例えば、インターネット)に接続されている任意のコンピューティング・システムから、この情報にアクセスすることができる。
【0124】
本開示はクラウド・コンピューティングに関する詳細な説明を含んでいるが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないということが、あらかじめ理解される。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0125】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
【0126】
特徴は、次の通りである。
【0127】
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間およびネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
【0128】
幅広いネットワーク・アクセス:能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
【0129】
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンタ)を指定できる場合がある。
【0130】
迅速な順応性:能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
【0131】
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【0132】
サービス・モデルは、次の通りである。
【0133】
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【0134】
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
【0135】
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0136】
デプロイメント・モデルは、次の通りである。
【0137】
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0138】
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【0139】
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【0140】
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0141】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを備えるインフラストラクチャである。
【0142】
ここで
図5を参照すると、例示的なクラウド・コンピューティング環境500が示されている。図示されているように、クラウド・コンピューティング環境500は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、PDA(personal digital assistant)または携帯電話540A、デスクトップ・コンピュータ540B、ラップトップ・コンピュータ540C、または自動車コンピュータ・システム540N、あるいはその組み合わせなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード510を含んでいる。クラウド・コンピューティング・ノード510は、互いに通信してよい。ノード10は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境500は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組み合わせを提供できる。
図5に示されたコンピューティング・デバイス540A~Nの種類は、例示のみが意図されており、クラウド・コンピューティング・ノード510およびクラウド・コンピューティング環境500は、任意の種類のネットワーク接続またはネットワーク・アドレス可能な接続あるいはその両方(例えば、Webブラウザを使用した接続)を経由して任意の種類のコンピュータ制御デバイスと通信できるということが理解される。
【0143】
ここで
図6を参照すると、クラウド・コンピューティング環境500(
図5示されている)によって提供される機能的抽象レイヤのセットが示されている。
図6に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0144】
ハードウェアおよびソフトウェア・レイヤ660は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム661、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ662、サーバ663、ブレード・サーバ664、ストレージ・デバイス665、ならびにネットワークおよびネットワーク・コンポーネント666が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア667およびデータベース・ソフトウェア668を含む。
【0145】
仮想化レイヤ670は、仮想サーバ671、仮想ストレージ672(例えば、
図1に示されているようなデータ・ストレージ・デバイス106)、仮想プライベート・ネットワークを含む仮想ネットワーク673、仮想アプリケーションおよびオペレーティング・システム674、ならびに仮想クライアント675などの仮想的実体を提供できる抽象レイヤを備える。
【0146】
一例を挙げると、管理レイヤ680は、以下で説明される機能を提供することができる。リソース・プロビジョニング681は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定682は、クラウド・コンピューティング環境内でリソースが利用された際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクの識別情報の検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル683は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理684は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行685は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0147】
ワークロード・レイヤ690は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション691、ソフトウェア開発およびライフサイクル管理692、仮想クラスルーム教育の配信693、データ解析処理694、トランザクション処理695、およびアクセス制御696が挙げられる。アクセス制御696は、情報技術システムのアクセス制御を管理することができる。
【0148】
本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であるよう意図されておらず、開示された実施形態に制限されるよう意図されてもいない。説明された実施形態の範囲を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。