(57)【要約】      （修正有）【課題】ポリシーは、リソースに対するアクセスを制御するために使用するコンピュータ実装方法を提供する。【解決手段】ポリシーのセットを変更する要求は、少なくとも幾つかの状況において、遅延された強制についての要件に整合性がある将来時間に、要求された変更が効力を生じるようにその要求が提出される場合にだけ履行可能とする。遅延された強制についての要件は、ポリシーのセット内の１つのポリシーにおいてエンコードできる。【選択図】図９
2018113045.tif 000002
【特許請求の範囲】
【請求項１】
ポリシーのセットに対する変更を取消す要求を受信するステップと、
前記変更についての遅延情報に少なくとも部分的に基づいて、前記変更が現在遅延していると判断するステップであって、前記遅延情報は、前記変更がポリシー変更のポリシーの下で効力を生じるための停止条件に関連付けられている、ステップと、
第１の条件のセットに従って取消しが許可されると判断するステップであって、前記第１の条件のセットは、すでに効力を生じているポリシーの取消しについての第２の条件のセットとは異なる、ステップと、
前記ポリシーのセットに対する前記変更を取消すステップと、
を含む、コンピュータ実装方法。
【請求項２】
前記変更は、提案されたポリシーを定義するポリシー文書のエンコーディングを含み、前記ポリシー文書は、前記停止条件に適合していることを決定可能な値を含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記第１の条件のセットは、前記第２の条件のセットよりも厳しくない、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記変更は、前記ポリシーのセットへのポリシーの追加である、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記ポリシーのセットに対する前記変更を取消すステップは、
ある時間、前記変更の取消しを遅延させることと、
前記ある時間の経過以降に、前記変更を取消すこと
を含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記第１の条件のセットに従って取消しが許可されると判断する前記ステップは、いくつかのプリンシパルが第１の定足数ルールのセットに従って前記変更の取消しに合意する、と判断することを含み、前記第１の定足数ルールのセットは、前記第２の条件のセットに従うことに合意するために必要とされる前記プリンシパルの最小数を指定する第２の定足数ルールのセットよりも厳しくない、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記第１の条件のセットに従って取消しが許可されると判断する前記ステップは、前記変更の要求元がポリシー変更要求を取消す権限を有する第１のプリンシパルのセットのメンバーであることを認証することを含み、
前記第１のプリンシパルのセットは、すでに発効しているポリシーを取消す権限を有する第２のプリンシパルのセットよりも大きい、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記ポリシー変更のポリシーは、
前記ポリシーのセットが適用されるプリンシパル、または
前記ポリシーのセットが適用されるリソース
のうちの１つまたは複数をさらに示す、請求項１に記載のコンピュータ実装方法。
【請求項９】
システムであって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサによる実行の結果として、前記システムに、
ポリシーに対する変更を取消す要求を受信することと、
前記変更についての遅延情報に少なくとも部分的に基いて、前記変更が現在遅延していると判断することであって、前記遅延情報は、前記変更がポリシー変更のポリシーの下で効力を生じるための停止条件に関連付けられていることと、
前記変更を取消す条件のセットによって取消しが許可されるか判断することと、
前記遅延情報によって示される時間よりも先に、前記ポリシーに対する前記変更を取消すことと
を実行させる命令を含むメモリと、
を備える、システム。
【請求項１０】
前記命令は、前記システムに、前記要求が前記変更を取消す権限を有するエンティティから受信されることを検証することを実行させる命令をさらに含む、請求項９に記載のシステム。
【請求項１１】
前記遅延情報は、前記変更を提案する先の要求とともに受信される、請求項９に記載のシステム。
【請求項１２】
前記要求は、ハイパーリンクを介して受信されたウェブサービス要求である、請求項９に記載のシステム。
【請求項１３】
前記ポリシーに対する前記変更を取消す前記命令は、前記システムに、前記変更の取消しを示す、前記変更に関連付けられたメタデータの更新を実行させる命令を含む、請求項９に記載のシステム。
【請求項１４】
前記変更を取消す条件のセットは、前記ポリシー自体を取消す条件のセットよりも厳しくない、請求項９に記載のシステム。
【請求項１５】
前記ポリシーに対する前記変更を取消す前記命令は、前記取消しが許可されるという判断により実行され、
前記命令は、前記システムに、前記取消しが許可されないという判断により前記変更を取消す前記要求を拒否することを実行させる命令をさらに含む、請求項９に記載のシステム。
【請求項１６】
システムの１つまたは複数のプロセッサによって実行される結果として、前記システムに、
提案されたポリシー変更を取消す要求を受信することであって、前記提案されたポリシー変更は、すでに効力を生じているポリシーに対する変更であることと、
前記提案されたポリシー変更についての遅延情報に少なくとも部分的に基づいて、前記提案されたポリシー変更が、現在遅延していると判断することであって、前記遅延情報は、前記提案されたポリシー変更がポリシー変更のポリシーの下で効力を生じるための停止条件に関連付けられている、ステップと、
変更を取消す条件によって取消しが許可されると判断することであって、前記変更を取消す条件は、すでに発効している前記ポリシーを取消す条件とは異なることと、
前記提案されたポリシー変更を取消すことと、
を実行させる実行可能命令を一括記憶した１つまたは複数のコンピュータ可読記録媒体。
【請求項１７】
前記要求は、アプリケーションプログラミングインタフェース呼出しである、請求項１６に記載の１つまたは複数のコンピュータ可読記録媒体。
【請求項１８】
すでに発効している前記ポリシーは、コンピューティングリソースサービスプロバイダの顧客の代わりに管理されるコンピューティングリソースのセットに適用される、請求項１６に記載の１つまたは複数のコンピュータ可読記録媒体。
【請求項１９】
前記遅延情報は、前記提案されたポリシーが効力を生じる時間を示す値を含む、請求項１６に記載の１つまたは複数のコンピュータ可読記録媒体。
【請求項２０】
前記提案されたポリシー変更を取消す前記実行可能命令は、前記提案されたポリシー変更を、ポリシーリポジトリから削除する実行可能命令を含む、請求項１６に記載の１つまたは複数のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願に対する相互参照）
本出願は、２０１３年６月２０日に出願された同時係属中の米国特許出願第１３／９２３，００４号に対する優先権を主張し、その内容は、参照によりその全体が本明細書に組込まれる。
【背景技術】
【０００２】
最新のコンピューティングネットワークは、データアーカイブ、検索エンジン、データ処理、データ管理、通信、電子市場、並びにメディア及び娯楽サービス等のいろいろなコンピューティングリソースに対するアクセスを提供する。こうしたコンピューティングリソース及びそれらのユーザコミュニティの数及びサイズが成長し、より精緻化されるにつれて、益々精緻化された使用ポリシーを確立する必要性が生じてきた。例えば、こうしたポリシーは、セキュリティ、プライバシ、アクセス、規制、及びコスト課題に対処するポリシーを含むことができる。しかし、ポリシー強制に対する従来のアプローチは欠点を有する。
【０００３】
例えば、ポリシー強制に対する従来のアプローチは、アドホックであり得、特定の組のコンピューティングリソースに制限される、かつ／または、特定の組のポリシー制御に制限される可能性がある。コンピューティングリソースタイプを組込む異種コンピューティング環境において、そのタイプの数が少なくても、アドホックアプローチは、かなりの管理上の負担となる可能性がある。更に、一部の従来のアプローチは、コンピューティングリソースの数が大きく成長するにつれて、不十分にスケーリングする。小規模の管理上の及び／または性能上の非効率は、より大きなスケールにおいて問題となる可能性がある。一部の従来のアプローチは、集中化されたポリシー管理サービスを欠いており、これは、分散コンピューティング環境において整合性のあるポリシー管理を妨げる可能性がある。一部の従来のアプローチは、集中化されたポリシー管理に制限され、集中化されたポリシー管理は、要件を変更することに応答して柔軟性が不充分である可能性がある。ポリシーセットの複雑さもまた、ポリシー強制に対する一部の従来のアプローチについて問題となる可能性がある。
【図面の簡単な説明】
【０００４】
本開示による種々の実施形態が図面を参照して述べられる。
【０００５】
【図１】本開示の種々の態様を示す図である。
【図２】種々の実施形態を実装することができる環境の例証的な例を示す図である。
【図３】少なくとも１つの実施形態による、サービス及びサービスを含むことができるコンポーネントの例証的な例を示す図である。
【図４】少なくとも１つの実施形態による、ポリシー管理サービス及びポリシー管理サービスを含むことができるコンポーネントの例証的な例を示す図である。
【図５】少なくとも１つの実施形態によるポリシー文書の例証的な例を示す図である。
【図６】少なくとも１つの実施形態によるポリシー文書の例証的な例を示す図である。
【図７】少なくとも１つの実施形態によるポリシー文書の文の例証的な例を示す図である。
【図８】少なくとも１つの実施形態による要求を履行するためのプロセスの例証的な例を示す図である。
【図９】少なくとも１つの実施形態によるポリシーを変更する要求を履行するためのプロセスの例証的な例を示す図である。
【図１０】少なくとも１つの実施形態によるポリシーを管理するためのプロセスの例証的な例を示す図である。
【図１１】種々の実施形態を実装することができる或る環境を示す図である。
【発明を実施するための形態】
【０００６】
以下の説明において、種々の実施形態が述べられる。説明のために、特定の構成及び詳細が、実施形態の完全な理解を提供するために述べられる。しかし、実施形態を、特定の詳細無しで実施することができることも当業者に明らかになるであろう。更に、よく知られている特徴を、述べられる実施形態を曖昧にしないために省略または簡略化することができる。
【０００７】
本明細書で述べられ提案される技法は、コンピューティングリソースに関連するポリシーの効果的な管理に関する。ポリシーのセットは、種々のコンピューティングリソースに対するアクセスを制御するためコンピュータシステムによって強制することができる。ポリシーのセットは、ユーザが所望に応じてポリシーのセットを増やす（ａｄｄ  ｔｏ）かつ／またはその他の方法で変更することができるように構成することができる。種々の実施形態において、ポリシーは、ポリシーのセットを変更する能力を制御する。ポリシーは、例えば、ポリシーを変更できる人を制限するため、どんな変更を行うことができるかを制限するため、またそうでなければ、ポリシー変更が、ポリシーが強制されるものを代表するエンティティにとって有益であることを保証するのに役立つために作成することができる。
【０００８】
幾つかの実施形態において、システムは、ポリシーのセットに対する変更が効力を生じる前に遅延を強制する。遅延は、一般に、システムによって強制されることが可能であり、または、遅延を必要とするポリシーのせいで強制される場合がある。或る実施形態において、ポリシーを追加する要求が受信されると、要求は、必要とされる遅延に従って要求が提出されるかどうかに少なくとも部分的に基づいて承認される（履行されることを許可される）かまたは拒否されることができる。例えば、追加されることを要求されるポリシーは、ポリシーが効力を生じるべきときを示す、遅延を定義する将来時間または継続時間等の情報を含むことができる。別の例として、要求は、アプリケーションプログラミングインタフェース（ＡＰＩ：ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）呼出しの形態であるとすることができ、その呼出しは、ポリシーが効力を生じるべきときを示す情報を指定するパラメータを有する。ポリシーを追加する要求は、ポリシーが効力を生じるべきときを示す情報が要件に適合する場合に履行されることができる。換言すれば、要求は、要求されるポリシー追加が、要求される遅延以上の長さである遅延を示すかどうかに少なくとも部分的に基づいて許可されることができる。要求が履行されることを許可されると、システムは、ポリシーが効力を生じるべきときを示す情報に従って、対応するポリシーが効力を生じることを可能にすることができる。以下で論じるように、ポリシーが将来時間に効力を生じることを可能にした後、ポリシーは、発効する前に取消し可能であることができる。ポリシーが取消されると、ポリシーは、発効することが不可能になることができる。
【０００９】
種々の実施形態において、ユーザがポリシーを変更する（例えば、ポリシーのセットに１つのポリシーを追加する）要求を提出するとき、１つまたは複数の通知がトリガーされる。通知システム（例えば、電子メールシステムまたは通知を提供する他のシステム）は、通知され、結果として、指定された１人または複数人の関係者（例えば、１人または複数人のポリシー管理者、コンプライアンス責任者、及び／または他の者）に通知を送出することができる。１人または複数人の関係者を、ポリシーを追加／変更することに関するポリシーにおいてまたは別の方法で指定することができ、また、ポリシーを追加／変更することに関するポリシーにおいて、その効力が遅延されることを必要とされるポリシーを取消す権限を有しているとして指定することができる。通知はまた、選択される場合、ポリシー変更を取消させるハイパーリンク等のポリシー変更を取消すためのメカニズムを含むことができる。こうして、指定された関係者は、必要とされる遅延後に普通なら効力を生じることを許可するポリシー変更を取消す機会を提供されることができる。更に、効力を生じていないポリシー変更（すなわち、システムによってまだ強制されていないポリシー変更）を取消すための条件は、効力を生じたポリシー変更を取消すための条件に比べて厳しくないとすることができる。例えば、まだ発効していないポリシーを取消すための要件は、既に発効しているポリシーを取消すための要件に比べて低い（厳しくない）とすることができる。例えば、より大きな認証要件が、まだ発効していないポリシーに比べて既に発効しているポリシーについて存在する場合がある。更に、既に発効しているポリシーの取消しは、ポリシー指定遅延を必要とする場合があり、一方、まだ発効していないポリシーの取消しは、遅延を必要しない場合がある、または、より短い遅延を必要とする場合がある。限定はしないが、以下で明示的に論じられる変形を含む多数の変形が、本開示の範囲内にあるものと考えられる。
【００１０】
図１は、本開示の種々の態様を示す図である。先に論じたように、本明細書で述べる種々の実施形態に従って動作するシステムは、動的なポリシーセットの効果的な管理を可能にする。種々の実施形態において、権限のあるユーザは、種々のコンピューティングリソースについてシステムポリシーを更新することができる。ユーザは、例えば、ウェブサービス呼出し等の適切に構成されたアプリケーションプログラミングインタフェース（ＡＰＩ）をサービスプロバイダのポリシー管理システムに提出するコンピュータシステムを利用することができる。図１に示すように、本開示の種々の態様は、要求されたポリシー変更が効力を生じる前の遅延に関する。幾つかの実施形態において、図の砂時計で示すように、ポリシー管理システムは、ポリシーが効力を生じる前に遅延を強制する。更に、図のアラームベルで示すように、種々のアラームを、ポリシーのセットを変更する或るタイプの要求の結果として実装することができる。アラームは、種々の方法で、例えば、電子通知、エンハンスド監査ロギング、実際のアラームによって、また、一般に、要求されるポリシー変更に関する１人または複数人の利害関係者に通知を提供する任意の方法で実装することができる。こうして、ポリシー管理者等の利害関係者は、ポリシー変更が効力を生じる前にポリシー変更を取消す機会を有する。以下でより詳細に論じるように、ポリシーが効力を生じる前の強制された遅延は、システムがどのポリシーを強制するかに対する頑健な管理上の制御を可能にする。
【００１１】
図２は、本開示の種々の実施形態を実装することができる環境２００の例証的な例を示す。環境２００において、コンピューティングリソースサービスプロバイダ２０２は、種々のサービスを顧客２０４に提供することができる。顧客２０４は、コンピューティングリソースサービスプロバイダ２０２によって提供される種々のサービスを利用して、情報を、維持し、種々の地理的場所に位置し得る顧客２０４の従業者に送出することができる組織であるとすることができる。更に、顧客２０４は、種々のサービスを利用して、コンテンツを遠隔に位置する作業グループに送出する可能性がある個人であるとすることができる。図２に示すように、顧客２０４は、インターネット等の１つまたは複数の通信ネットワーク２０６を通してコンピューティングリソースサービスプロバイダ２０２と通信することができる。顧客２０４からコンピューティングリソースサービスプロバイダ２０２への一部の通信は、コンピューティングリソースサービスプロバイダ２０２を、本明細書で述べる種々の技法またはその変形に従って動作させることができる。
【００１２】
先に述べたように、コンピューティングリソースサービスプロバイダ２０２は、種々のコンピューティングリソースサービスをその顧客に提供することができる。コンピューティングリソースサービスプロバイダによって提供されるサービスは、この例では、仮想コンピュータシステムサービス２０８、ブロックレベルデータ記憶サービス２１０、暗号サービス２１２（鍵管理サービスとも呼ばれる）、オンデマンドデータ記憶サービス２１４、及び１つまたは複数の他のサービス２１６を含むが、本開示の全ての実施形態が全てのこうしたサービスを含むことになるわけではなく、また、更なるサービスが、本明細書で明示的に述べるサービスに加えてまたはそれの代替として提供される場合がある。サービスのそれぞれは、１つまたは複数のウェブサービスインタフェースを含むことができ、１つまたは複数のウェブサービスインタフェースは、顧客２０４が、適切に構成されたＡＰＩ呼出しを、ウェブサービス要求を通して種々のサービスに提出することを可能にする。更に、サービスのそれぞれは、１つまたは複数のサービスインタフェースを含むことができ、１つまたは複数のサービスインタフェースは、サービスが、互いにアクセスすることを可能にする（例えば、仮想コンピュータシステムサービス２０８の仮想コンピュータシステムが、オンデマンドデータ記憶サービスにデータを記憶するかまたはオンデマンドデータ記憶サービスからデータを取出すこと、及び／または、ブロックデータ記憶サービスによって提供される１つまたは複数のブロックレベルデータ記憶デバイスにアクセスすることを可能にする）。
【００１３】
仮想コンピュータシステムサービス２０８は、コンピューティングリソースサービスプロバイダ２０２の顧客２０４のために仮想コンピュータシステム上で仮想マシンインスタンスをインスタンス化するように構成されるコンピューティングリソースの集合体であるとすることができる。コンピューティングリソースサービスプロバイダ２０２の顧客２０４は、（適切に構成され認証されたＡＰＩ呼出しによって）仮想コンピュータシステムのサービスと対話して、コンピューティングリソースサービスプロバイダ２０２によってホストされ動作させられる物理的コンピューティングデバイス上でインスタンス化される仮想コンピュータシステムをプロビジョニングし動作させることができる。仮想コンピュータシステムは、種々の目的で、例えば、ウェブサイトを支持するサーバとして動作するため、ビジネスアプリケーションを動作させるため、または、一般に、顧客用のコンピューティングパワーとして役立つために使用することができる。仮想コンピュータシステム用の他のアプリケーションは、データベースアプリケーション、電子商取引アプリケーション、ビジネスアプリケーション、及び／または、他のアプリケーションを支持するためのものである場合がある。
【００１４】
ブロックレベルデータ記憶サービス２１０は、ブロックレベル記憶デバイス（及び／またはその仮想化）を使用して顧客２０４用のデータを記憶するように集合的に動作するコンピューティングリソースの集合体を備えることができる。ブロックレベルデータ記憶サービス２１０のブロックレベル記憶デバイスは、例えば、仮想コンピュータシステムサービス２０８によって提供される仮想コンピュータシステムに動作可能にアタッチされて、コンピュータシステム用の倫理ユニット（例えば、仮想ドライブ）として役立つことができる。ブロックレベル記憶デバイスは、対応する仮想コンピュータシステムによって使用／生成されるデータの持続的記憶を可能にすることができ、仮想コンピュータシステムサービス２０８は、一過性のデータストレージを提供することができるだけである。
【００１５】
図２に示すように、コンピューティングリソースサービスプロバイダ２０２は、図３に関連して以下でより詳細に述べる暗号サービスを動作させることができる。一般に、暗号サービスは、コンピューティングリソースサービスプロバイダの顧客用の暗号鍵を管理し使用するように集合的に構成されるコンピューティングリソースの集合体であるとすることができる。暗号サービス２１２によって使用される鍵は、暗号オペレーション（暗号化、復号化、及びメッセージ署名等）及び／または鍵回転等の他のオペレーションを実施する要求を提出するとき顧客が参照できる関連する識別子を有することができる。暗号サービスは、暗号鍵をセキュアに維持して、権限のない関係者によるアクセスを回避することができる。
【００１６】
コンピューティングリソースサービスプロバイダ２０２はまた、オンデマンドデータ記憶サービスを含むことができる。オンデマンドデータ記憶サービス２１４は、データを記憶するかつ／またはデータにアクセスする要求を同期して処理するように構成されるコンピューティングリソースの集合体であるとすることができる。オンデマンドデータ記憶サービス２０８は、オンデマンドデータ記憶サービス２０８が迅速にデータを位置特定しデータを取出すことを可能にするコンピューティングリソース（例えば、データベース）を使用して動作して、データが、データを求める要求に応答して提供されることを許可することができる。例えば、オンデマンドデータ記憶サービスは、データオブジェクトを求める要求が取出されるときに、要求に応答してデータオブジェクトが提供されることができるように（または、データオブジェクトのストリーミングが始動されることができるように）、記憶されたデータを維持することができる。述べたように、オンデマンドデータ記憶サービス２１４に記憶されたデータは、データオブジェクトに編成することができる。データオブジェクトは、例えば、サイズに関する一定の制約を除いて、任意のサイズを有することができる。そのため、オンデマンドデータ記憶サービス２１４は、いろいろなサイズの多数のデータオブジェクトを記憶することができる。オンデマンドデータ記憶サービス２１４は、オンデマンドデータ記憶サービス２１０によって記憶されるデータオブジェクトに関連して他のオペレーションを取出すかまたは実施するために顧客２０４が使用することができるデータオブジェクトの識別子にデータオブジェクトを関連付けるキーバリューストア（ｋｅｙ  ｖａｌｕｅ  ｓｔｏｒｅ）として動作することができる。オンデマンドデータ記憶サービス２１４はまた、暗号サービス２１２にアクセス可能であるとすることができる。例えば、幾つかの実施形態において、暗号サービスは、オンデマンドデータ記憶サービスを使用して、顧客の鍵を暗号化形態で記憶し、顧客鍵を復号化するために使用可能な鍵は暗号サービス２１２の特定のデバイスだけにアクセス可能である。顧客、別のサービス、または他のエンティティによるデータ記憶サービスに対するアクセスは、適切に構成されたＡＰＩ呼出しを通して行うことができる。
【００１７】
図２に示す環境において、通知サービス２１６が含まれる。通知サービス２１６は、ウェブサービスまたは他のインタフェース、及び、ブラウザベース管理コンソールであって、顧客がアプリケーション（または人々）に通知したいと思うトピックスを生成し、クライアントにこれらのトピックを申し込ませ、メッセージを発行し、これらのメッセージを顧客が選好するクライアントのプロトコル（すなわち、ＨＴＴＰ、電子メール、ＳＭＳ等）を通じて送出させるために使用することができる、ブラウザベース管理コンソールを提供するように集合的に構成されるコンピューティングリソースの集合体を備えることができる。通知サービスは、新しい情報及び更新のための定期的にチェックするかまたは「ポーリング（ｐｏｌｌ）」する必要性なしで、「プッシュ（ｐｕｓｈ）」メカニズムを使用して通知をクライアントに提供することができる。通知サービスは、仮想コンピュータシステムサービスで実行されるアプリケーション、ワークフローシステム、時間依存情報更新、モバイルアプリケーション、及び多くの他のものをモニタリングすること等の種々の目的で使用することができる。
【００１８】
コンピューティングリソースサービスプロバイダ２０２は、その顧客２０４のニーズに基づいて１つまたは複数の他のサービス２１８を更に維持することができる。例えば、コンピューティングリソースサービスプロバイダ２０２は、その顧客２０４のためにデータベースサービスを維持することができる。データベースサービスは、１人または複数人の顧客２０４のために１つまたは複数のデータベースを実行するように集合的に動作するコンピューティングリソースの集合体であるとすることができる。コンピューティングリソースサービスプロバイダ２０２の顧客２０４は、適切に構成されたＡＰＩ呼出しを利用することによって、データベースサービスからのデータベースを動作させ管理することができる。これは、次に、顧客２０４が、データベースにおいてオペレーションを維持し、おそらくはオペレーションをスケーリングすることを可能にすることができる。他のサービスは、オブジェクトレベルアーカイブデータ記憶サービス、他のサービスを管理及び／またはモニタリングするサービス及び／または他のサービスを含むが、それらに限定されない。
【００１９】
図２に示すように、コンピューティングリソースサービスプロバイダ２０２は、種々の実施形態において、認証システム２２０及びポリシー管理サービス２２２を含む。認証システムは、或る実施形態において、顧客のユーザの認証に関わるオペレーションを実施するように構成されるコンピュータシステム（すなわち、コンピューティングリソースの集合体）である。例えば、サービスのうちの１つは、ユーザからの情報を認証サービスに提供して、ユーザ要求が真正であるか否かを示す情報を代わりに受信することができる。ユーザ要求が真正かどうかを判定することは、任意の適した方法で実施することができ、認証が実施される方法は、種々の実施形態の間で変わる場合がある。例えば、幾つかの実施形態において、ユーザは、サービスに送信されるメッセージに電子的に署名する（すなわち、ユーザによって操作されるコンピュータシステムがメッセージに電子的に署名する）。電子署名は、認証エンティティ（例えば、ユーザ）と認証システムの両方に利用可能である秘密情報（例えば、ユーザに関連する鍵対の私有鍵）を使用して生成することができる。要求及び要求についての署名は、認証システムに提供することができ、認証システムは、秘密情報を使用して、受信された署名と比較するための基準署名を計算して、要求が真正であるかどうかを判定することができる。
【００２０】
要求が真正である場合、認証サービスは、保留要求を履行するかどうか、及び／または、他のアクションを実施するかどうかを判定するためにサービスが使用することができる情報をサービスに提供することができ、例えば、暗号サービス等の他のサービスに対して、要求が真正であることを証明し、それにより、他のサービスが、相応して動作することを可能にすることができる。例えば、認証サービスは、別のサービスが解析することができるトークンを提供して、要求の真正性を検証することができる。電子署名及び／またはトークンは、種々の方法で制限される有効性を有することができる。例えば、電子署名及び／またはトークンは、一定時間の間、有効であるとすることができる。一例において、電子署名及び／またはトークンは、検証のために電子署名及び／またはトークンと共に含まれるタイムスタンプを入力として取る関数（例えば、ハッシュベースメッセージ認証コード）に少なくとも部分的に基づいて生成される。提出される電子署名及び／またはトークンを検証するエンティティは、受信されるタイムスタンプが、十分に最近（例えば、現在時間から所定の時間以内）であることをチェックし、受信されるタイムスタンプのために使用する基準署名／トークンを生成することができる。提出される電子署名／トークンを生成するために使用されるタイムスタンプが十分に最近でない、かつ／または、提出される署名／トークン及び基準署名／トークンが一致しない場合、認証は失敗する場合がある。こうして、電子署名が危殆化（ｃｏｍｐｒｏｍｉｓｅ）する場合、電子署名は、短い時間の間、有効であるだけであることになり、それにより、危殆化によって引起され得る害を制限する。真正性を検証する他の方法もまた、本開示の範囲内にあるものと考えられることが留意されるべきである。
【００２１】
ポリシー管理サービス２２２は、或る実施形態において、コンピューティングリソースサービスプロバイダの顧客のためにポリシーを管理するように構成されるコンピュータシステムである。ポリシー管理サービス２２２は、顧客が、ポリシーの管理に関連する要求を提出することを可能にするインタフェースを含むことができる。こうした要求は、例えば、顧客のために、または、既存のポリシーのインベントリを提供すること及び同様なこと等の管理上の他のアクションのために、ポリシーを、追加する、削除する、変更する、またはその他の方法で修正する要求であるとすることができる。ポリシー管理サービス２２２はまた、他のサービスにインタフェースして、要求が行われた顧客に対応するポリシーに従って保留要求の履行が許可可能であるかどうかを、サービスが判定することができる。例えば、サービスが要求を受信すると、サービスは、（サービスがこうした情報をローカルにキャッシュしていない場合）要求（及び／または要求自体）に関する情報をポリシー管理システムに送信することができ、ポリシー管理システムは、顧客についてのポリシーを解析して、顧客の既存のポリシーが要求の履行を許可するかどうかを判定し、その判定に従って情報をサービスに提供することができる。例示的なポリシー管理システムは、以下で図４に関連して述べられる。他のサービス及び／またはコンポーネントもまた環境２００に含まれる場合がある。同様に、本開示の技法は、他の環境に適用される。
【００２２】
図３は、種々の実施形態によるサービス３００の例証的な例を示す。サービス３００は、例えば、図２に関連して上述したサービスのうちの１つであるとすることができる。例えば、サービス３００は、仮想コンピュータシステム２０８、ブロックデータ記憶サービス２１０、暗号サービス２１２、オンデマンドデータ記憶サービス２１４、通知サービス２１６、または上述したような１つまたは複数の他のサービス２１８である可能性がある。図３がサービス３００の種々のコンポーネントを示すが、種々のサービスが、種々に従って変わることになり、また、本明細書で示すコンポーネントと異なるコンポーネントを含むことができることが留意されるべきである。図３に示すように、サービス３００は、サービスフロントエンド３０２を含む。サービスフロントエンド３０２は、フロントエンドサービス３０２に対するアプリケーションプログラミングインタフェース（ＡＰＩ）呼出し等を通して顧客が通信することができるインタフェースを提供するように集合的に構成されるコンピューティングリソースの集合体を含むことができる。フロントエンドサービス３０２は、例えば、１つまたは複数のウェブサーバ、１つまたは複数の負荷バランサ、１つまたは複数のアプリケーションサーバ、及び一般的に本明細書で述べる他のコンピューティングリソースを含むことができる。
【００２３】
或る実施形態において、サービスフロントエンド３０２は、顧客要求を受信し、これらの要求に対する応答を提供するように構成される。サービスフロントエンド３０２はまた、他のサービスからの要求の受信及び処理を可能にするインタフェースを含むことができる。要求を処理するために、サービスフロントエンド３０２は、サービス３００の種々の他のコンポーネントと対話することができる。例えば、図３に示すように、サービス３００は、認証ランタイムサービス３０４を含む。認証ランタイムサービス３０４は、フロントエンド３０２でのサービスのように、サービスフロントエンド３０２が、適宜要求を拒否または履行することを可能にするため、認証に関する判定を行うように集合的に構成されるコンピューティングリソースの集合体を備えるサービス３００のサブシステムであるとすることができる。或る実施形態において、サービスフロントエンド３０２が要求を受信するとき、サービスフロントエンド３０２は、認証ランタイムサービス３０４と通信して、要求が真正であるかどうかを判定する。要求は、例えば、図２に関連して上述したような、顧客と認証システムの間で共有される秘密を使用して生成される電子署名を含むことができる。認証ランタイムサービス３０４は、認証システムインタフェース３０６を介して情報を送信することができ、認証システムインタフェース３０６は、認証ランタイムサービス３０４が、要求が真正であるかどうかという、図２に関連して上述したような認証システムからの判定を得ることを可能にする。要求が真正であるかどうか判定するために動作するとき、認証ランタイムサービス３０４は、一定の情報をキャッシュして、認証ランタイムサービス３０４が、認証システムインタフェース３０６を通した認証システムに対する認証なしで、認証に関する判定を行うことを可能にすることができる。図３は特定の実施形態を示すが、サービス３００が、必ずしも示した方法ではなく、任意の適した方法で要求を認証することができることが留意されるべきである。
【００２４】
図３に示すように、サービスフロントエンド３０２はまた、ポリシー強制サービス３０８と通信して、一定の要求を履行するかどうかを判定する。ポリシー強制サービス３０８は、サービスフロントエンド３０２が要求を履行または拒否するかどうかを判定することを可能にするように集合的に構成されるコンピューティングリソースの集合体を備えるサービス３００のサブシステムであるとすることができる。認証ランタイムサービス３０４の場合と同様に、ポリシー強制サービス３０８は、要求の履行がポリシーに適合しているかどうかを判定するためにポリシー管理システム（図には示さず）と通信することができる。例えば、サービスフロントエンド３０２が要求を受信すると、サービスフロントエンド３０２は、要求または要求に少なくとも部分的に基づく情報をポリシー強制サービス３０８に送信することができる。ポリシー強制サービス３０８は、ポリシー管理システムインタフェース３１０を介して情報をポリシー管理システムに送信して、判定を行うことができる。認証ランタイムサービス３０４の場合と同様に、ポリシー強制サービス３０８は、種々の情報をキャッシュして、ポリシー管理システムと通信することなく、要求の履行がポリシーに適合するかどうかについての判定を可能にすることができる。
【００２５】
種々の実施形態において、サービスフロントエンド３０２はまた、受信される要求が、真正であると共にポリシーに適合して履行可能であると判定されると、サービスネットワーク３１２と通信する。サービスネットワーク３１２は、或るサービスを提供することを支援して動作するように構成されるコンピューティングリソースの集合体を備えるサービス３００のサブシステムであるとすることができる。例えば、サービス３００が仮想コンピュータシステムサービスである実施形態において、サービスネットワーク３１２は、サービス３００の顧客のために仮想コンピュータシステムを実装する複数の物理的ホストコンピューティングデバイスを備えることができる。サービスフロントエンド３０２を通した要求は、サービスネットワーク３１２を使用して実装される仮想コンピュータシステムの動作に関連する場合がある。例えば、要求は、仮想コンピュータシステムを、プロビジョニングするため、デプロビジョニングするため、修正するため、またはその他の方法でリモートで管理するために、サービスフロントエンド３０２に提出することができる。ブロックデータ記憶サービス２１０の例において、サービスネットワーク３１２は、対応するデータ記憶デバイスを有するデータ記憶サーバの集合体を備えることができる。サービスフロントエンド３０２は、記憶空間を顧客に割当てること、顧客用の記憶空間を割当て解除すること等の種々の目的で、また、一般に、サービス３００によって提供される１つまたは複数の仮想ブロックレベルデータ記憶デバイスの管理に関連して、サービスネットワーク３１２と対話することができる。暗号サービスの例において、サービスネットワーク３１２は、暗号鍵のセキュアな管理を可能にする種々のハードウェアデバイスを含むことができる。例えば、サービスネットワーク３１２は、暗号鍵素材をセキュアに記憶するデバイスである場合がある複数のセキュリティモジュール（例えば、ハードウェアセキュリティモジュール）を備えることができる。暗号サービス用のサービスネットワークはまた、顧客のために鍵を記憶するためのデータ記憶デバイス及び一般に暗号サービスの動作を支持する他のデバイスを含むことができる。オンデマンドデータ記憶サービスの例において、サービスネットワーク３１２は、ブロックデータ記憶デバイスの場合と同様に、データ記憶サーバ及び対応するデータ記憶デバイスを含むことができる。サービスネットワークはまた、１つまたは複数のデータベースを含んで、キーバリューストアとして動作し、それにより、サービスネットワーク３１２内でのデータの効率的な位置付けを可能にすることができる。サービスネットワーク３１２はまた、ガーベッジコレクションプロセス及び同様なものを実施するためデータを耐久性よく、すなわち冗長的に記憶するように動作するデバイス等の他のデバイス（例えば、サーバコンピュータシステム）を含むことができる。一般に、サービスネットワーク３１２は、提供されるサービスに適用可能なコンピューティングリソースを含むことができる。同様に、示さないが、サービスネットワーク３１２は、ルータ、スイッチ、負荷バランサ、及び、記憶ネットワーク３１２内でのデバイスの集合的動作を可能にする他のデバイス等の適切なネットワーキングデバイスを含むことができる。もちろん、含まれる正確なリソース及びそれらの集合的構成は、それらが実装される種々のサービス及び種々の実施形態に従って変わることになる。
【００２６】
図４は、種々の実施形態によるポリシー管理サービス４００の例証的な例を示す。図４に示すように、ポリシー管理サービス４００は、ポリシー管理システムフロントエンド４０２を含む。ポリシー管理システムフロントエンド４０２は、図３に関連して上述したサービスフロントエンド３０２のように構成することができる。特に、ポリシー管理システムフロントエンド４０２は、顧客の要求を受信し、これらの要求に対して応答を提供するように構成することができる。特に、ポリシー管理システムフロントエンド４０２は、要求がポリシーに従って履行可能であるかどうかを判定すること等のために、他のサービスからの要求を受信するように構成することができる。ポリシー管理システムフロントエンド４０２に対する要求は、コンピューティングリソースプロバイダのポリシーまたはアカウントの管理に関連する種々の要求であるとすることができる。例えば、ポリシー管理システムフロントエンドに対する要求は、ポリシーを追加する、ポリシーを削除する、ポリシーを変更する、また一般に、ポリシーのインベントリを提供すること及び同様なもの等の、ポリシーに関連する種々のアクションを実施する、適切に構成されたＡＰＩ呼出しであるとすることができる。本明細書で述べる他のフロントエンドシステムの場合と同様に、ポリシー管理システムフロントエンド４０２は、異なるオペレーションを実施する１つまたは複数のウェブサーバを含むことができる。例えば、或る実施形態において、ポリシー管理システムフロントエンド４０２は、インターネット等のネットワークを通じて、ポリシーを管理するためのコンソールインタフェースを提供するウェブサーバを含むことができる。コンソールインタフェースは、ポリシーの管理に関連してユーザが種々のアクションを実施することを可能にする種々のグラフィカルユーザインタフェース（ＧＵＩ）コントロールを有するＧＵＩであるとすることができる。例示的なアクションは、ポリシーの定義及び定義されたポリシーの提出を含む。ユーザは、例えば、ポリシーを定義するための種々のＧＵＩコントロール（ドロップダウンメニュー、チェックボックス、テキストエントリボックス、及び同様なもの）を使用し、その後、ＧＵＩと対話して、ウェブサーバに定義されたポリシーを提出させることができる。要求における定義されたポリシーの提出（または、一般に、ＧＵＩを介して送信される任意の要求の提出）は、以下で述べるように、ＧＵＩを提供するウェブサーバから、要求の処理を組織化する別のウェブサーバに要求を送信させることができる。他のウェブサーバはまた、ＧＵＩを提供するウェブサーバを通す代わりに、要求を直接提出するために顧客に利用可能であるとすることができる。他の変形もまた、本開示の範囲内にあると考えられる。
【００２７】
図３に関連して上述したサービス３００の場合と同様に、ポリシー管理サービス４００は、認証ランタイムサービス４０４及び認証システムインタフェース４０６を含んで、ポリシー管理システムフロントエンド４０２が、適宜、要求を履行または拒否することを可能にすることができる。サービスフロントエンド３０２の場合と同様に、ポリシー管理システムフロントエンド４０２は、（例えば、適切に構成された通信信号を介して）種々のコンポーネントと対話して、ポリシー管理サービスを提供することができる。例えば、図４に示すように、ポリシー管理システムフロントエンド４０２は、通知システムインタフェース４０８を利用して、上述したような通知システムと通信することができる。以下でより詳細に論じるように、通知システムは、一定のタイプの活動のアカウントに関連するユーザに、そのアカウントのポリシーに関連して警報するために使用することができる。例えば、以下でより詳細に述べるように、アカウントについてのポリシーのセットに対する追加の試みは、ポリシー追加の試みの１つまたは複数の通知を通知システムに提供させるようポリシー管理システムフロントエンド４０２にさせることができる。こうして、通知の受信は、ポリシーの追加が不適切であるとき等に適切なアクションがとられることを可能にする。
【００２８】
ポリシー管理システムフロントエンド４０２は、或る実施形態において、ポリシーを評価するように集合的に構成されるコンピューティングリソースの集合体を備えるポリシー管理サービス４００のサブシステムであるとすることができるポリシーエンジン４１０を利用する。ポリシーエンジン４１０は、ポリシー管理システムフロントエンド４０２から、受信された要求及び／または受信された要求に少なくとも部分的に基づく情報を受信することができる。ポリシーエンジン４１０は、要求に適用可能な任意のポリシーを識別し、要求の履行が任意の適用可能なポリシーに適合しているかどうかを評価し、要求の履行が既存のポリシーに適合しているかどうかという通知をポリシー管理システム４０２に提供することができる。ポリシーエンジン４１０は、種々の実施形態に従って種々の方法で動作することができる。例えば、以下で論じるように、ポリシーは、プリンシパル、リソース、及びポリシーが適用される先の他のアイテムに関する種々の情報をエンコードするポリシー文書においてエンコードすることができる。ポリシーエンジン（またはポリシーエンジンと連携して作業する別のシステム）は、ポリシー内の情報を使用して、ポリシーのセットのうちのどのポリシーが特定の要求に適用されるかを決定することができる。たとえば、要求が、その要求において識別される特定のアイデンティティによって提出される場合、ポリシーエンジンは、そのエンティティに適用可能なポリシーを選択することができる。要求が特定のリソースを含む場合、ポリシーエンジンは、特定のリソースに適用可能であるポリシーを選択することができる。更に、以下でより詳細に論じるように、ポリシー文書は、ポリシー文書においてエンコードされる１つまたは複数のポリシーの効力が始まる（ｂｅｇｉｎ）時間を示す情報等の、ポリシー文書が現在効力があるかどうか（すなわち、ポリシー文書においてエンコードされる１つまたは複数のポリシーが現在強制されるか）を示す情報を含むことができる。適用可能なポリシー文書を識別することは、効力のあるポリシー文書を選択すること、及び、効力のないポリシー文書を無視することを含むことができる。
【００２９】
ポリシーエンジンは、ポリシーを順次またはその他の方法で処理して、選択されたポリシーのそれぞれが要求の履行を許可するかどうかを判定することができる。ポリシーエンジンは、ポリシーに対応するアカウントについてのポリシーのセットが要求の履行を許可するかまたは不可能にするかを示す通知を（例えば、ポリシー管理システムフロントエンド４０２によって提出されるポリシーを評価する要求に対する応答の形態で）ポリシー管理システムフロントエンド４０２に送信することができる。要求の履行がポリシーによって不可能にされる１つまたは複数の理由などの更なる情報（例えば、要求の履行によって違反されることになる１つまたは複数のポリシーを識別する情報及び／または要求の履行によって違反されることになるポリシーに少なくとも部分的に基づく情報）。
【００３０】
複数のユーザのための大規模ポリシー管理を可能にするため、ポリシー管理サービス４００は、コンピューティングリソースサービスプロバイダの種々のアカウントのポリシーをエンコードするポリシー文書を記憶する１つまたは複数のデータ記憶デバイスを備えることができるポリシーリポジトリ４１２を含むことができる。幾つかの実施形態において、ポリシーリポジトリ４１２は、複数のエンティティ（例えば、コンピューティングリソースサービスプロバイダの顧客）についてのポリシーを記憶し、相応して、ポリシーが対応するエンティティに直接的に関連するかまたは間接的に関連するポリシーを記憶する。
【００３１】
図４に示すように、ポリシー管理システムフロントエンド４０２は、要求を受信すると、認証ランタイムサービス４０４を利用して、要求が真正であるかどうかを判定することができる。要求が真正である場合、ポリシー管理システムフロントエンド４０２は、ポリシー評価要求をポリシーエンジン４１０に提出して、適用可能な既存のポリシーに要求が適合しているかどうかを判定することができる。ポリシーエンジン４１０は、こうした情報がキャッシュされていない場合、適用可能なポリシーを取得するためにポリシーリポジトリ４１２と対話することができる。ポリシーエンジン４１０は、例えば、ポリシーリポジトリ４１２からの要求に関連するアカウントについて全てのポリシーにアクセスし、アクセスされたポリシーから、要求に適用可能である任意のポリシーを識別することができる。述べたように、ポリシーエンジンは、ポリシーをキャッシュして、ポリシーエンジン４１０からネットワークにわたって実装することができるリポジトリ４１２との通信を回避することができる。
【００３２】
一定のタイプの要求の場合、ポリシー管理システムフロントエンド４０２は、ポリシーリポジトリ４１２と対話することができる。例えば、こうしたアクションが既存のポリシーによって許可される場合、ポリシー管理システムフロントエンド４０２は、新しいポリシーをポリシーリポジトリ４１２に送信することができ、１つまたは複数のポリシーを削除する、かつ／または、一般にポリシーのセットまたは要求に関連するアカウントを（例えば、既存のポリシーを修正することによって）変更するコマンドをポリシーリポジトリ４１２に送信することができる。
【００３３】
先に述べたように、コンピューティングリソースサービスプロバイダの顧客によって利用される種々のポリシーは、ポリシー文書の形態でエンコードすることができる。或る実施形態のポリシー文書は、１つまたは複数の文用の格納庫として機能する文書、すなわち、情報の編成された集合体である。ポリシー文書は、ジャバスクリプト・オブジェクト・ノーテーション（ＪＳＯＮ：Ｊａｖａｓｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）、拡張可能マークアップ言語（ＸＭＬ：ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕｇａｅ）文書、構造化マークアップ言語または編成情報の他の方法を使用する別の文書であるとすることができる。ポリシー文書が、対応する文によって定義される１つまたは複数の文書をエンコードすることができることが留意されるべきである。ポリシーが１つまたは複数のサブポリシーを含むことができることも留意されるべきである。換言すれば、ポリシーはポリシーの集合体を備えることができる。例えば、コンピューティングリソースサービスプロバイダのアカウントは、それぞれが特定の許可を定義する複数の個々のポリシーを備えるデータ記憶サービスについてのポリシー（「データ記憶サービスポリシー（ｄａｔａ  ｓｔｏｒａｇｅ  ｓｅｒｖｉｃｅ  ｐｏｌｉｃｙ）」）を有することができる。更に、用語「ポリシー（ｐｏｌｉｃｙ）」が異なる文脈において異なる意味を有する場合があることが留意されるべきである。或る例として、用語「ポリシー」は、計数可能（可算（ｃｏｕｎｔ））名詞として使用されるときと比べて異なる意味を、計数不能（質量（ｍａｓｓ））名詞として使用されるときに有する可能性がある。例えば、「ポリシーが要求の履行を許可するかどうか（ｗｈｅｔｈｅｒ  ｐｏｌｉｃｙ  ａｌｌｏｗｓ  ｆｕｌｆｉｌｌｍｅｎｔ  ｏｆ  ａ  ｒｅｑｕｅｓｔ）」等のフレーズは、個々のポリシーの集合体が要求の履行を許可するかどうかを意味すると解釈することができる。同様に、ポリシー文書が例証のために使用されるが、ポリシーをエンコードする他の方法（例えば、ポリシー文書によってエンコードされることになる種々の情報を記憶するためリレーショナルデータベースのリレーショナルテーブルを使用することによる）を、種々の実施形態に従って使用することができる。文は、文に関する任意の制限または詳細であることができる条件を含む場合がある。その条件は、例えば、ポリシーが発効するための状況を指定することができる。
【００３４】
種々の実施形態において、ポリシーは、コンピューティングリソースサービスプロバイダのアカウントについてのポリシーのセット等のポリシーのセットを変更するための条件を定義することができる。ポリシー追加に関するポリシー（「ポリシー追加ポリシー（ｐｏｌｉｃｙ  ａｄｄｉｔｉｏｎ  ｐｏｌｉｃｙ）」と呼ぶことができる）は、履行可能であるために、或る基準時点から測定して将来に向けて進んだ指定される時間等の将来時間まで、提案されるポリシーが効力を生じない（すなわち、ポリシーのセットを強制するシステムによって強制されない）ように、提案されるポリシーをポリシーのセットに追加する要求が、構成されなければならないことを要求する。ポリシー追加に関するポリシーは、ポリシーが適用されるプリンシパルのセット、ポリシーが適用されるリソース、充足されなければならない１つまたは複数の他の条件、及び、条件が充足されない場合の拒否（または代替的に、条件が充足される場合の許可）のほかに１つまたは複数のアクションを定義することができる。ポリシーによって定義される更なるアクションは、例えば、ポリシーを追加する要求の１つまたは複数のプリンシパルの通知をもたらす１つまたは複数のアクションを含むことができる。ポリシー管理者は、例えば、１人または複数人の他の者がポリシーのセットにポリシーを追加することを許可できるが、ポリシー管理者が、必要とされる遅延なしでポリシーを追加できるように、ポリシー追加に関するポリシーを構成することができる。しかし、許可された１人または複数人の他の者は、必要とされる遅延に適合して効力を生じるようにポリシーが追加される場合のみ、ポリシーを成功裡に追加することができる。
【００３５】
図５は、或る実施形態によるポリシー文書の例証的な例を示す。或る実施形態において、ポリシー文書５００は、ポリシー文書によってエンコードされるポリシーに関連する種々の情報をエンコードする。ポリシーは、拡張可能アクセス制御マークアップ言語（ＸＡＣＭＬ：ｅＸｔｅｎｓｉｂｌｅ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、エンタープライズ・プライバシー・オーソライゼーション言語（ＥＰＡＬ：Ｅｎｔｅｒｐｒｉｓｅ  Ｐｒｉｖａｃｙ  Ａｕｔｈｏｒｉｚａｔｉｏｎ  Ｌａｎｇｕａｇｅ）、アマゾン・ウェブサービス・アクセスポリシー言語等の宣言型アクセスポリシー制御言語、マイクロソフトＳｅｃＰｏｌ、または暗号オペレーションが実施されるために満たされなければならない１つまたは複数の条件をエンコードする任意の適した方法でエンコードすることができる。図５に示すように、ポリシー文書５００は、ポリシー文書５００用のストリングを含むことができる名前５０２を含む。名前５０２は、例えば、人間可読項目を使用するときに好都合な識別子を提供するために使用することができる。或る例として、名前５０２は、自分のデータ記憶サービスポリシーの趣旨でのストリングであるとすることができる。同様に図５に示すように、ポリシー文書５００はバージョン５０４を含むことができる。バージョン５０４は、種々の要求がポリシーを更新するために受信され履行されるにつれてポリシー文書５００が経時的にどのように変化するかを追跡するために使用することができる。ポリシー文書５００に対するそれぞれの更新は、バージョン５０４を新しい値に更新させることができる。ポリシー文書５００はまた、現在のバージョンを有するポリシー文書５００の生成をもたらした要求を提出したユーザについての識別子である場合がある発行者５０６を含むことができる。
【００３６】
図５に示しまた先に述べたように、ポリシー文書５００は、１つまたは複数の文５０８を含むことができる。ポリシー文書内の文は、論理ＯＲを使用して処理することができる。以下でより詳細に論じるように、１つまたは複数の文５０８は、ポリシー文書５００によってエンコードされるポリシーが効力がある将来時間を示す情報を、エンコードすることができる。例えば、文は、ポリシー文書５００によってエンコードされるポリシーが効力を生じる将来時間についてのタイムスタンプをエンコードすることができる。文は、ポリシー文書５００が効力を生じる前に経過しなければならない時間を示す継続期間をエンコードすることができ、継続期間は、グローバル時間（例えば、Ｕｎｉｘ時間）であり得る或る時点から測定することができる、または、文を含むポリシーを追加する要求の提出またはポリシー管理システムによるポリシーの承認等の、特定の事象から測定することができる。一般に、文は、ポリシー文書５００によってエンコードされるポリシーが効力を生じる将来時間を即座にまたは最終的に確定可能であるようにする任意の情報をエンコードすることができる。文がまた、（少なくともポリシー文書内の）文を一意に識別する文識別子等の、図に示さない更なる情報、及び、ポリシー管理システムによって使用される場合がある他の情報を含むことができることが留意されるべきである。
【００３７】
図６は、種々の実施形態によるポリシー文書６００の別の例証的な例を示す。ポリシー文書６００は、図５に関連して先に論じたポリシー文書５００と同様に構成することができる。例えば、図６に示すように、ポリシー文書６００は、上述したような、名前６０２、バージョン６０４、発行者６０６、及び１つまたは複数の文６０８を含むことができる。しかし、ポリシー文書６００によってエンコードされるポリシーが効力を生じるときについて文６０８が確定的である代わりに（またはそれに加えて）、ポリシー文書６００は、文６０８及び特に効力タイミング情報６１０に加えて、更なる情報を含むことができる。換言すれば、効力タイミング情報は、ポリシー文書の内部で及び／または外部でエンコードすることができる。先に述べたように、効力タイミング情報６１０は、任意の情報であって、それから、ポリシー文書６００によってエンコードされるポリシーが効力を生じる将来時間が確定される可能性がある、任意の情報であるとすることができる。ポリシー文書６００によってエンコードされるポリシーが効力を生じる継続期間または時点を示す値等の、例示的な効力タイミング情報は、先に論じられている。
【００３８】
先に述べたように、文は、許可についての公式な説明であるとすることができる。図７は、上述したような、ポリシー文書においてエンコードされることができる文７００の例証的な例を相応して示す。図７に示すように、文７００は１つまたは複数のプリンシパル７０２を識別する情報を含むことができる。プリンシパルは、文７００が適用されるエンティティ（例えば、ユーザ、コンピュータシステム、またはシステムに対するアクセスについての許可が認められる場合がある任意のエンティティ）であるとすることができる。或る例として、コンピューティングリソースサービスプロバイダの顧客はアカウントを有することができる。アカウントは、それぞれが顧客のユーザに対応する複数のサブアカウントに関連する場合がある。各ユーザは、文内のプリンシパルとして含むことが可能である場合がある対応する識別子を有することができる。プリンシパルはまた、他の方法で識別することができる。例えば、プリンシパルのセットは、そのセットについての識別子によって識別することができる。或る例証的な例として、組織内の部署は対応する識別子を有することができる。文は、部署についての識別子を文の中で挙げることによって、部署に関連するユーザに適用可能であるとすることができる。プリンシパルのセットについての識別子は、例えば、従業者が、組織及び／またはその組織の中の部署によって雇われる及び／またはそこを辞めるとき等、そのセットが、動的に変化しているときに有用である場合がある。プリンシパルの識別子もまたオープンエンドであることができる。例えば、文７００が、誰にでも、すなわち、コンピューティングリソースサービスプロバイダ又は一般に全てのユーザのアカウントのために要求を提出することが可能な全てのユーザに適用可能であることを示す情報が含まれる場合がある。
【００３９】
図７に示すように、文７００はまた、１つまたは複数のリソース７０４を識別する。リソースは、上述したようなコンピューティングリソースであるとすることができる。リソースは、例えば、コンピューティングリソースサービスプロバイダによって提供されるサービスの題目であるとすることができる。或る例として、リソースは、仮想コンピュータシステムである場合がある、データオブジェクトを共に関連付けるために使用される論理データ格納庫である場合がある、ブロックレベルデータ記憶デバイスのボリューム識別子、データベース、データベースに記憶されるアイテム、データオブジェクト（例えば、ファイル）、及び、サービスとして提供される場合がある一般に任意のタイプのリソースであるとすることができる。プリンシパルの場合と同様に、リソースは、リソースのセットの識別子を使用して記述することができる。例えば、幾つかの実施形態において、仮想コンピュータシステムは、仮想コンピュータシステムによって履行される役割を記述する場合があるユーザ生成タグに関連付けられる。或る例として、仮想コンピュータシステムのグループは、タグ「ウェブサーバ（ｗｅｂ  ｓｅｒｖｅｒ）」に関連付けられる場合がある。リソースは、相応して、こうしたタグによって識別することができる。別の例として、リソースは、論理データ格納庫に対応する場合があり、それにより、文７００を、論理データ格納庫に記憶された、すなわち、論理データ格納庫に関連付けられた任意のデータオブジェクトに適用可能にさせることができる。
【００４０】
図７に示すように、文７００はまた、１つまたは複数の条件を含むことができる。条件は、或る実施形態において、ポリシー文書内の文が、特定の文脈において適用可能であるかどうか、すなわち、要求が提出された文脈において提出された要求に適用可能であるかどうかについて確定的である。条件は、ブール演算子（ｅｑｕａｌ、ｌｅｓｓ  ｔｈａｎ等）を利用して、文内の他の値（プリンシパル、リソース等）、及び、ポリシーがそれについて評価されている要求に設けられる場合があるかまたは設けられない場合があるオーソライゼーション文脈内の他の値に対する条件の評価を可能にすることができる。条件値は、年月日、時間、要求者のインターネットプロトコル（ＩＰ）アドレス、要求源の識別子、ユーザ名、ユーザ識別子、及び／または要求者のユーザエージェント、並びに／または他の値を含む可能性がある。値はまた、条件が適用されるサービスに一意であるとすることができる。条件は、ＡＮＤ及びＯＲ等の論理的コネクタを使用する評価のために論理的に接続することができる。
【００４１】
文はまた、１つまたは複数のアクション７０８をエンコードすることができる。エンコードされるアクションは、条件（複数可）７０６が充足されるかつ／または充足されないときに起こるオペレーションを示すことができる。例証的なアクションは、要求が履行されることを許可すること（例えば、要求されるアクセスを許可すること）または要求を拒否することを含む。他のアクションは、文７００において指定される１つまたは複数の電子メールアドレスに対する電子メールメッセージの送信等の文７００においてエンコードされる情報に従う通知の送信、通知サーバのトピックに対して通知を発行すること、及び／または他のアクションを含む。相応して、エンコードされるアクション７０８は、アクションを実施するのに十分な情報を含むことができる。
【００４２】
本開示の種々の実施形態が、要件であって、ポリシー文書によって定義されるポリシー（すなわち、ポリシー文書によって定義される１つまたは複数のポリシーのセット）が、要件に適合する将来の年月日に効力を生じる、要件を例証的な方法で論じることが留意されるべきである。換言すれば、本明細書で論じる例証的な例は、ポリシー文書が将来時間に効力を生じる要件に関連する。本明細書で論じる全ての実施形態の場合と同様に、変形が、本開示の範囲内にあるものと考えられる。例えば、各文は、文が発効する将来時間を決定するために使用可能である効力タイミング情報を含むことができる。種々の実施形態は、遅延された効力に関するポリシー文書レベルの要件の代替としてまたはそれに加えて、文レベルで定義されるポリシーに関する要件を含むことができる。文が発効するかどうかを判定することは、（遅延が必要とされる）各文が遅延についての要件に適合するかどうかを判定することを含むことができる。ポリシー文書における異なる文は異なる遅延を有する場合があり、ポリシー変更／追加に関する既存のポリシーは、異なる文について異なる遅延要件を有する場合がある。
【００４３】
図８は、或る実施形態による、要求を処理するプロセスの例証的な例を示す。プロセス８００は、図３に関連して上述したサービス３００及び／または図４に関連して述べたポリシー管理サービス４００等の、任意の適したシステムまたはそのコンポーネントによって実施することができる。或る実施形態において、プロセス８００は、要求を受信する８０２ことを含む。要求は、例えば、上述したサービスフロントエンド３０２またはポリシー管理システムフロントエンド４０２等のフロントエンドに対する適切に構成されたＡＰＩ呼出しとして受信することができる。ＡＰＩ呼出しは、例えば、要求に対して適用可能な種々のパラメータによって構成されるウェブサービス呼出しの形態であるとすることができる。要求を受信する８０２と、プロセス８００は、要求が真正であるかどうかを判定する８０４ことを含むことができる。要求が真正であるかどうかを判定する８０４ことは、任意の適した方法で実施することができる。例えば、幾つかの実施形態において、要求は、電子署名によって署名される場合がある。要求が真正であるかどうかを判定する８０４ことは、電子署名を検証することを含むことができる。電子署名の検証は、任意の適したシステムまたはそのコンポーネントによって行うことができる。例えば、上述した実施形態を参照すると、認証ランタイムサービスまたは認証システムが検証を実施することができる。検証が他のエンティティによって実施される場合があることが留意されるべきである。例えば、幾つかの実施形態において、検証は、分散方法で行われるのではなく、上述したようなフロントエンドシステムによって行われる。一般的に、要求の真正性を判定することができるいずれの方法も使用することができる。
【００４４】
要求が真正でないと判定される８０４場合、要求は拒否される８０６場合がある。要求を拒否することは、単に何の対策も取らないことによる拒否を示す情報によって要求に応答すること、並びに／または、要求が拒否される１つまたは複数の理由を示す情報及び／または拒否のための理由に対処することを可能にするのに必要である場合がある更なる情報を提供すること等によって、任意の適した方法で実施することができる。しかし、要求が真正であると判定される８０４場合、プロセス８００は、１つまたは複数の適用可能なポリシーにアクセスする８０８ことを含むことができる。適用可能なポリシーにアクセスする８０８ことは、上述したポリシー管理サービス等によって任意の適したシステムまたはそのコンポーネントによって実施することができる。適用可能なポリシーは、例えば、ポリシー文書を、上述したようなポリシーリポジトリから取出すことによってアクセスされる場合がある。幾つかの実施形態において、ポリシーが効力を生じるときを示すタイミング情報は、適用可能であるポリシーのセット（例えば、タイミング情報を考慮することなく、要求に適用されることになるポリシーのセット）からポリシーのサブセットを選択するために使用される。選択されるサブセットは、現在発効しているサブセット内のポリシーを示すタイミング情報を有するポリシーを含むことができる。
【００４５】
その後、適用可能なポリシーが要求の履行を許可するかどうかという判定を行う８１０ことができる。ポリシーが要求の履行を許可するかどうかという判定８１０は、図４に関連して上述したポリシーエンジン４１０等によって任意の適した方法で実施することができる。ポリシーが要求の履行を許可するかどうかを判定するポリシーエンジンまたは他のシステムは、適用可能なポリシーを解析して、ポリシーが要求の履行を許可するかどうかを判定することができる。論じたように、解析が行われる方法は、種々の実施形態に応じて変わる場合がある。例えば、適用可能なポリシー、または一般に、おそらくは適用可能なポリシーはシーケンスで解析される場合がある。ポリシーが、ポリシーのシーケンスにおいて、要求の履行によって違反される場合、（もしあれば）シーケンスの残りを解析しなければ、要求の履行を許可しないという判定を行うことができる。更に、ポリシーが要求の履行を許可するかどうかを判定する８１０ことは、ポリシー文書においてエンコードされる情報に少なくとも部分的に基づいて、ポリシー文書が、現在効力があるかどうか、または、ポリシー文書の強制が遅延されているかどうかを判定することを含むことができる。ポリシー文書が、現在効力があるかどうかを判定することは、例えば、１つまたは複数の前のオペレーションの実施中のポリシーを排除するためにタイミング情報が使用されない実施形態において実施することができる。
【００４６】
より複雑な処理もまた実施される場合がある。例えば、要求の履行が、文においてエンコードされるポリシーに違反することになることをポリシー文書内の文が示す場合、任意の更なるポリシーが、そのポリシーに取って代わり、要求の履行を許可するかどうかという判定を行うことができる。一般に、ポリシーは、任意の適した方法で解析することができ、方法は、種々のシステムのどのシステムが構成されるか及びポリシーがどのようにエンコードされるかに応じて変わる場合がある。要求が履行されることをポリシーが許可しないと判定される８１０場合、プロセス８００は、上述したような要求を拒否する８０６ことを含むことができる。しかし、要求の履行をポリシーが実際に許可すると判定される８１０場合、要求を履行する８１２ことができる。
【００４７】
先に述べたように、種々の実施形態による要求は、著しく変わる場合がある。したがって、要求の履行は、相応して変わる場合がある。一般に、要求の履行は、１つまたは複数のコンピューティングリソースを構成すること、データに対してアクセスを提供すること、また一般に、要求に従って１つまたは複数のアクションを実施することを含むことができる。先に述べたように、本開示の種々の実施形態は、ポリシーを追加するかまたはポリシーをその他の方法で変更する要求に適用される。図９は、既存のポリシーを変更することに関連してポリシーを強制するために使用される場合があるプロセス９００の例証的な例を相応して示す。図９に示すように、プロセス９００は、ポリシーを追加する要求を受信する９０２ことを含む。ポリシーを追加する要求は、適切に構成されたＡＰＩ呼出しの形態であるとすることができる。図９はポリシーを追加する要求を論じるが、プロセス９００が、既存のポリシーを変更する要求等の他のタイプの要求のために適合することができることが留意されるべきである。或る実施形態において、ポリシーを変更する要求を受信する９０２と、要求が、上述したように真正であるかどうかという判定を行う９０４ことができる。要求が真正でないと判定される９０４場合、ポリシーを変更する要求を拒否する９０６ことができる。要求の拒否は、上述したように実施することができる。しかし、要求が真正であると判定される９０４場合、プロセス９００は、上述したように適用可能なポリシーにアクセスする９０８ことを含むことができる。
【００４８】
図９に示すように、プロセス９００は、時間遅延要件を検出する９１０ことを含む。時間遅延要件を検出する９１０ことは、種々の実施形態に従って種々の方法で実施することができる。例えば、簡単にするため図９から省略されるが、図に示されないが、プロセス９００は、アクセスされる適用可能なポリシーを処理すること、及び、任意の適用可能なポリシーが、ポリシーを追加する要求の履行を排除することになるかどうかを判定することを含むことができる。こうした処理中に、時間遅延要件を有するポリシーを検出することができる。時間遅延要件が、他のポリシーと共に記憶されるポリシーにおいて必ずしもエンコードされるのではなく、こうした要件がポリシー文書においてコード化されることなく遅延を強制するようにシステムをコード化するかまたはその他の方法で構成することができることが留意されるべきである。時間遅延要件が、アカウント用のポリシーのセットにおいてエンコードされない実施形態において、適用可能なポリシーがアクセスされる９０８前に、時間遅延要件を検出することを、実施することができることが留意されるべきである。一般に、図が、ここで、特定の順序で起こる種々のオペレーションを示すが、多くの事例において、オペレーションの順序は、示す順序と異なる場合があることが留意されるべきである。更に、オペレーションは、厳格な順序付けに従わない方法で実施することができるが、例えば、オペレーションは、並列に、または、少なくとも部分的に並列に実施することができる。
【００４９】
図９に示す特定の実施形態に戻ると、時間遅延要件を検出する９１０と、要求されるポリシーエディションが時間遅延要件に適合しているかどうかという判定を行う９１２ことができる。判定９１２は、任意の適した方法で行うことができ、判定９１２が行われる方法は、ポリシーに関する情報がエンコードされる方法に従って変わる場合がある。例えば、要求されるポリシー追加の効力についての将来の時間が、ポリシー文書内の文から確定可能である実施形態において、当該文が評価されて、時間遅延要件に適合しているかどうかを判定することができる。或る例証的な例として、時間遅延要件は、ポリシーの効力年月日が将来に向かって４８時間である場合にだけ、ポリシーを追加することができるようなものであることができる。文においてエンコードされる情報が解析されて、ポリシーを追加する要求が要件に適合しているかどうかを判定することができる。同様に、効力時間及び情報が、ポリシー文書の文の外部でエンコードされる実施形態において、効力時間及び情報を、相応して解析することができる。例えば、追加されることを要求されるポリシーが効力を生じる時間を示すタイムスタンプを、効力時間及び情報が含む実施形態において、タイムスタンプがチェックされて、ポリシーを追加する要求が受信された時間等の或る基準時点を基準にして、タイムスタンプが将来に向かって４８時間より長い時間であるかどうかを判定することができる。一般に、要求されるポリシーが時間遅延要件に適合しているという判定９１２は、種々の実施形態に従って種々の方法で実施することができ、本開示は、ここで明示的に述べる実施形態に限定されない。
【００５０】
要求されるポリシー追加が時間遅延要件に適合していないと判定される場合、プロセス９００は、上述したようにポリシーを追加する要求を拒否する９０６ことを含むことができる。しかし、要求されるポリシー追加が、時間遅延要件に適合していると実際に判定される９１２場合、プロセス９００は、上述したように要求を履行する９１４ことを含むことができる。種々の実施形態において、ポリシーに対する一定の変更が必要とされると、１つまたは複数の通知を送信することができる。顧客またはコンピューティングリソースプロバイダのためのポリシー管理者は、例えば、ポリシーを変更する試みを示す電子メールまたは他の電子メッセージを受信することができる。したがって、実施形態におけるプロセス９００は、通知プロセスを起動する９１６ことを含む。通知プロセスの起動は、上述したような通知システムに、１つまたは複数のエンティティに対して１つまたは複数の通知を発行させること等によって任意の適した方法で実施することができる。
【００５１】
通知プロセスは、種々のアラーム／通知アクションの実施をもたらすように構成されるワークフローの実行を含むことができる。アラーム／通知アクションは、例えば、（上述したような）通知システムに、１人または複数人の個人または１つまたは複数のシステム、例えば、ポリシーセットに関連するアカウントに関連する組織のコンプライアンス責任者またはポリシー管理者に対して１つまたは複数のメッセージを送信させることを含むことができる。別の例として、アラーム／通知アクションは、監査システムに、強化された監査を実施させることを含むことができ、例えば、より多くの情報が、システムに対する種々のアクセスに関連して収集される。幾つかの実施形態において、アラーム／通知アクションはまた、アラームの可聴及び／または視覚指示を含む場合があるアラーム信号送信を含むことができる。他のアラームアクションは、本開示の範囲内にあるものとして考えられる。通知はまた、選択されると、要求を取消す要求が、要求を取消すことが可能なシステム（例えば、ポリシー管理システム）に送信されるように要求にさせる、ハイパーリンク（または他のメカニズム）を含むメッセージの送信を含むことができる。メッセージは、メッセージの受信者による認証なしで取消しを許可することができる。通知を通して要求が取消されることを可能にする他の方法もまた使用することができる。
【００５２】
本開示の種々の実施形態において先に述べたように、ポリシーの影響についての遅延は、こうしたポリシーの効力を取消す機会を提供するために強制される。図１０は、取消されない場合、普通なら発効することになるポリシーを取消す機会を提供するために使用することができるプロセス１０００の例証的な例を相応して示す。プロセス１０００は、図２の種々のサービスを備えるシステム及び／または図４に関連して先に論じたポリシー管理サービス４００等の任意の適したシステムによって実施することができる。或る実施形態において、プロセス１０００は、将来時間において効力があるポリシーを追加する要求を受信する１００２ことを含む。将来時間において効力のあるポリシーを追加する要求は、適切に構成されたＡＰＩ呼出し等、任意の適した方法で受信することができる。効力時間は、追加されることを必要とされるポリシーにおいてエンコードすることができる、またはその他の方法でエンコードすることができる。例えば、幾つかの実施形態において、将来時間、または一般に、上述したような効力タイミング情報は、ポリシー文書自体の中にある代わりに、ＡＰＩ呼出し内のパラメータとして含まれる。先に論じたように、要求が真正であるかどうかという判定を行う１００４ことができ、要求が真正でないと判定される１００４場合、プロセス１０００は、ポリシーを追加する要求を拒否する１００６ことを含むことができる。
【００５３】
しかし、要求が真正であると判定される１００４場合、プロセス１０００は、既存のポリシーまたは一般にポリシー追加が許可されるかどうかを確認する１００８ことを含むことができる。ポリシー追加が許可されるかどうかを確認する１００８ことは、上述したプロセス８００及び９００の適用可能なオペレーションを実施すること等によって任意の適した方法で実施することができる。図１０に示さないが、プロセス１０００が、ポリシーを追加する要求を拒否する１００６ことを含むことができることが留意されるべきである。ポリシー追加が許可されることが確認されない場合、ポリシー追加が許可されることを確認する１００８と、ポリシーは、ポリシーリポジトリに追加され１０１０、また、適用可能である場合、任意の通知を、上述したように発行することができる。
【００５４】
ポリシーがポリシーリポジトリに追加された後の或る時点で、上述したように（例えば、通知によって）、または、管理コンソールにログインすることによって、また、要求を提出するための対応するＧＵＩを使用して等の別の方法で、ポリシー追加を取消す要求を受信する１０１２ことができる。ポリシー追加を取消す要求を受信する１０１２と、プロセス１０００は、追加されるポリシーが上述したように効力があるかどうかを判定する１０１４ことを含むことができる。例えば、ポリシーリポジトリに追加されたポリシーをエンコードするポリシー文書の文の中においてまたは文の外部においてエンコードされる効力タイミング情報が解析されて、ポリシーが効力を生じるのに十分な時間が経過したかどうかを判定することができる。追加されるポリシー効力がないと判定される１０１４場合、プロセス１０００は、緩められた取消し条件のセットによって取り消しが許可されるかどうかを判定する１０１６ことを含むことができる。緩められた条件は、既に発効しているポリシーを取消すための条件と比べて厳しくない場合がある。例えば、要求されるポリシー追加／変更の通知が、ポリシー追加を取消すためのメカニズム（例えば、ハイパーリンク）を提供する実施形態において、ポリシー追加は、既に発効しているポリシーについて必要とされる場合がある更なる認証なしで取消すことができる。同様に、発効しているポリシーを取消すことができるプリンシパルのセットに比べて、プリンシパルのより大きなセットが、まだ発効していないポリシーについてポリシー追加を取消すことを許可される場合がある。更に別の例として、ポリシー変更は、ポリシー変更の取消しに合意するプリンシパルに関して定足数ルール（ｑｕｏｒｕｍ  ｒｕｌｅ）の強制を必要とする場合がある。定足数ルールは、既に発効しているポリシーについての定足数ルールに比べて、まだ発効していない追加されるポリシーについて厳しくない場合がある。他の例もまた、本開示の範囲内にあるものとして考えられる。
【００５５】
緩められた取消し条件によって取消しが許可されないと判定される１０１６場合、プロセス１０００は、取消す要求を拒否する１０１８こと、それにより、ポリシーがまだ効力がなく、別の取消し要求が受信されない場合にポリシーが効力を生じることを許可すること、または、ポリシーが、効力があり続けることを許可することを含むことができる。しかし、取消しが、緩められた取消し条件のセットによって許可されると判定される１０１６場合、プロセス１０００は、取消す要求を履行する１０２０ことを含むことができる。取消す要求を履行する１０２０ことは、ポリシーリポジトリからポリシーを削除するかまたはその他の方法で取除くこと、または、（例えば、ポリシーについてメタデータを更新することによって）発効していないとしてポリシーを電子的にマーク付けすること等によって、単純な方法で実施することができる。
【００５６】
追加されるポリシーが、効力があると判定される１０１４場合、取消しが、上述したようにより厳しい取消し条件のセットによって許可されるかどうかという判定を行１０２２ことができる。取消しが、より厳しい取消し条件によって許可されないと判定される１０２２場合、プロセス１０００は、上述したように取消す要求を拒否する１０１８ことを含むことができる。しかし、取消しが、より厳しい取消し条件によって許可されると判定される１０２２場合、プロセス１０００は、ポリシー追加を取消す要求を履行する１０２０ことを含むことができる。
【００５７】
本開示の実施形態は、以下の項の観点で述べることができる。
【００５８】
第１項。ポリシーを管理するためのコンピュータ実装式方法であって、実行可能命令によって構成される１つまたは複数のコンピュータシステムの制御下で、
ポリシー追加ポリシーを含む１つまたは複数のポリシーのセットを記憶することであって、前記ポリシー追加ポリシーは、提案されるポリシーについて強制の遅延についての要件を含む１つまたは複数の条件を指定する、記憶すること、
提案されるポリシーを追加する要求を受信することであって、当該ポリシー追加ポリシーは当該提案されるポリシーに適用可能である、受信すること、
当該要求に関連して提供される情報に少なくとも部分的に基づいて当該提案されるポリシーが当該要件に適合するかどうかを判定することを含み、
当該提案されるポリシーが当該要件に適合すると判定する結果として、当該提案されるポリシーは当該要件に従って効力を生じ、当該提案されるポリシーが当該要件に適合するのに失敗すると判定する結果として、当該要求は拒否される、コンピュータ実装式方法。
【００５９】
第２項。当該ポリシーに効力を生じさせることは、当該提案されるポリシーを追加する当該要求の１つまたは複数の通知を送信させることを含む、第１項に記載のコンピュータ実装式方法。
【００６０】
第３項。当該提案されるポリシーに効力を生じさせることは、１つまたは複数のポリシーの当該セットからポリシーを取除くための１つまたは複数の要件の別のセットより厳しくない１つまたは複数の要件のセットの下で当該提案されるポリシーが効力を生じることを防止する能力を提供することを含む、第１項または第２項に記載のコンピュータ実装式方法。
【００６１】
第４項。当該要求と共に提供される情報は、当該提案されるポリシーを定義するポリシー文書のエンコーディングを含み、当該ポリシー文書は、当該要件に対する適合性が確定的である値をエンコードする、第１項から第３項のいずれか１項に記載のコンピュータ実装式方法。
【００６２】
第５項。当該要求は、アプリケーションプログラミングインターフェースパラメータのセットを有するアプリケーションプログラミングインターフェース呼出しであり、
当該要求と共に提供される情報は、アプリケーションプログラミングインターフェースパラメータの当該セットからのパラメータである、第１項から第４項のいずれか１項に記載のコンピュータ実装式方法。
【００６３】
第６項。１つまたは複数のポリシーの当該セットは、コンピューティングリソースサービスプロバイダの顧客のために管理されるコンピューティングリソースのセットに適用され、
当該１つまたは複数のポリシーを記憶することは、当該コンピューティングリソースサービスプロバイダの他の顧客の１つまたは複数のポリシーの他のセットと共に、１つまたは複数のポリシーの当該セットを記憶することを含む、第１項から第５項のいずれか１項に記載のコンピュータ実装式方法。
【００６４】
第７項。当該提案されるポリシーは、当該提案されるポリシーが効力を生じる時間を示す値を含み、
方法は、
当該提案されるポリシーを１つまたは複数のポリシーの当該セットに追加すること、
当該提案されるポリシーが適用される第２の要求を受信すること、
当該示された時間に少なくとも部分的に基づいて、当該要求を履行するかどうか判定するときに当該提案されるポリシーを使用するかどうかを判定すること、
当該判定することに整合して、当該第２の要求を履行するかどうかを評価することを更に含む、第１項から第６項のいずれか１項に記載のコンピュータ実装式方法。
【００６５】
第８項。ポリシーを管理するためのコンピュータ実装式方法であって、実行可能命令によって構成される１つまたは複数のコンピュータシステムの制御下で、
１つまたは複数のポリシーのセットに対する変更のための要求を受信すること、
当該要求に少なくとも部分的に基づいて、当該要求された変更が、将来効力を生じるための１つまたは複数の要件を満たすかどうかを判定すること、及び、
当該要求された変更が当該１つまたは複数の要件を満たすと判定する結果として、当該変更が、当該要件に従って効力を生じることを可能にすることを含む、コンピュータ実装式方法。
【００６６】
第９項。当該変更は、１つまたは複数のポリシーの当該セットに対する１つのポリシーの追加である、第８項に記載のコンピュータ実装式方法。
【００６７】
第１０項。当該要件は、１つまたは複数のポリシーの当該セットからの１つのポリシーの結果である、第８項または第９項に記載のコンピュータ実装式方法。
【００６８】
第１１項。当該要求の１つまたは複数の通知を送信させることを更に含む、第８項から第１０項のいずれか１項に記載のコンピュータ実装式方法。
【００６９】
第１２項。当該変更が効力を生じる前に当該変更を取消す要求を受信すること、及び、
当該変更を取消す当該要求を受信する結果として、当該変更が効力を生じることを不可能にすることを更に含む、第８項から第１１項のいずれか１項に記載のコンピュータ実装式方法。
【００７０】
第１３項。当該要求された変更が当該１つまたは複数の要件を満たすかどうかを判定することは、提案されたポリシーのエンコーディングが、当該１つまたは複数の要件と整合性がある強制遅延を示すパラメータを含むかどうかを判定することを含む、第８項から第１２項のいずれか１項に記載のコンピュータ実装式方法。
【００７１】
第１４項。システムであって、
ポリシーを変更する要求を受信するように構成されるフロントエンドサブシステムと、
ポリシー管理サブシステムであって、ポリシーに対する変更についての要求を当該フロントエンドサブシステムが受信すると、
当該要求に少なくとも部分的に基づいて当該フロントエンドサブシステムから情報を受信し、
当該受信された情報に少なくとも部分的に基づいて、当該要求された変更が、当該変更の遅延された効力についての１つまたは複数の要件に適合しているかどうかを判定し、
当該要求された変更が当該１つまたは複数の要件に適合していると判定する結果として、当該要求された変更が効力を生じることを可能にする、当該ポリシー管理サブシステムと、を含む、システム。
【００７２】
第１５項。当該要求はウェブサービス要求である、第１４項に記載のシステム。
【００７３】
第１６項。当該情報は提案されたポリシーのエンコーディングである、第１４項または第１５項に記載のシステム。
【００７４】
第１７項。当該要求を受信する結果として、１つまたは複数の通知を送信するように構成される通知システムを更に備える、第１４項から第１６項のいずれか１項に記載のシステム。
【００７５】
第１８項。当該ポリシー管理サブシステムは、第２の要求を受信すると、
ポリシーのセットから、現在効力があることを示す効力時間をエンコードするポリシーのサブセットを選択し、
当該選択されたポリシーのセットに少なくとも部分的に基づいて当該第２の要求を履行するかどうかという判定を提供する
ように更に構成される、第１４項から第１７項のいずれか１項に記載のシステム。
【００７６】
第１９項。当該要件は、当該システムによって強制された既存のポリシーの結果である、第１４項から第１８項のいずれか１項に記載のシステム。
【００７７】
第２０項。当該ポリシー管理サブシステムは、効力を生じる当該要求された変更の取消しを可能にするように更に構成される、第１４項から第１９項のいずれか１項に記載のシステム。
【００７８】
第２１項。１つまたは複数のコンピュータ可読記憶媒体であって、命令が１つまたは複数のコンピュータ可読記憶媒体上に集合的に記憶されており、当該命令は、システムの１つまたは複数のプロセッサによって実行されると、当該システムに、
エンティティのためのコンピューティングリソースアクセスに対してアクセス用のポリシーのセットを管理させ、
ポリシーの当該セットに対する変更についての要求を受信させ、
ポリシー変更のための遅延された効力についての１つまたは複数の要件に従って、効力を生じる前に、或る時間の間、当該変更が取消し可能であるように当該要求を処理させる、１つまたは複数のコンピュータ可読記憶媒体。
【００７９】
第２２項。当該命令は、当該システムに、当該変更の１つまたは複数の通知の送信を更にもたらさしめる、第２１項に記載の１つまたは複数のコンピュータ可読記憶媒体。
【００８０】
第２３項。当該１つまたは複数の通知の送信は、当該変更を取消す権限を有するものとして指定されるアイデンティティに対する通知の送信を含む、第２２項に記載の１つまたは複数のコンピュータ可読記憶媒体。
【００８１】
第２４項。当該変更が効力を生じる前に、当該変更は、当該変更が効力を生じた後に効力がある他の要件に比べて厳しくない１つまたは複数の要件に従って取消し可能である、第２１項から第２３項のいずれか１項に記載の１つまたは複数のコンピュータ可読記憶媒体。
【００８２】
第２５項。当該変更のための当該要求は、新しいポリシーのエンコーディングを含み、当該エンコーディングは、当該新しいポリシーが効力を生じるための提案される遅延を示す情報を含む、第２１項から第２４項のいずれか１項に記載の１つまたは複数のコンピュータ可読記憶媒体。
【００８３】
第２６項。当該要求を処理することは、ポリシー変更のための遅延された効力についての当該１つまたは複数の要件による遅延を示す情報を当該要求が欠いている結果として、当該要求を拒否することを含む、第２１項から第２５項のいずれか１項に記載の１つまたは複数のコンピュータ可読記憶媒体。
【００８４】
本明細書で論じる全てのプロセスの場合と同様に、変形は、本開示の範囲内にあるものとして考えられる。例えば、図１０に示すように、ポリシーが任意の時間遅延要件に適合していると判定されると、ポリシーは、まだ効力がないときでもポリシーリポジトリに追加される場合がある。本開示の変形は、強制された遅延が発生してしまうまで、ポリシーリポジトリへのポリシーの追加を遅延させることによって、システムが時間遅延要件を強制する実施形態を含む。こうして、種々の要求を履行するかどうかを判定するためにポリシーを処理することは、適用可能なポリシーがもう効力を生じたかどうかを判定することなく、実施することができる。他の変形もまた、本開示の範囲内にあるものとして考えられる。
【００８５】
図１１は、種々の実施形態による態様を実装するための例示的な環境１１００の態様を示す。認識されるように、ウェブベース環境が説明のために使用されるが、種々の実施形態を実装するため、異なる環境を適宜使用することができる。環境は、電子クライアントデバイス１１０２を含み、電子クライアントデバイス１１０２は、適切なネットワーク１１０４を通じて、要求、メッセージ、または情報を送受信し、デバイスのユーザに戻るように情報を伝達するように動作可能な任意の適切なデバイスを含むことができる。こうしたクライアントデバイスの例は、パーソナルコンピュータ、携帯電話、手持ち式メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、携帯情報端末、埋め込み式コンピュータシステム、電子ブックリーダ、及び同様なものを含む。ネットワークは、インラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のこうしたネットワーク、或いはその組合せを含む任意の適したネットワークを含むことができる。こうしたシステムのために使用されるコンポーネントは、ネットワークのタイプ及び／または選択される環境に少なくとも部分的に依存する可能性がある。こうしたネットワークを介して通信するためのプロトコル及びコンポーネントは、よく知られており、本明細書で詳細に論じられない。ネットワークを通じた通信は、有線または無線接続及びその組合せによって可能にされる。この例において、ネットワークは、要求を受信し要求に応答してコンテンツをサーブするためのウェブサーバ１１０６を環境が含むため、インターネットを含むが、他のネットワークの場合、当業者に明らかになるように、同様な目的の役割を果たす代替のデバイスが使用される可能性がある。
【００８６】
例証的な環境は、少なくとも１つのアプリケーションサーバ１１０８及びデータストア１１１０を含む。チェーン接続されるかまたはその他の方法で構成されることができ、適切なデータストアからデータを取得すること等のタスクを実施するために対話することができる、幾つかのアプリケーションサーバ、層または他の要素、プロセスまたはコンポーネントが存在する可能性があることが理解されるべきである。サーバは、本明細書で使用されるとき、ハードウェアデバイスまたは仮想コンピュータシステム等、種々の方法で実装することができる。幾つかの文脈において、サーバは、コンピュータシステム上で実行されるプログラミングモジュールを指すことができる。明細書で使用されるとき、用語「データストア（ｄａｔａ  ｓｔｏｒｅ）」は、任意の標準型、分散型、またはクラスター型環境において、任意の組合せ及び任意の数のデータサーバ、データベース、データ記憶デバイス、及びデータ記憶媒体を含むことができる、データを記憶し、データにアクセスし、データを取出すことが可能な任意のデバイスまたはデバイスの組合せを指す。アプリケーションサーバは、アプリケーション用のデータアクセス及びビジネスロジックの幾つか（更に大多数）を扱う、クライアントデバイス用の１つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合するための任意の適したハードウェア及びソフトウェアを含むことができる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供することができ、また、この例では、ハイパテキストマークアップ言語（「ＨＴＭＬ：ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ」）、拡張可能マークアップ言語（「ＸＭＬ：Ｅｘｔｅｎｓｉｂｌｅ Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ」）、または別の適切な構造化言語の形態でウェブサーバによってユーザにサーブされることができる、ユーザに転送される、テキスト、グラフィクス、オーディオ、及び／またはビデオ等のコンテンツを生成することができる。全ての要求及び応答の扱い並びにクライアントデバイス１１０２とアプリケーシィンサーバ１１０８との間のコンテンツの送出はウェブサーバによって扱うことができる。本明細書で論じる構造化コードが、任意の適したデバイスまたは本明細書の他の所で論じるホストマシン上で実行されることができる、ウェブサーバ及びアプリケーションサーバは必要とされず、例示的なコンポーネントに過ぎないことが理解されるべきである。更に、単一デバイスによって実施されるものとして本明細書で述べるオペレーションは、別途文脈から明らかにならない限り、分散システムを形成する場合がある複数のデバイスによって集合的に実施することができる。
【００８７】
データストア１１１０は、幾つかの別個のデータテーブル、データベース、または他のデータ記憶メカニズム及び本開示の特定の態様に関連するデータを記憶するための媒体を含むことができる。例えば、示すデータストアは、生産サイドのためのコンテンツをサーブするために使用される可能性がある生産データ１１１２及びユーザ情報１１１６を記憶するためのメカニズムを含むことができる。データストアはまた、報告、解析、または他のこうした目的のために使用される可能性があるログデータ１１１４を記憶するためのメカニズムを含むように示される。多くの他の態様であって、画像情報をページングするため、また、権利情報にアクセスするため等でデータストアに記憶される必要がある場合があり、適宜先に挙げたメカニズムのうちの任意のメカニズム内にまたはデータストア１１１０内の更なるメカニズム内に記憶される可能性がある、多くの他の態様が存在する可能性があることが理解されるべきである。データストア１１１０は、データストア１１１０に関連するロジックを通して、アプリケーションサーバ１１０８から命令を受信し、命令に応答して、データを取得する、更新する、またはその他の方法で処理するように動作可能である。一例において、ユーザは、ユーザによって操作されるデバイスを通して、或るタイプのアイテムについて検索要求を提出することができる。この場合、データストアは、ユーザ情報にアクセスして、ユーザのアイデンティティを検証することができ、また、カタログ詳細情報にアクセスして、そのタイプのアイテムに関する情報を取得することができる。情報は、その後、ユーザデバイス１１０２上のブラウザによってユーザが閲覧できるウェブページ上の結果リスティング等において、ユーザに返送される可能性がある。特定の関心アイテムについての情報は、ブラウザの専用ページまたはウィンドウにおいて閲覧することができる。しかし、本開示の実施形態が、必ずしもウェブページの文脈に限定されるというわけではなく、より一般的に、一般的な要求（ｒｅｑｕｅｓｔ  ｉｎ  ｇｅｎｅｒａｌ）であって、必ずしもコンテンツのための要求でない、一般的な要求を処理することに適用可能である場合があることが留意されるべきである。
【００８８】
各サーバは、通常、そのサーバの全体的な管理及び運用のために実行可能プログラム命令を提供するオペレーティングシステムを含むことになり、また、通常、命令であって、サーバのプロセッサによって実行されると、サーバがその意図される機能を実施することを許可する、命令を記憶するコンピュータ可読記憶媒体（例えば、ハードディスク、ランダムアクセスメモリ、読出し専用メモリ等）を含むことになる。オペレーティングシステムのための適した実装及びサーバの一般的な機能は、知られているかまたは商業的に入手可能であり、特に本明細書の開示を考慮して当業者によって容易に実装される。
【００８９】
一実施形態における環境は、１つまたは複数のコンピュータネットワークを使用する通信リンクまたは直接接続によって相互接続される幾つかのコンピュータシステム及びコンポーネントを利用する分散型コンピューティング環境である。しかし、こうしたシステムが、図１１に示されるより少ないかまたは多い数のコンポーネントを有するシステムにおいて等しくうまく動作することができることが当業者によって認識されるであろう。そのため、図１１におけるシステム１１００の叙述は、本質的に例証的であり、本開示の範囲に対して制限的でないと考えられるべきである。
【００９０】
種々の実施形態は、いろいろな動作環境において実装される可能性があり、いろいろな動作環境は、幾つかの場合に、幾つかのアプリケーションのうちの任意のアプリケーションを動作させるために使用される可能性がある１つまたは複数のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含む可能性がある。ユーザデバイスまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップ、ラップトップコンピュータ、またはタブレットコンピュータ等の幾つかの汎用パーソナルコンピュータ、並びに、モバイルソフトウェアを実行し、幾つかのネットワーキング及びメッセージングプロトコルを支持することが可能なセルラーデバイス、無線デバイス、及び手持ち式デバイスのうちの任意のものを含む可能性がある。こうしたシステムはまた、種々の市販のオペレーティングシステム、及び、開発及びデータベース管理等の目的のための他の知られているアプリケーションのうちの任意のものを実行する幾つかのワークステーションを含む可能性がある。これらのデバイスはまた、ダミー端末、シンクライアント、ゲーミングシステム、及びネットワークを介して通信することが可能な他のデバイス等の他の電子デバイスを含む可能性がある。
【００９１】
本開示の種々の実施形態は、種々の市販のプロトコル、例えば、伝送制御プロトコル／インターネットプロトコル（「ＴＣＰ／ＩＰ：Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ」）、開放型システム間相互接続（「ＯＳＩ：Ｏｐｅｎ  Ｓｙｓｔｅｍ  ｉｎｔｅｒｃｏｎｎｅｃｉｏｎ」）モデルの種々の層で動作するプロトコル、ファイル転送プロトコル（「ＦＴＰ」）、ユニバーサルプラグアンドプレイ（「ＵｐｎＰ：Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ」）、ネットワークファイルシステム（「ＮＦＳ：Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ」）、共通インターネットファイルシステム（「ＣＩＦＳ：Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ」）、及びＡｐｐｌｅＴａｌｋのうちの任意のものを使用して通信を支持するための、当業者によく知られている少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及びその任意の組合せである可能性がある。
【００９２】
ウェブサーバを利用する実施形態において、ウェブサーバは、ハイパーテキスト転送プロトコル（「ＨＴＴＰ：Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ」）サーバ、ＦＴＰサーバ、共通ゲートウェイインタフェース（「ＣＧＩ：Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ」）サーバ、データサーバ、Ｊａｖａサーバ、及びビジネスアプリケーションサーバを含む、種々のサーバまたは中間層アプリケーションのうちの任意のものを実行することができる。サーバ（複数可）はまた、Ｊａｖａ（登録商標）、Ｃ、Ｃ♯、またはＣ＋＋等の任意のプログラミング言語、或いは、Ｐｅｒｌ、ＰｙｔｈｏｎまたはＴＣＬ等の任意のスクリプティング言語、並びに、その組合せで書かれた１つまたは複数のスクリプトまたはプログラムとして実装される場合がある１つまたは複数のウェブアプリケーションを実行すること等によって、ユーザデバイスからの要求に応答してプログラムまたはスクリプトを実行することが可能である。サーバ（複数可）はまた、限定することなしで、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、及びＩＢＭ（登録商標）から商業的に入手可能なものを含むデータベースサーバを含むことができる。
【００９３】
環境は、先に論じたように、種々のデータストア及び他のメモリ及び記憶媒体を含む可能性がある。これらは、コンピュータの１つまたは複数にローカルな（及び／またはそこに存在する）またはネットワークにわたるコンピュータの任意のものまたは全てからリモートの記憶媒体上等、種々の場所に存在する可能性がある。特定の実施形態のセットにおいて、情報は、当業者によく知られているストレージエリアネットワーク（「ＳＡＮ：ｓｔｏｒａｇｅ−ａｒｅａ  ｎｅｔｗｏｒｋ」）内に存在することができる。同様に、コンピュータ、サーバ、または他のネットワークデバイスに帰せられる機能を実施するための任意の必要なファイルは、適宜、ローカルに及び／またはリモートに記憶することができる。システムがコンピュータ化デバイスを含む場合、こうした各デバイスは、バスを介して電気的に結合される場合があるハードウェア要素を含む可能性があり、その要素は、例えば、少なくとも１つの中央処理ユニット（「ＣＰＵ」または「プロセッサ」）、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド）、及び少なくとも１つの出力デバイス（例えば、ディスプレイデバイス、プリンタ、またはスピーカ）を含む。こうしたシステムはまた、ディスクドライブ、光記憶デバイス等の１つまたは複数の記憶デバイス、及び、ランダムアクセスメモリ（「ＲＡＭ」）または読出し専用メモリ（「ＲＯＭ」）等の固体記憶デバイス、並びに、取外し可能メディアデバイス、メモリカード、フラッシュカード等を含むことができる。
【００９４】
こうしたデバイスはまた、上述したように、コンピュータ可読記憶媒体リーダ、通信デバイス（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信デバイス等）、及び作業メモリを含む可能性がある。コンピュータ可読記憶媒体リーダは、リモートの、ローカルの、固定の、及び／または取外し可能な記憶デバイスを示すコンピュータ可読記憶媒体、並びに、コンピュータ可読情報を、一時的に及び／またはより永久的に含み、記憶し、送信し、取出すための記憶媒体に接続されるかまたはそれを受取るように構成される可能性がある。システム及び種々のデバイスはまた、通常、オペレーティングシステム及びクライアントアプリケーションまたはウェブブラウザ等のアプリケーションプログラムを含む、少なくとも１つの作業メモリデバイス内に位置付けられる幾つかのソフトウェアアプリケーション、モジュール、サービス、または他の要素を含むことになる。代替の実施形態が、上述したものから多数の変形を有することができることが認識されるべきである。例えば、カスタマイズされたハードウェアを、同様に使用することができる、かつ／または、特定の要素を、ハードウェア、ソフトウェア（アプレット等のポータブルソフトウェア）、または両方で実装することができる。更に、ネットワーク入力／出力デバイス等の他のコンピューティングデバイスに対する接続を使用することができる。
【００９５】
コードまたはコードの複数の部分を含むための記憶媒体及びコンピュータ可読媒体は、限定はしないが、ＲＡＭ、ＲＯＭ、電気的消去可能プログラム可能読出し専用メモリ（「ＥＥＰＲＯＭ」）、フラッシュメモリまたは他のメモリ技術、コンパクトディスク読出し専用メモリ（「ＣＤ−ＲＯＭ」）、デジタル多用途ディスク（ＤＶＤ）、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶デバイスを含む、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報の記憶及び／または伝送のための任意の方法または技術で実装される、揮発性の及び不揮発性の取外し可能な及び取外し不能な媒体、或いは、所望の情報を記憶するために使用される可能性があり、システムデバイスによってアクセスされる可能性がある任意の他の媒体等の、記憶媒体及び通信媒体を含む、当技術分野で知られているかまたは使用される任意の適切な媒体を含む可能性がある。本明細書で提供される開示及び教示に基づいて、当業者は、種々の実施形態を実装する他の仕方及び／または方法を認識するであろう。
【００９６】
したがって、本明細書及び図面は、制限的な意味ではなく、例証的な意味で考えられる。しかし、特許請求の範囲で述べる本発明のより広い精神及び範囲から逸脱することなく、種々の修正及び変更を、実施形態に対して行うことができることが明白である。
【００９７】
他の変形は本開示の精神内にある。そのため、開示される技法は、種々の修正及び代替の構造を受け易いが、その例証される或る実施形態が、図面で示され、上記で詳細に述べられてきた。しかし、本発明を、開示される１つまたは複数の特定の形態に制限する意図は存在せず、逆に、意図は、添付特許請求の範囲において規定される本発明の精神及び範囲内に入る全ての修正、代替の構造、及び等価物をカ網羅することであることが理解されるべきである。
【００９８】
開示される実施形態を述べる文脈における（特に、添付特許請求の範囲の文脈における）用語「ある（ａ）」及び「ある（ａｎ）」及び「その（ｔｈｅ）」及び同様の参照は、本明細書で別途指示されない限りまたは文脈によって明確に否定されない限り、単数形と複数形の両方を網羅するように解釈される。用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、及び「含む（ｃｏｎｔａｉｎｉｎｇ）」は、別途述べられない限り、制限的でない用語として解釈される（すなわち、「含むが、それに限定されない（ｉｎｃｌｕｄｉｎｇ，ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）を意味する」）。用語「接続される（ｃｏｎｎｅｃｔｅｄ）」は、未修正のときでかつ物理的接続が参照されると、何か介入するものが存在する場合でも、部分的にまたは完全に、中に含まれる、それに取付けられる、または共に結合されるものとして解釈される。本明細書の値の範囲の列挙は、本明細書で別途指示しない限り、その範囲内に入るそれぞれの別個の値を個々に参照する省略表現法として役立つことを意図されるだけであり、それぞれの別個の値は、本明細書で個々に列挙されるかのように本明細書に組込まれる。用語「セット（ｓｅｔ）」（例えば「アイテムのセット（ａ  ｓｅｔ  ｏｆ  ｉｔｅｍｓ）」）または「サブセット（ｓｕｂｓｅｔ）」の使用は、別途述べられない限りまたは文脈によって否定されない限り、１つまたは複数のメンバーを含む空でない集合体として解釈される。更に、別途述べられない限りまたは文脈によって否定されない限り、対応するセットの用語「サブセット（ｓｕｂｓｅｔ）」は、対応するセットの適切なサブセットを必ずしも示すのではないが、サブセット及び対応するセットは同じであり得る。
【００９９】
「Ａ、Ｂ、及びＣの少なくとも１つ」または「Ａ、Ｂ、及びＣの少なくとも１つ」という形態のフレーズ等の接続的言語は、別途特に述べられない限りまたは文脈によって別途明確に否定されない限り、アイテム、用語等が、Ａか，Ｂか、またはＣ、或いは、ＡとＢとＣのセットの空でない任意のサブセットであるとすることができることを提示するために一般に使用される文脈によって普通なら理解される。例えば、上記の接続的フレーズにおいて使用される３つのメンバーを有するセットの例証的な例において、「Ａ、Ｂ、及びＣの少なくとも１つ」または「Ａ、Ｂ、及びＣの少なくとも１つ」は、以下のセット、すなわち、{Ａ}、{Ｂ}、{Ｃ}、{Ａ，Ｂ}、{Ａ，Ｃ}、{Ｂ，Ｃ}、{Ａ，Ｂ，Ｃ}のうちの任意のものを指す。そのため、こうした接続的言語は、或る実施形態が、少なくとも１つのＡ、少なくとも１つのＢ、及び少なくとも１つのＣそれぞれが存在することを要求することを示唆することを一般に意図しない。
【０１００】
本明細書で述べるオペレーションは、本明細書で別途指示されない限りまたは文脈によって明確に否定されない限り、任意の適した順序で実施される可能性がある。本明細書で述べるプロセス（または、その変形及び／またはその組合せ）は、実行可能命令によって構成される１つまたは複数のコンピュータシステムの制御下で実施することができ、また、ハードウェアまたはハードウェアの組合せによって１つまたは複数のプロセッサ上で集合的に実行されるコード（例えば、実行可能命令、１つまたは複数のコンピュータプログラム、或いは１つまたは複数のアプリケーション）として実装することができる。コードは、例えば、１つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ可読記憶媒体上に記憶することができる。コンピュータ可読記憶媒体は、非一時的であるとすることができる。
【０１０１】
本明細書において提供される、任意のまた全ての例または例示的な言語（例えば、「等（ｓｕｃｈ  ａｓ）」）は、単に本発明の実施形態をより明確にすることが意図され、別途特許請求されない限り、本発明の範囲に制限を課さない。本明細書の言語はどれも、特許請求されないいずれの要素も本発明の実施にとって本質的であることを示していると解釈されるべきでない。
【０１０２】
本発明を実施するための、本発明者に知られている最良モードを含む、本開示の好ましい実施形態が本明細書で述べられる。これらの好ましい実施形態の変形は、先の説明を読むと、当業者に明らかになり得る。本発明者等は、熟練した技術者が適宜こうした変形を使用することを期待し、また、本発明者等は、本開示の実施形態が、本明細書で特に述べる以外の方法で実施されることを意図する。したがって、本開示の範囲は、適用可能な法律によって許可される、添付特許請求の範囲において列挙される主題の全ての修正物及び等価物を含む。更に、考えられる全てのその変形における上述した要素の任意の組合せが、本明細書で別途指示されない限りまたは文脈によって別途明確に否定されない限り、本開示の範囲によって包含される。
【０１０３】
本明細書で挙げられる、出版物、特許出願、及び特許を含む全ての参考文献は、各参考文献が、参照により組込まれるよう個々にかつ具体的に示され、かつ、その全体が本明細書で述べられる場合と同じ程度に、参照により組込まれる。
【図１】
2018113045.tif 000003
【図２】
2018113045.tif 000004
【図３】
2018113045.tif 000005
【図４】
2018113045.tif 000006
【図５】
2018113045.tif 000007
【図６】
2018113045.tif 000008
【図７】
2018113045.tif 000009
【図８】
2018113045.tif 000010
【図９】
2018113045.tif 000011
【図１０】
2018113045.tif 000012
【図１１】
2018113045.tif 000013