(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラミングインターフェースを用いて送信されたユーザ要求に基づき、コンピューティングリソースへのアクセスを制御するために、１つ以上のコンピュータに実装される方法であって、
第１のアクセス制御ポリシーと第２のアクセス制御ポリシーとを作成し、前記第１のアクセス制御ポリシーは、どのプリンシパルまたは複数のプリンシパルが１つ以上のタグを少なくとも１つのコンピューティングリソースに割り当てることを許可されているかを指定し、前記第２のアクセス制御ポリシーは、前記少なくとも１つのコンピューティングリソースを使用するための条件の少なくとも一部として前記１つ以上のタグを参照し、前記１つ以上のタグでタグ付けされた前記少なくとも１つのコンピューティングリソース上で実行されることが許可されている動作を識別し、ここにおいて、前記動作を識別することは、前記１つ以上のタグが前記少なくとも１つのコンピューティングリソースと関連付けられている場合、前記プリンシパルによって実行されることが許可される１つ以上の動作を識別することを含み、前記１つ以上のタグの少なくとも１つは、キー及び値を指定する自由形式の文字列を含むことと、
前記１つ以上のタグを、前記第１のアクセス制御ポリシーと前記第２のアクセス制御ポリシーに関連付けることと、
プリンシパルから、前記少なくとも１つのコンピューティングリソースに前記１つ以上のタグを追加する第１の要求を受け取ることと、
前記第１のアクセス制御ポリシーに基づいて、前記プリンシパルが、前記１つ以上のタグを前記少なくとも１つのコンピューティングリソースに割り当てることを許可されているかどうかを決定することと、
前記プリンシパルが前記１つ以上のタグを前記少なくとも１つのコンピューティングリソースに割り当てることを許可されていると決定された場合、前記１つ以上のタグを前記少なくとも１つのコンピューティングリソースと関連付けることと、
前記プリンシパルから、前記１つ以上のタグでタグ付けされている前記少なくとも１つのコンピューティングリソース上で動作を実行する第２の要求を受け取ることと、
前記プリンシパルが前記少なくとも１つのコンピューティングリソース上での前記動作に権限を与えることを許可されるか否かを決定するために、前記１つ以上のタグに関連付けられた前記第２のアクセス制御ポリシーを評価することと、
前記プリンシパルが前記少なくとも１つのコンピューティングリソース上での前記動作に権限を与えることを許可する前記第２のアクセス制御ポリシーに少なくとも部分的に基づいて、前記動作を実行する前記第２の要求を解決することと、を含む、方法。
【請求項２】
前記コンピューティングリソースが、
仮想マシンインスタンス、ホストコンピューティングデバイス、アプリケーション、記憶装置、データベース、複数の仮想マシンを含む仮想ネットワーク、またはインターフェースである、請求項１に記載の方法。
【請求項３】
前記第１と第２のアクセス制御ポリシーが、ポリシー言語を用いて作成される、請求項１に記載の方法。
【請求項４】
前記第２のアクセス制御ポリシーが、前記プリンシパルと関連付けられる、請求項１に記載の方法。
【請求項５】
前記第２の要求を解決することが、
前記動作を実行する前記第２の要求に関連する、前記第２のアクセス制御ポリシーを含むすべてのアクセス制御ポリシーを収集するように、及び、
前記動作を実行する権限を承諾または拒否するために、すべての前記アクセス制御ポリシーを評価するように構成される識別アクセス管理サービスによって実行され、
評価することが、前記少なくとも１つのコンピューティングリソースと関連付けられた前記１つ以上のタグに少なくとも部分的に基づく、請求項１に記載の方法。
【請求項６】
サービスプロバイダによって、前記サービスプロバイダのプリンシパルに、前記少なくとも１つのコンピューティングリソースを提供することであって、前記少なくとも１つのコンピューティングリソースは、マルチテナントの共有リソース環境において提供され、
アプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すことによって、前記プリンシパルが前記１つ以上のタグを前記少なくとも１つのコンピューティングリソースに加えることを要求することを可能にすることと、をさらに含む、請求項１に記載の方法。
【請求項７】
前記第１と第２のアクセス制御ポリシーが、ユーザ、ユーザ群、または、前記少なくとも１つのコンピューティングリソース、のうちの少なくとも１つと関連付けられている、請求項１に記載の方法。
【請求項８】
アプリケーションプログラミングインターフェースを用いて送信されたユーザ要求に基づき、コンピューティングリソースへのアクセスを制御するためのコンピューティングシステムであって、
少なくとも１つのプロセッサと、
メモリであって、前記少なくとも１つのプロセッサによって実行されると、前記コンピューティングシステムに、
第１のアクセス制御ポリシーと第２のアクセス制御ポリシーとを作成させ、前記第１のアクセス制御ポリシーは、どのプリンシパルまたは複数のプリンシパルが１つ以上のタグを少なくとも１つのコンピューティングリソースに割り当てることを許可されているかを指定し、前記第２のアクセス制御ポリシーは、前記少なくとも１つのコンピューティングリソースを使用するための条件の少なくとも一部として前記１つ以上のタグを参照し、前記１つ以上のタグでタグ付けされた前記少なくとも１つのコンピューティングリソース上で実行されることが許可されている動作を識別し、ここにおいて、前記動作を識別することは、前記１つ以上のタグが前記少なくとも１つのコンピューティングリソースと関連付けられている場合、前記プリンシパルによって実行されることが許可される１つ以上の動作を識別することを含み、前記１つ以上のタグの少なくとも１つは、キーと値を指定する自由形式の文字列を含み、
前記１つ以上のタグを、前記第１のアクセス制御ポリシーと前記第２のアクセス制御ポリシーに関連付けさせ、
プリンシパルから、前記少なくとも１つのコンピューティングリソースに前記１つ以上のタグを追加する第１の要求を受け取らせ、
前記第１のアクセス制御ポリシーに基づいて、前記プリンシパルが、前記１つ以上のタグを前記少なくとも１つのコンピューティングリソースに割り当てることを許可されているかどうかを決定させ、
前記プリンシパルが前記１つ以上のタグを前記少なくとも１つのコンピューティングリソースに割り当てることを許可されていると決定された場合、前記１つ以上のタグを、前記少なくとも１つのコンピューティングリソースと関連付けさせ、
前記プリンシパルから、前記１つ以上のタグでタグ付けされている前記少なくとも１つのコンピューティングリソース上で動作を実行する第２の要求を受け取らせ、
前記プリンシパルが、前記少なくとも１つのコンピューティングリソース上での動作に権限を与えることを許可されているか否かを決定するために、前記１つ以上のタグに関連付けられた前記第２のアクセス制御ポリシーを評価させ、
前記プリンシパルが前記少なくとも１つのコンピューティングリソース上での前記動作に権限を与えることを許可している前記第２のアクセス制御ポリシーに少なくとも部分的に基づいて、前記動作を実行する前記第２の要求を解決させる命令を含む、メモリと、を備える、コンピューティングシステム。
【請求項９】
前記少なくとも１つのコンピューティングリソースが、
仮想マシンインスタンス、データ記憶サービスに記憶されたデータ、アプリケーション、記憶装置、データベース、複数の仮想マシンを含む仮想ネットワーク、またはインターフェース、のうちの１つ以上をさらに含む、請求項８に記載のコンピューティングシステム。
【請求項１０】
前記１つ以上のタグが、前記第１と第２のアクセス制御ポリシーを表現するために用いられ得るポリシー言語を用いることによって、前記条件で参照される、請求項８に記載のコンピューティングシステム。
【請求項１１】
前記第２のアクセス制御ポリシーが、ユーザと関連付けられる、請求項８に記載のコンピューティングシステム。
【請求項１２】
前記第２の要求を解決することが、
前記動作を実行する前記第２の要求に関連する、前記第２のアクセス制御ポリシーを含むすべてのアクセス制御ポリシーを収集するようにと、
前記動作を実行する権限を承諾または拒否するためにすべての前記アクセス制御ポリシーを評価し、評価することが、前記少なくとも１つのコンピューティングリソースと関連付けられた前記１つ以上のタグに少なくとも部分的に基づくようにと、で構成される識別アクセス管理サービスによって実行される、請求項８に記載のコンピューティングシステム。
【請求項１３】
前記第１と第２のアクセス制御ポリシーが、ユーザ、ユーザ群、または前記少なくとも１つのコンピューティングリソース、のうちの少なくとも１つと関連付けられている、請求項８に記載のコンピューティングシステム。
【請求項１４】
前記メモリが、さらに、
前記少なくとも１つのプロセッサによって実行されると、前記コンピューティングシステムに、
サービスプロバイダによって、前記サービスプロバイダのプリンシパルに、前記少なくとも１つのコンピューティングリソースを提供させ、前記少なくとも１つのコンピューティングリソースは、マルチテナントの共有リソース環境において提供され、
アプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すことによって、前記プリンシパルが、前記１つ以上のタグを前記少なくとも１つのコンピューティングリソースに加えることを要求することを可能にさせる命令を含む、請求項８に記載のコンピューティングシステム。
【請求項１５】
前記メモリは、さらに、
前記少なくとも１つのプロセッサによって実行されると、前記コンピューティングシステムに、
ネットワーク上でプリンシパルからの前記１つ以上のタグを前記少なくとも１つのコンピューティングリソースに関連付ける前記第１の要求を受け取らせ、前記第１の要求が、対話型コンソールを介して受け取られるようにする、命令を含む、請求項８に記載のコンピューティングシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
ソーシャルメディア及び対話型サービスの最近の急増により、タグ及び他のメタデータの使用は、多くの異なるプラットフォーム及びサービスにわたって一般的になりつつある。タグは、通常、情報（例えば、コンピュータファイル、サービス、デジタル画像など）に割り当てられたキーワードまたは用語として実装される。この種類のメタデータは、項目を説明し、それに文脈情報を添付することに役立ち得る。タグは、概して、項目の作成者によって、または他のユーザによって、非公式にかつ個人的に選択される。例えば、ソーシャルネットワーキングの文脈において、ユーザは、アセットの主題を説明するために、又はアセットに他の文脈情報を提供するために、写真、ビデオ、及び他のメディアアセットにタグを頻繁に付加する。しかしながら、タグ付けは、多くの異なる種類のリソース及びサービスと合わせて利用され得るという点において、媒体に限定されない。例えば、タグ付けは、マルチテナントの環境及びクラウドコンピューティングなどの他の共有リソース技術の文脈において利用され得る。
【図面の簡単な説明】
【０００２】
本開示に従う種々の実施形態が、図面を参照して説明される。  
【図１】種々の実施形態に従う、顧客がアクセス制御ポリシーにおけるタグを参照することを可能にする一実施例を図示する。
【図２】種々の実施形態に従う、アクセス制御ポリシーを利用してリソースでのタグの使用を制限する一実施例を図示する。
【図３】種々の実施形態に従う、タグをそのコンピューティングリソースに割り当てた結果として、リソースアクセス制御ポリシーをコンピューティングリソースと関連付ける一実施例を図示する。
【図４Ａ】種々の実施形態に従う、顧客のためのコンピューティングリソースを提供する、サービスプロバイダのリソースセンター環境の一実施例を図示する。
【図４Ｂ】種々の実施形態に従う、タグサービス及びタグを保持するタグデータストアを示す環境の一実施例を図示する。
【図５】種々の実施形態に従う、アクセス制御ポリシー内で顧客がタグを参照することを可能にするためのプロセスの例を図示する。
【図６】種々の実施形態に従う、アクセス制御ポリシーを利用してリソースでのタグの使用を制限するためのプロセスの例を図示する。
【図７】種々の実施形態に従う、タグをそのコンピューティングリソースに割り当てた結果として、アクセス制御ポリシーをコンピューティングリソースと関連付けるためのプロセスの例を図示する。
【図８】種々の実施形態に従って利用され得る、例示的なコンピューティングデバイスの１組の一般的コンポーネントの論理的な配置を図示する。
【図９】種々の実施形態に従う、態様を実装するための環境の一実施例を図示する。
【発明を実施するための形態】
【０００３】
以下の記載において、種々の実施形態が、添付の図面の図における制限のためでなく、例のために説明される。本開示における種々の実施形態への参照は、必ずしも同一の実施形態に対してではなく、かつかかる参照は少なくとも１つを意味する。特定の実装及び他の詳細が検討されるが、これは例示の目的のみのために行われることが理解されるものとする。当業者は、他の構成要素及び構成が、特許請求の主題の範囲及び趣旨から逸脱することなく使用され得ることを認識するであろう。
【０００４】
本開示の種々の実施形態に従うシステム及び方法は、前述のうちの１つ以上、またはコンピューティングリソースにタグなどの自由形式メタデータを提供するための従来の手法において経験される他の欠点を克服し得る。とりわけ、種々の実施形態は、自由形式メタデータを利用して、ウェブサービスインターフェースを介して種々のコンピューティングリソース（例えば、仮想マシン、ストレージ、アプリケーション、データベースなど）へのアクセスを制御する。種々の実施形態において、本明細書に記載の自由形式メタデータは、個人用またはマルチテナントのコンピューティング環境（例えば、クラウドコンピューティング環境）において利用され得、コンピューティング環境（例えば、サービスプロバイダまたは組織）の操作者は、ユーザ（例えば、顧客、学生、従業員など）が、サービスプロバイダのリソース（例えば、サーバ）上でこれらのアプリケーション及びサービスを実行することを可能にする。この環境において、ユーザは、このコンピューティング環境における種々のリソースにタグを割り当てることが許可されている。例えば、ユーザは、ユーザのアプリケーションを実行する仮想マシン（ＶＭ）インスタンス、これらのＶＭインスタンスをホストするホストコンピューティングデバイス、データ記憶サービスに記憶されたデータ、アプリケーション、データベース、インターフェース、複数の仮想マシン及び種々の他のリソースを含む仮想ネットワークをタグ付けし得る。
【０００５】
この文脈において、自由形式メタデータのタグ付けは、いくつかの目的のために用いられ得るリソースと関連付けられる、あらゆる自由形式の、任意の、及び非構造化メタデータであり得る。一実施形態において、コンピューティング環境内のそれぞれのタグが、特定のリソースと関連付けられたキー及び値（例えば、キーと値の対）を指定する自由形式の文字列を含み得る。例えば、所定の１組のキー又は値から選択するのではなく、ユーザはむしろ、あらゆる任意のキー及び値を指定するあらゆる形式の文字列でコンピューティングリソースをタグ付けし得る。
【０００６】
一実施形態に従い、ユーザが１つ以上のタグをコンピューティングリソースに割り当てると、これらのタグは、ユーザと関連付けられたアクセス制御ポリシーにおいて、述部と称され得る。例えば、アカウントの管理者は、特定のユーザが、ユーザ定義のタグ「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」でタグ付けされた任意のリソースを削除することを可能にするポリシーを有し得る（すなわち、ユーザは、生成スタックの一部である任意のリソースを削除することを許可される）。これは、管理者が他の理由のためにすでに適切なタグ（または他のメタデータ）を所定の位置に有し得、かつ本明細書に記載の技術を用いると、これらのタグがアクセス制御のための要求を解決するために利用され得るため、有利であり得る。加えて、管理者は、ユーザのアクセス制御ポリシーにおいてユーザが削除することができるはずであるそれぞれのリソースを明確に一覧表示する必要なく、ユーザのアクセス権を制御し得る。タグは何にでも適用され得るため、ユーザは、コンピューティング環境内の異なる場所に存在し、異なる方途でアクセス可能な異種リソース（例えば、ＶＭインスタンス、ストレージ、アプリケーション、データベースなど）へのアクセスを承諾され得る。リソース上で動作を実行するためのユーザからの要求（例えば、アプリケーションプログラミングインターフェース（「ＡＰＩ」）コール）をシステムが受け取ると、システムは、ユーザ及び／またはリソースと関連付けられたアクセス制御ポリシーを評価し、かつユーザ要求がアクセス制御ポリシーによって権限を与えられた動作（例えば、削除）を指定するか、及びリソースが適切なタグ（例えば、タグ「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」）と関連付けられているかに基づいて、要求を解決（すなわち、要求を承諾するかまたは拒否するかについて決断を下す）し得る。
【０００７】
同一の、または別の実施形態に従い、ある特定のタグのリソースへの適用は制限され得る（すなわち、タグの使用にアクセス制御ポリシーを設定することにより）。誰もがリソースの任意のタグを自由に変更することを許可されたとすると、タグ付け特権を有するユーザが、ユーザのアクセスを承諾するタグを持つ任意のまたはすべてのリソースをタグ付けし得ることになり、ユーザがシステム内のリソースへの意図しないアクセスを取得することを可能にする。多くの状況において、これは望ましくない。その結果、種々の実施形態において、少なくとも１つのポリシー、ルールセット、または他のかかる仕組みに基づいて、ある特定のリソースタグ設定が制限及び制御され得る。本実施形態において、１つ以上のタグをリソースに割り当てることを許可されたプリンシパルを指定するアクセス制御ポリシーが作成され得る。いくつかの実施形態において、アクセス制御は、タグと関連付けられたアクセス制御リスト（ＡＣＬ）として実装され得る。リソースにタグを追加する要求（例えば、ＡＰＩ要求）がユーザから受け取られたとき、システムは、タグと関連付けられたアクセス制御リストを評価し、かつユーザがタグをリソースに割り当てることを許可されているかを判定し得る。アクセス制御リストがタグの追加を許可した場合、要求は承諾され、そうでなければ要求は拒否され得る。いくつかの実施形態において、ｇｌｏｂ、正規表現及び／または他の文字列照合アルゴリズムを用いて、どのユーザが特定のタグをリソースに追加することを許可されているかを指定し得る。それぞれのタグがキー及び値の対から成り得るため、アクセス制御ポリシーにおける制約は、（１）特定のキー及び特定の値の組み合わせ、または（２）関連付けられている値に関わらず、特定のキーのどちらかに基づき得る。いくつかの実施形態において、特定のキーまたはキーと値の対についての制約には例外があり得る。例えば、システム内の個々のユーザが、任意のタグをアプリケーション（例えば、「アプリケーション＝＊」）に追加することを許可され得るが、ソフトウェア開発者がある特定のスタックリソースをテストリソース（例えば、「ｓｔａｃｋ＝ｔｅｓｔｉｎｇ」）としてタグ付けすることを許可されていることを除き、アプリケーションを実行するために用いられるスタックリソース（例えば、「ｓｔａｃｋ＝＊」）にタグを追加することを許可されない場合がある。本明細書に記載のタグのあらゆる実施例が、例示のみを目的として提供されるものであり、本明細書に記載の実施形態を制限することを意図しないということに留意されたい。
【０００８】
別の実施形態に従い、アクセス制御ポリシーをリソースに付加するためにタグが用いられ得る。本実施形態において、タグはポリシーと関連付けられ得る。タグが特定のリソースに追加されると、ポリシーがそのリソースに適用される。同様に、タグがリソースから除去されると、アクセス制御ポリシーもまたリソースから除去される。このように、アクセス制御ポリシーを特定のプリンシパルまたはリソースと関連付けるのではなく、ポリシーはむしろ自由形式メタデータと関連付けられ得る。これは、各リソースにわたって反復し、ポリシーをそれぞれのリソースと関連付ける必要なく、顧客がリソースを選択し、どのユーザがそのリソースにアクセスすることができるかを指定することを可能にし得る（例えば、正規表現を用いるタグを追加することによって）。タグのポリシーとのマッピングがポリシー評価時に解決されるため、ポリシーは最新である。
【０００９】
図１は、種々の実施形態に従う、顧客がアクセス制御ポリシーにおけるタグを参照することを可能にする実施例１００を図示する。図示される実施形態において、サービスプロバイダの顧客は、ユーザ１０１と関連付けられたアクセス制御ポリシー１０４の条件（１０５、１０６）における述部として、タグ（１１０、１１２）を指定し得る。例えば、あるユーザ「ボブ」は、「ボブ」がタグ「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」でタグ付けされたあらゆるものを削除し得ると指定するポリシーを有し得る。タグ（１１０、１１１、１１２）がシステム上のあらゆるリソース（１０７、１０８、１０９）に適用され得るため、ユーザ「ボブ」はこのタグでタグ付けされたあらゆる異種リソースにアクセスすることを承諾され得る。これは、顧客の許可モデルが自由形式及び非構造化の様式で表現されることを可能にする。
【００１０】
一実施形態に従い、ユーザのアクセス制御ポリシー１０４において顧客がある特定のタグを指定すると、これらのタグは、リソース上の種々の動作に権限付与するときに、ユーザの許可を制御するために用いられ得る。例えば、ユーザのポリシーが、ユーザ１０１がタグ１１０でタグ付けされたあらゆるリソースを削除することを許可されていると表明した場合、及びリソース１０７がタグ１１０でタグ付けされている場合、ユーザはシステムによって、リソース１０７を削除することを許可され得る。同様に、ポリシー１０４が、ユーザ１０１がタグ１１２でタグ付けされたあらゆるリソース変更することを許可されていると表明した場合、及びリソース１０９がタグ１１２でタグ付けされている場合、ユーザはシステムによって、リソース１０９を変更することを許可され得る。前述のように、タグは、仮想マシン、ホストコンピューティングデバイス、データ記憶、アプリケーション、データベース、仮想ネットワーク、またはインターフェースを含むがこれらに限定されない、コンピューティング環境内の任意のリソースと関連付けられ得る。種々の実施形態において、インターフェースは、インターネットプロトコル（ＩＰ）アドレス及びセキュリティグループ情報を持つ仮想ネットワークインターフェースであり得る。
【００１１】
一実施形態に従い、ユーザ１０１が、アプリケーションプログラミングインターフェース（ＡＰＩ）１０２を用いてリソースにアクセスするための要求を送信すると、識別及びアクセス管理サービス１０３は、要求に関連するアクセス制御ポリシーのうちのすべてを読み出し、これらを評価し得る。例えば、ユーザ１０１は、リソースにアクセスするユーザのための種々の制約を指定するアクセス制御ポリシー１０４を有する。同様に、本開示の以下の部分で詳細に説明するように、ユーザ群、アクセスされる特定のリソース、またはタグ自体と関連付けられる、アクセス制御ポリシーが存在し得る。一実施形態において、識別及びアクセス管理サービス１０３は、関連するポリシーのうちのすべてを収集し、これらを一緒に連結し、これらを評価してＡＰＩ要求を承諾するかどうか決定し得る。
【００１２】
種々の実施形態において、ポリシー言語は、顧客がユーザのアクセス制御ポリシー１０４における条件を表現することを可能にするために、サービスプロバイダによって提供され得る。言語は、ユーザ（例えば、サービスプロバイダの顧客）がタグを条件（１０５、１０６）として参照し得るように拡張され得る。例えば、ユーザ「ボブ」は、生産インフラストラクチャに対してあらゆることを行うことが許可されている管理者であり得る。ゆえに、ポリシー１０４に指定されるように、「ボブ」は、リソースがタグ「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」でタグ付けされているときに、任意のリソース上で任意のアクションを実行し得る。この場合、顧客は、仮想マシンインスタンス、ホストコンピューティングデバイス、ストレージリソース、及び他のリソースをタグ「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」でタグ付けし得る。その結果、「ボブ」は、これらのリソースがシステムの異なる部分内に格納され、かつ異なる機能を実行する場合でも、ＶＭインスタンス、ホストコンピューティングデバイス、及びストレージリソースを管理し得る。したがって、ユーザ「ボブ」は、異種に適用され、均一に表現された許可を有し得る。このタグの使用は、リソース間の任意の境界を超えるグループ許可の柔軟な方途を提供する。
【００１３】
いくつかの場合、しかしながら、任意のユーザが任意のリソース上の任意のタグを自由に変更することを許可された場合、ユーザは、リソースをリソースにアクセスすることを承諾するタグでタグ付けすることにより、いくつかのセキュリティ対策を回避し得る。例えば、ユーザのポリシーが、タグ「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」でタグ付けされた任意のリソースをユーザが変更することを許可されていると表明した場合、かつそのタグを適用するための制約が存在しない場合、ユーザは、それぞれのリソースを単にタグ「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」でタグ付けすることにより、システム内の任意のリソースへのアクセスを獲得し得る。多くの状況において、これは望ましくない。
【００１４】
図２は、種々の実施形態に従う、アクセス制御ポリシー利用してリソースでのタグの使用を制限する実施例２００を図示する。図示される実施形態において、タグは、タグと関連付けられたアクセス制御ポリシーを有し得る１次オブジェクトである。例えば、タグ２１０は、タグ使用アクセス制御ポリシー２０４と関連付けられ、タグ２１１は、タグ使用アクセス制御ポリシー２０５と関連付けられる。一実施形態に従い、タグ使用アクセス制御ポリシーは、どのプリンシパル（例えば、ユーザ）がタグをどのリソースに適用することを許可されているかを指定する。例えば、タグ「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」は、システム管理者または他の特権を有するユーザのみがリソースをこの特定のタグでタグ付けし得るということを表明するポリシーと関連付けられ得る。種々の実施形態において、すべてのタグがこれと関連付けられたアクセス制御ポリシーを有するのではないということに留意されたい。多くのタグ（例えば、記述用語（ｄｅｓｃｒｉｐｔｉｏｎ  ｔｅｒｍｓ）など）が自由に制約なく追加され得、したがってアクセス制御ポリシーと関連付けられる必要がない。
【００１５】
タグは、キー値の対から成り得る。いくつかの実施形態において、タグに適用されるアクセス制御ポリシーは、キーと値の両方に基づき得る。例えば、タグ「ｃｏｌｏｒ＝ｇｒｅｅｎ」は、キー（例えば、ｃｏｌｏｒ）及び値（例えば、ｇｒｅｅｎ）の両方に基づいて制限され得る。他の実施形態において、アクセス制御ポリシーに適用されたタグは、特定の値に関係なく、キーのみに基づき得る。例えば、タグ「ｃｏｌｏｒ＝＊」は、アクセス制御ポリシーと関連付けられ得、キー（例えば、ｃｏｌｏｒ）を含む任意のタグがアクセス制御ポリシーの対象となり得る。いくつかの実施形態において、アクセス制御ポリシーには例外があり得る。例えば、アクセス制御ポリシーは、ソフトウェア開発者であるユーザがタグ「ｓｔａｃｋ＝ｔｅｓｔｉｎｇ」を割り当てることを許可されているということを除き、いかなる個々のユーザもタグ「ｓｔａｃｋ＝＊」を割り当てることを許可されていないということを指定し得る。
【００１６】
図示される実施形態に従い、ユーザ２０１が、タグを特定のリソースに割り当てる要求を送信したとき（例えば、ＡＰＩ２０２を用いて）、識別及びアクセス管理サービス２０３は、このタグと関連付けられたアクセス制御ポリシーを評価し得る。例えば、ユーザがタグ２１０をリソース２０６に追加する要求を送信した場合、識別及びアクセス管理サービス２０３は、タグを評価し、アクセス制御ポリシー２０４を用い得、かつユーザ１０１がタグをリソースに適用することを許可されているかを判定し得る。同様に、ユーザがタグ２１１をリソース２０７に追加する要求を送信した場合、識別及びアクセス管理サービス２０３は、タグ使用アクセス制御ポリシー２０５を評価し得、かつユーザ１０１がタグを適用することを許可されているかを判定し得る。ポリシーが、ユーザがタグを割り当てることを許可する場合、タグはリソースと関連付けられ得、そうでなければ要求は失敗する。
【００１７】
いくつかの実施形態において、どのプリンシパル（例えば、ユーザ）がどのタグを設定し得るかを制御するために、ｇｌｏｂ（例えば、パターン照合）正規表現、または他の文字列照合技術が用いられ得る。例えば、ユーザ「ボブ」は、特定の正規表現またはｇｌｏｂと一致するタグを設定することを許可され得る。顧客がディレクトリ構造を有する場合、その構造は、ユーザによって設定され得るタグへの制約を指定するために用いられ得る。例えば、ユーザは、ディレクトリ「ｃｏｍｐａｎｙ／ｄｅｐａｒｔｍｅｎｔ／ｐｒｏｊｅｃｔ／ｓｙｓｔｅｍ／ｈｏｓｔＩＤ／＊」内のリソースのためのタグを管理するための許可を承諾され得る。別の実施例は、正規表現であり得、ユーザが、題名が特定の文字で始まり、かつ正確に４つの数字を含む、任意の部門のディレクトリ内のリソースにタグを適用することを許可され得る。本開示の教示に基づいて当業者には明らかとなるように、任意の数の正規表現が種々の実施形態の範囲内で用いられ得る。
【００１８】
図３は、種々の実施形態に従う、タグをそのコンピューティングリソースに割り当てた結果として、リソースアクセス制御ポリシーをコンピューティングリソースと関連付ける実施例３００を図示する。図示される実施形態において、タグ３０７は、リソースアクセス制御ポリシー３０５と関連付けられ得る。リソースアクセス制御ポリシー３０５は、どのユーザがタグ３０７でタグ付けされ得るリソース上で動作を実行し得るかを指定する。種々の実施形態において、ユーザが第１にタグ３０７をリソースに追加する要求を送信すると、システムは、ユーザがタグを追加することを許可されているかどうか判定し得、次にユーザがタグを追加するための適切な許可を有する場合、タグをリソースに追加し得る。タグがリソースに追加される場合、タグと関連付けられたリソースアクセス制御ポリシーは、リソースにアクセスするための任意の要求の一部として評価され得る。
【００１９】
図示される実施形態に従い、ユーザ３０１がリソース３０６にアクセスする要求を送信すると、識別及びアクセス管理サービス３０３は、要求に関連するアクセス制御ポリシーのすべて（例えば、ユーザのアクセス制御ポリシー、リソースアクセス制御ポリシー３０５など）を収集し、かつこれらを評価し得る。タグ３０７がリソース３０６に適用された結果として、リソース３０６にアクセスするための任意の要求が受け取られたときはいつでも、その要求へのアクセスを制御する一部として、リソースアクセス制御ポリシー３０５が評価され得る。同様に、タグ３０７がリソース３０６から仮に除去された場合、リソースアクセス制御ポリシー３０５は、リソース３０６にアクセスするための受信要求のためにもはや評価され得ない。
【００２０】
このように、アクセス制御ポリシーを特定のリソースと明示的に関連付けるのではなく、ポリシー３０５はむしろ、リソースに適用されているタグによって、任意のリソースと関連付けられ得る。これは、各リソースにわたって反復し、ポリシーをそれぞれのリソースと関連付ける必要なく、顧客がリソースを選択し、どのユーザがそのリソースにアクセスすることができるかを指定することを可能にし得る（例えば、正規表現を用いるタグを追加することによって）。タグのポリシーとのマッピングがポリシー評価時に解決されるため、ポリシーは最新である。
【００２１】
図１〜図３は識別及びアクセス管理サービスを図示するが、これは本明細書に記載の種々の実施形態への制限ではないということに留意されたい。代替的な実施形態において、ポリシーを評価し、タグを割り当て、及び本明細書に記載の他の機能を実行するために、システムの任意の他のコンポーネント（または複数のコンポーネントの組み合わせ）が用いられ得る。
【００２２】
図４Ａは、種々の実施形態に従う、顧客のためのコンピューティングリソースを提供する、サービスプロバイダのリソースセンター環境の実施例４００を図示する。図示される実施形態において、サービスプロバイダ（例えば、クラウドコンピューティングリソースプロバイダ）は、サービスプロバイダの物理リソース（例えば、ホストサーバなど）を格納する、１つ以上のリソースセンター４２３（例えば、データセンター、サーバファームなど）を維持し得る。これらの物理リソースは、いくつかの仮想マシンインスタンスまたはインターネットなどのネットワーク４０２を通じてユーザ４０１に提供され得る仮想サーバをホストするために用いられ得る。例えば、ユーザがサービスプロバイダの物理リソースを用いてアプリケーションを実行することを望む場合、ユーザは、サービスプロバイダにユーザのための仮想マシンを用意することを要求し得、これはアプリケーションを展開及び実行するために用いられ得る。ユーザのアプリケーションに対する要求が高まるにつれて、ユーザは、負荷を平衡させるためにより多くの仮想マシンが用意されることを要求し、１つ以上の仮想プライベートネットワーク（ＶＰＮ）の生成を要求するなどをし得る。
【００２３】
図示される実施例において、サービスプロバイダのリソースセンター４２３は、ホストサーバ（４０６、４０７、４０８、４０９、４１０）の１つ以上のラック４２１、４２２を含み得、特定のラック上のそれぞれのホストマシンが、単一のトップオブラック（ＴＯＲ）スイッチ（４０４、４０５）に接続される。これらのＴＯＲスイッチは、ホストサーバがネットワークに接続することを可能にする１つ以上の他のスイッチ（４２４、４２５）にさらに接続され得る。本開示全体に用いられるように、ネットワークは、インターネットまたは他の広域ネットワーク（ＷＡＮ）、セルラーネットワーク、ローカルエリアネットワーク（ＬＡＮ）、ストレージエリアネットワーク（ＳＡＮ）、イントラネット、エクストラネットなどを含むがこれらに限定されない、互いに通信することができる、デバイスの任意の有線または無線ネットワークである。リソースセンターは、データセンター、サーバファーム、コンテンツ配信ネットワーク（ＣＤＮ）、ポイントオブプレゼンス（ＰＯＰ）などの、リソースの任意の物理または論理グルーピングを含み得る。
【００２４】
一実施形態に従い、それぞれのホストサーバが、サービスプロバイダの顧客のために用意された１つ以上の仮想マシンインスタンス（４１３、４１４、４１５、４１６、４１７、４１８、４１９）をホストして、これらの顧客の代わりに種々のアプリケーション及びサービスを実行し得る。それぞれの仮想マシンが、カーネル、ドライバ、プロセス管理などの独自のオペレーションシステム（ＯＳ）によって用意され得る。
【００２５】
顧客が仮想マシンインスタンスを取得することを所望する場合、顧客は第１に、ユーザが用いることを望むＶＭの種類を示す要求をサービスプロバイダに送信し得る。サービスプロバイダは、サービスプロバイダの物理リソース（例えば、ホストマシン）によってホストされ得る仮想マシンインスタンスを用意するためのプロセスを実行し得る。仮想マシンインスタンスは次に、サービスプロバイダのリソースを利用して、顧客の代わりに種々のアプリケーション及びサービスを実行するために用いられ得る。
【００２６】
図４Ｂは、種々の実施形態に従う、タグサービス及びタグを保持するタグデータストアを示す環境４５０の一実施例を図示する。図示される実施形態において、自由形式メタデータをコンピューティングリソースに適用することに関連する機能性は、タグサービス４５１（例えば、分散システムを実装するために一緒に動作する１つ以上のコンピュータシステム）によって達成され得る。一実施形態において、タグサービス４５１は、リソース４５５などのコンピューティング環境内のリソースにタグ付けするためのインターフェースを実装するウェブサーバと関連付けられ得る。ここで、タグサービス４５１は、リソースのタグ付けのための要求を、ネットワーク（例えば、対話型コンソールまたは環境によって提供される他のＧＵＩ）を通じてユーザ４０１から、他のプログラムまたは自身の他のインスタンスの実行を自動的に開始する、ユーザの実行しているプログラムから、プログラミングツール（例えば、コマンドラインツール、統合開発環境など）から、環境（例えば、ウェブサービスを用いるＡＰＩ）によって提供されるアプリケーションプログラミングインターフェース（「ＡＰＩ」）を介してタグサービスと対話するプログラムから受け取り得る。
【００２７】
リソース４５５をタグ付けする要求の受け取りに応答して、タグサービス４５１は、タグ４５６を示す自由形式メタデータを生成し、かつタグ４５６をデータストア内のリソースのための識別子４５７と関連付け得る。加えて、タグサービス４５１は、タグ４５６がいつ作成されたかのタイムスタンプ、タグ４５６を作成したユーザのＩＤなどを格納し得る。例えば、ユーザがウェブベースのコンソールを用いて「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」タグを作成した場合、タグサービス４５１は、タグデータストア４５２内にキー／値の対「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」を含むデータエントリを作成し得る。ユーザ４０１がタグ４５６をリソース４５５と関連付けると、タグサービス４５１は、リソースのためのリソース識別子４５７をデータエントリに追加し得る。一実施形態において、タグデータストア４５２内の関係が存続した後、タグサービス４５１は、リソースを制御するサービス４５３にメッセージ（例えば、ウェブサービス要求）を送信し得、サービス４５３がタグをリソースと関連付け得る。例えば、リソース４５５が仮想マシンを起動するために用いられるマシンイメージだとすると、タグサービス４５１は、マシンイメージを管理するように動作可能なサービス（例えば、リソース管理サービス４５３）に、タグ４５６をマシンイメージ（すなわちリソース４５５）のメタデータに追加するメッセージを送信し得、サービス４５３がメタデータを適用し得る。
【００２８】
タグの使用についてアクセス制御制約が存在する実施形態において、ユーザ４０１は、タグ４５６をリソース４５５と関連付けることを試み、タグサービス４５１は、識別及びアクセス管理サービス４５３を呼び出して、このユーザ４０１がタグ４５６をリソース４５５に適用するために必要な許可を有していることを検証し得る。ユーザ４０１がタグ４５６をリソース４５５に適用する権限を与えられているインスタンスにおいて、識別及びアクセス管理サービス４５３は、要求に肯定応答で応答し得、タグサービス４５１は、関係をタグデータストア４５２内に格納し得る。
【００２９】
アクセス制御ポリシーがタグ４５６と関連付けられ得る実施形態において、管理者は、アクセス制御ポリシー４５９を作成し、ポリシー４５９をタグと関連付けるために、ウェブサーバ（例えば、対話型コンソール）によって達成されるインターフェースを用い得る。要求に応答して、かつユーザが必要な許可を有すると仮定して、識別及びアクセス管理サービス４５３は、タグ４５６（例えば、タグＩＤ）を示す情報と関連して、識別及びアクセス管理データストア４５８内にポリシー４５９を格納し得る。識別及びアクセス管理サービス４５３は次に、ポリシーのインジケータまたはポリシー自体をタグデータストア４５２内に格納するメッセージ（例えば、ウェブサービス要求）をタグサービス４５１に送信し得る。タグ４５６は、リソース４５５と関連付けられた後、識別及びアクセス管理サービス４５３によって処理され、ユーザ要求で指定されたアクションを拒否するか承認するかを決定し得る。例えば、ポリシーがアクションをタグと関連付けるインスタンスにおいて（例えば、ボブが「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」でタグ付けされたリソースを削除し得る）、識別及びアクセス管理サービス４５３は、要求で指定されたアクションが「削除」されるかどうか、及びリソースが「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」でタグ付けされているかを判定し得（例えば、リソースと関連付けられたメタデータを読み取ることで）、要求を拒否または承認し得る。同様に、タグ４５６がポリシー４５９と関連付けられている場合、識別及びアクセス管理サービス４５３は、リソースと関連付けられたメタデータを読み取ってタグ４５６を検出し得、タグ４５６を用いて識別及びアクセス管理サービス４５３と関連付けられたデータストア４５８を検索して、これと関連付けられたポリシー４５９を発見し、ポリシー４５９を評価して要求を承諾または拒否するかを決定する。
【００３０】
図５は、種々の実施形態に従う、アクセス制御ポリシー内で顧客がタグを参照することを可能にする実施例５００を図示する。この図は、機能動作を特定の順序で描画し得るが、プロセスは図示される特定の順番または動作に必ずしも制限されない。当業者は、この、または他の図に描かれた種々の動作が、変更、再配置、並列して実行、または種々の方途で適応されるということを認識するであろう。また、ある特定の動作または動作の順序が、種々の実施形態の範囲を逸脱することなくプロセスに追加されるか、またはプロセスから省略され得るということが理解されるべきである。加えて、本明細書に含まれるプロセスの図示は、プロセスフローの概念を当業者に実証することを意図しており、異なるフローまたは順序で実装され得る、性能のために最適化され得る、または別様に種々の方途で変更され得るコード実行の実際の順序を指定するものではない。
【００３１】
動作５０１において、サービスプロバイダが顧客によるアクセスのための１つ以上のコンピューティングリソースを提供する。コンピューティングリソースは、仮想マシン、ホストコンピューティングデバイス、記憶装置、アプリケーション、データベース、インターフェース、及び顧客の代わりにサービスを提供するために利用され得る任意の他のリソースを含む、任意のハードウェアリソース、ソフトウェアリソース、またはそれらの組み合わせを含み得る。
【００３２】
動作５０２において、顧客は、サービスプロバイダによって提供される１つ以上のコンピューティングリソースにタグを割り当てることを可能とされる。例えば、顧客は、他の仮想マシンがテストリソースとしてタグ付けされ得る一方で、ある特定の仮想マシンを生産リソースとしてタグ付けし得る。いくつかの実施形態において、それぞれのタグがキー及び値で構成され得る。キー及び値は、任意の所与のリソースと関連付けられ得、このリソースについての情報を提供する。
【００３３】
動作５０３において、アクセス制御ポリシーが提供される。一実施形態において、アクセス制御ポリシーは、プリンシパル（例えば、ユーザ）と関連付けられる。他の実施形態において、アクセス制御ポリシーは、本開示を通して説明されるように、リソース、タグなどと関連付けられ得る。
【００３４】
動作５０４において、ユーザと関連付けられたアクセス制御ポリシー内でタグが参照（例えば、指定）され得る。とりわけ、タグは、ユーザアクセスを制御する１つ以上の条件内で参照され得る。例えば、ポリシーは、ユーザがタグ「ｓｔａｃｋ＝ｔｅｓｔｉｎｇ」でタグ付けされた任意のリソースを変更または削除することを許可されているという条件を含み得る。
【００３５】
動作５０５において、タグ付けされている１つ以上のコンピューティングリソース上で動作を実行する要求がユーザから受け取られる。例えば、要求は、リソースが削除されることを要求するＡＰＩコールであり得る。
【００３６】
動作５０６において、条件内で参照されたタグを含むアクセス制御ポリシーが評価される。動作５０７において示されるように、ユーザが要求を実行することを許可するようにアクセス制御ポリシーが評価された場合は動作が実行され、そうでなければ要求は拒絶または失敗する。
【００３７】
図６は、種々の実施形態に従う、アクセス制御ポリシーを利用してリソースでのタグの使用を制限するためのプロセスの実施例６００を図示する。動作６０１において、アクセス制御ポリシーがタグに適用される。アクセス制御ポリシーは、どのプリンシパルがタグを適用することを許可されているか、及びどのリソースにプリンシパルがタグを適用することを許可されているかを指定する。動作６０２において、タグを少なくとも１つのコンピューティングリソースに割り当てることを要求する要求がユーザから受け取られる。動作６０３において、システムが、タグに適用されたポリシーを評価して、ユーザがタグを割り当てることを許可するかを決定する。動作６０４において、アクセス制御ポリシーが要求を許可した場合、タグがコンピューティングリソースに割り当てられる。そうでなければ、要求は拒絶または失敗し得る。
【００３８】
図７は、種々の実施形態に従う、タグをそのコンピューティングリソースに割り当てた結果として、アクセス制御ポリシーをコンピューティングリソースと関連付けるためのプロセスの実施例７００を図示する。動作７０１において、タグが第１のポリシー及び第２のポリシーと関連付けられる。第１のポリシーが、どのプリンシパルがタグをどのリソースに割り当てることを許可されているかを識別し得る一方で、第２のポリシーは、このタグでタグ付けされたコンピューティングリソース上で実行されることが許可されている動作を識別する。
【００３９】
動作７０２において、タグをコンピューティングリソースに適用する要求がユーザから受け取られる。例えば、ユーザは、仮想マシンをタグ「ｓｔａｃｋ＝ｐｒｏｄｕｃｔｉｏｎ」でタグ付けするＡＰＩ要求を送信し得る。動作７０３において、システムが、どのユーザがこのタグを適用することを許可されているかを指定する第１のアクセス制御ポリシーを評価する。動作７０４において、第１のポリシーが要求を許可するように評価された場合、システムがタグをコンピューティングリソースに割り当てる。
【００４０】
動作７０５において、コンピューティングリソース上で実行する要求が受け取られる。動作７０６において、システムは、タグと関連付けられている第２のアクセス制御ポリシーを含む、要求に関連するポリシーのうちのすべてを評価する。動作を実行する要求の権限付与を実行するために、ポリシーのうちのすべてが評価される。動作７０７において、ユーザが動作を実行することを可能にすると第２のアクセス制御ポリシーが評価した場合リソース上で動作を実行する要求に権限を与えられる。
【００４１】
本開示の種々の実施形態が、以下の付記を考慮して説明され得る。  
付記１．タグを用いてリソースへのアクセスを制御するためのコンピュータ実装方法であって、
実行可能命令で構成される、１つ以上のコンピュータシステムの制御下で、
マルチテナントの環境において顧客に提供される、１つ以上のコンピューティングリソースをサービスプロバイダによって提供することと、
１つ以上のコンピューティングリソースへのアクセスを制御するための条件の一部としてメタデータを指定するアクセス制御ポリシーを、アカウントのユーザと関連付けることと、
ユーザから、１つ以上のコンピューティングリソース上で動作を実行するアプリケーションプログラミングインターフェース（ＡＰＩ）コールを受け取ることと、
ＡＰＩコールに応答して、アクセス制御ポリシーにおいて指定されたメタデータを含むアクセス制御ポリシーを評価することと、
アクセス制御ポリシーにおいて指定されたメタデータに少なくとも部分的に基づいて、１つ以上のコンピューティングリソース上で動作を実行するＡＰＩコールを権限付与することと、を含む、方法。  
付記２．メタデータが１つ以上のタグを含み、それぞれのタグが、アカウントの管理者によって選択されたキー値の対を含む、付記１に記載のコンピュータ実装方法。  
付記３．メタデータが１つ以上のコンピューティングリソースと関連付けられている場合、アクセス制御ポリシーが、ユーザによって実行されることが許可される１つ以上の動作を識別する、付記１に記載のコンピュータ実装方法。  
付記４．コンピュータ実装方法であって、
実行可能命令で構成される、１つ以上のコンピュータシステムの制御下で、
キー及び値を指定する自由形式の文字列を含むタグをコンピューティングリソースと関連付けることと、
コンピューティングリソース上で、動作を実行する要求を受け取ることと、
コンピューティングリソースを用いるための条件としてタグを参照するアクセス制御ポリシーを評価することと、
アクセス制御ポリシーを評価することと、タグがコンピューティングリソースと関連付けられているかどうか判定することとに少なくとも部分的に基づいて、動作を実行する前記要求を解決することと、を含む、方法。  
付記５．コンピューティングリソースが、
仮想マシンインスタンス、ホストコンピューティングデバイス、アプリケーション、記憶装置、データベース、複数の仮想マシンを含む仮想ネットワーク、またはインターフェースである、付記４に記載のコンピュータ実装方法。  
付記６．アクセス制御ポリシーが、ポリシー言語を用いて作成される、付記４に記載のコンピュータ実装方法。  
付記７．アクセス制御ポリシーが、ユーザと関連付けられ、かつタグがリソースと関連付けられている場合、ユーザによって実行されることが許可される１つ以上の動作を識別する、付記４に記載のコンピュータ実装方法。  
付記８．要求を解決することが、
動作を実行する要求に関連するすべてのアクセス制御ポリシーを収集し、かつ
すべてのアクセス制御ポリシーを評価して、動作を実行する権限を承諾または拒否するように構成される識別アクセス管理サービスによって実行され、評価が、コンピューティングリソースと関連付けられたタグに少なくとも部分的に基づく、付記４に記載のコンピュータ実装方法。  
付記９．コンピュータ実装方法であって、
サービスプロバイダによって、サービスプロバイダの顧客に、マルチテナントの共有リソース環境において提供されるコンピューティングリソースを提供することと、
アプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すことによって、顧客がタグをコンピューティングリソースに割り当てることを可能にすることと、をさらに含む、付記４に記載のコンピュータ実装方法。  
付記１０．アクセス制御ポリシーが、ユーザ、ユーザ群、または少なくとも１つのコンピューティングリソースのうちの少なくとも１つと関連付けられている、付記４に記載のコンピュータ実装方法。  
付記１１．コンピューティングシステムであって、
少なくとも１つのプロセッサと、
メモリであって、少なくとも１つのプロセッサによって実行されると、コンピューティングシステムに、
１つ以上のタグを、少なくとも１つのコンピューティングリソースと関連付けることであって、１つ以上のタグのうちの少なくとも１つが、キー及び値を指定する自由形式の文字列を含む、関連付けることと、
少なくとも１つのコンピューティングリソース上で、動作を実行する要求を受け取ることと、
動作を実行するための条件の少なくとも一部として１つ以上のタグを参照するアクセス制御ポリシーを評価することと、
アクセス制御ポリシーを評価することに少なくとも部分的に基づいて、動作を実行する要求を解決することと、を行わせる命令を含む、メモリと、を備える、コンピューティングシステム。  
付記１２．少なくとも１つのコンピューティングリソースが、
仮想マシンインスタンス、データ記憶サービスに記憶されたデータ、アプリケーション、記憶装置、データベース、複数の仮想マシンを含む仮想ネットワーク、またはインターフェースのうちの１つ以上をさらに含む、付記１１に記載のコンピューティングシステム。  
付記１３．１つ以上のタグが、アクセス制御ポリシーを表現するために用いられ得るポリシー言語を用いることによって、条件で参照される、付記１１に記載のコンピューティングシステム。  
付記１４．アクセス制御ポリシーが、ユーザと関連付けられ、かつ１つ以上のタグに少なくとも部分的に基づく条件が満たされた場合、ユーザによって実行されることが許可される１つ以上の動作を識別する、付記１１に記載のコンピューティングシステム。  
付記１５．権限を制御することが、
動作を実行する要求に関連するすべてのアクセス制御ポリシーを収集し、かつ
すべてのアクセス制御ポリシーを評価して、動作を実行する権限を承諾または拒否するように構成される識別アクセス管理サービスによって実行され、評価が、少なくとも１つのコンピューティングリソースと関連付けられた１つ以上のタグに少なくとも部分的に基づく、付記１１に記載のコンピューティングシステム。  
付記１６．アクセス制御ポリシーが、ユーザ、ユーザ群、または少なくとも１つのコンピューティングリソースのうちの少なくとも１つと関連付けられている、付記１１に記載のコンピューティングシステム。  
付記１７．メモリが、少なくとも１つのプロセッサによって実行されると、コンピューティングシステムに、
サービスプロバイダによって、サービスプロバイダの顧客に、マルチテナントの共有リソース環境において提供される、少なくとも１つのコンピューティングリソースを提供することと、
アプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すことによって、顧客が１つ以上のタグを少なくとも１つのコンピューティングリソースに割り当てることを可能にすることと、を行わせる命令をさらに含む、付記１１に記載のコンピューティングシステム。  
付記１８．非一時的コンピュータ可読記憶媒体であって、
１つ以上のタグを、少なくとも１つのコンピューティングリソースと関連付けることであって、１つ以上のタグのうちのそれぞれが、キー及び値を指定する自由形式の文字列を含む、関連付けることと、
少なくとも１つのコンピューティングリソース上で、動作を実行する要求を受け取ることと、
少なくとも１つのコンピューティングリソースへのアクセスを制御するための条件の少なくとも一部として、１つ以上のタグを参照するアクセス制御ポリシーを評価することと、
アクセス制御ポリシーを評価することに少なくとも部分的に基づいて、動作を実行するアクセスを制御することと、を含む１組の動作を実行するための１つ以上のプロセッサによって実行可能な、１つ以上の一連の命令を格納する、非一時的コンピュータ可読記憶媒体。  
付記１９．少なくとも１つのコンピューティングリソースが、
仮想マシンインスタンス、ホストコンピューティングデバイス、アプリケーション、記憶装置、データベース、複数の仮想マシンを含む仮想ネットワーク、またはインターフェースのうちの１つ以上をさらに含む、付記１８に記載の非一時的コンピュータ可読記憶媒体。  
付記２０．アクセス制御ポリシーが、ポリシー言語を用いることによって作成される、付記１８に記載の非一時的コンピュータ可読記憶媒体。  
付記２１．アクセス制御ポリシーが、ユーザと関連付けられ、かつ１つ以上のタグに少なくとも部分的に基づく条件が満たされた場合、ユーザによって実行されることが許可される１つ以上の動作を識別する、付記１８に記載の非一時的コンピュータ可読記憶媒体。  
付記２２．権限を制御することが、
動作を実行する前記要求に関連するすべてのアクセス制御ポリシーを収集し、かつ
すべてのアクセス制御ポリシーを評価して、動作を実行する権限を承諾または拒否するように構成される識別アクセス管理サービスによって実行され、評価が、要求と、少なくとも１つのコンピューティングリソースと関連付けられた１つ以上のタグと関連付けられた文脈情報に少なくとも部分的に基づく、付記１８に記載の非一時的コンピュータ可読記憶媒体。  
付記２３．アクセス制御ポリシーが、ユーザ、ユーザ群、または少なくとも１つのコンピューティングリソースのうちの少なくとも１つと関連付けられている、付記１８に記載の非一時的コンピュータ可読記憶媒体。  
付記２４．メタデータのリソースとの関連付けを制御するための、コンピュータ実装方法であって、
実行可能命令で構成される、１つ以上のコンピュータシステムの制御下で、
アクセス制御リストであって、メタデータを割り当て、変更、または削除を許可されているプリンシパル及びどのコンピューティングリソースにプリンシパルがメタデータを割り当て、変更、または削除を許可されているかを指定する、アクセス制御リストを、メタデータであって、コンピューティングリソース上での動作を承諾または拒否するかを決定するために使用可能である、メタデータと関連付けることと、
ユーザから、メタデータを少なくとも１つのコンピューティングリソースに割り当てる要求を受け取ることと、
メタデータを少なくとも１つのコンピューティングリソースに割り当てる要求を受け取ることに応答して、アクセス制御リストを評価することと、
ユーザがアクセス制御リストにおいて指定されたプリンシパルのうちの少なくとも１つと一致することを決定した後に、メタデータを少なくとも１つのコンピューティングリソースと関連付けることと、を含む、方法。  
付記２５．コンピュータ実装方法であって、
ユーザと関連付けられたアクセス制御ポリシーにおいてメタデータを参照することであって、メタデータ参照が、リソースへのユーザアクセスを制御するための条件の一部として用いられる、参照することと、
少なくとも１つのコンピューティングリソース上で、動作を実行する要求を受け取ることと、
アクセス制御ポリシーの条件の一部として指定されたメタデータに少なくとも部分的に基づいて、少なくとも１つのコンピューティングリソース上で動作を実行する要求を解決することと、をさらに含む、付記２４に記載のコンピュータ実装方法。  
付記２６．アクセス制御リスト内に文字列パターン照合アルゴリズムが提供されて、どのプリンシパルがどのメタデータタグを割り当てることを許可されているかを識別する、付記２４に記載のコンピュータ実装方法。  
付記２７．コンピュータ実装方法であって、
実行可能命令で構成される、１つ以上のコンピュータシステムの制御下で、
ユーザから、少なくとも１つのコンピューティングリソースに、アクセス制御ポリシーと関連付けられたタグを適用する要求を受け取ることであって、タグが、コンピューティングリソース上での動作を承諾または拒否するかを決定するように使用可能である、受け取ることと、
ユーザが少なくとも１つのコンピューティングリソースにタグを適用することが承認されているかを決定するために、アクセス制御ポリシーを評価することと、
ユーザがタグを適用することが承認されていると決定された場合、タグを少なくとも１つのコンピューティングリソースと関連付けることと、を含む、方法。  
付記２８．アクセス制御ポリシーが、少なくとも１つのコンピューティングリソースにタグを適用することが承認されている１つ以上のプリンシパルを示し、かつ
アクセス制御ポリシーを評価することが、ユーザが１つ以上のプリンシパルと一致するかを決定することを含む、付記２７に記載のコンピュータ実装方法。  
付記２９．タグが、キー及び値を指定する自由形式の文字列を含む、付記２７に記載のコンピュータ実装方法。  
付記３０．アクセス制御ポリシーが、キー及び任意の値に少なくとも部分的に基づく、少なくとも１つの制約を含む、付記２９に記載のコンピュータ実装方法。  
付記３１．アクセス制御ポリシーが、（ａ）キー及び（ｂ）タグ内で指定された値の両方に少なくとも部分的に基づく、少なくとも１つの制約を含む、付記２９に記載のコンピュータ実装方法。  
付記３２．少なくとも１つのコンピューティングリソースにタグを適用する要求が、アクセス制御ポリシーの評価が、ユーザがタグを適用することを承認しない場合に拒否される、付記２７に記載のコンピュータ実装方法。  
付記３３．どのプリンシパルがメタデータタグを適用することを許可されているかを指定するために、文字列パターン照合アルゴリズムがアクセス制御ポリシーにおいて適用される、付記２７に記載のコンピュータ実装方法。  
付記３４．コンピューティングリソースが、
仮想マシンインスタンス、ホストコンピューティングデバイス、アプリケーション、記憶装置、データベース、複数の仮想マシンを含む仮想ネットワーク、またはインターフェースのうちの少なくとも１つを含む、付記２７に記載のコンピュータ実装方法。  
付記３５．少なくとも１つのコンピューティングリソースが、マルチテナントのコンピューティング環境においてサービスプロバイダによってユーザに提供される少なくとも１つの仮想マシンを含む、付記２７に記載のコンピュータ実装方法。  
付記３６．ユーザから、タグを適用する要求を受け取ることが、
ネットワークを通じて、アプリケーションプログラミングインターフェース（ＡＰＩ）コールを受け取ることをさらに含み、ＡＰＩが、マルチテナントのコンピューティング環境においてサービスプロバイダによって提供される、付記３５に記載のコンピュータ実装方法。  
付記３７．コンピューティングシステムであって、
少なくとも１つのプロセッサと、
メモリであって、少なくとも１つのプロセッサによって実行されると、コンピューティングシステムに、
ユーザから、少なくとも１つのコンピューティングリソースに、アクセス制御ポリシーと関連付けられたタグを適用する要求を受け取ることであって、タグが、コンピューティングリソース上での動作を承諾または拒否するかを決定するように使用可能である、受け取ることと、
ユーザが少なくとも１つのコンピューティングリソースにタグを適用することが承認されているかを決定するために、アクセス制御ポリシーを評価することと、
ユーザがタグを適用することが承認されていると決定されている場合、タグを少なくとも１つのコンピューティングリソースと関連付けることと、を行わせる命令を含む、メモリと、を含む、コンピューティングシステム。  
付記３８．タグが、キー及び値を指定する自由形式の文字列を含む、付記３７に記載のコンピューティングシステム。  
付記３９．アクセス制御ポリシーが、キー及び任意の値に少なくとも部分的に基づく、少なくとも１つの制約を含む、付記３８に記載のコンピューティングシステム。  
付記４０．アクセス制御ポリシーが、（ａ）キー及び（ｂ）タグ内で指定されたキーに関連付けられた値の両方に少なくとも部分的に基づく、少なくとも１つの制約を含む、付記３８に記載のコンピューティングシステム。  
付記４１．アクセス制御ポリシーが、ユーザタグを適用することを拒否するように評価された場合、少なくとも１つのコンピューティングリソースにタグを適用する要求が失敗する、付記３７に記載のコンピューティングシステム。  
付記４２．どのプリンシパルがメタデータタグを適用することを許可されているかを指定するために、文字列照合アルゴリズムがアクセス制御ポリシーにおいて適用される、付記３７に記載のコンピューティングシステム。  
付記４３．１つ以上のプロセッサによって実行可能な、
ユーザから、少なくとも１つのコンピューティングリソースに、アクセス制御ポリシーと関連付けられたタグを適用する要求を受け取ることと、
アクセス制御ポリシーを評価して、ユーザが少なくとも１つのコンピューティングリソースにタグを適用することが承認されているかを判断することと、
ユーザがタグを適用することが承認されていると決定されている場合、タグを少なくとも１つのコンピューティングリソースと関連付けることと、を含む、１組の動作を実行するための１つ以上の一連の命令を格納する、非一時的コンピュータ可読記憶媒体。  
付記４４．メタデータタグが、キー及び値を指定する自由形式の文字列を含む、付記４２に記載の非一時的コンピュータ可読記憶媒体。  
付記４５．アクセス制御ポリシーが、キー及び任意の値に少なくとも部分的に基づく、少なくとも１つの制約を含む、付記４４に記載の非一時的コンピュータ可読記憶媒体。  
付記４６．アクセス制御ポリシーが、（ａ）キー及び（ｂ）タグ内で指定された値の両方に少なくとも部分的に基づく、少なくとも１つの制約を含む、付記４４に記載の非一時的コンピュータ可読記憶媒体。  
付記４７．少なくとも１つのコンピューティングリソースにタグを適用する要求が、アクセス制御ポリシーの評価が、ユーザがタグを適用することを承認しない場合に拒否される、付記４２に記載の非一時的コンピュータ可読記憶媒体。  
付記４８．タグを用いてリソースへのアクセスを制御するための、コンピュータ実装方法であって、
実行可能命令で構成される、１つ以上のコンピュータシステムの制御下で、
第１のアクセス制御ポリシー及び第２のアクセス制御ポリシーをメタデータタグと関連付けることであって、第１のアクセス制御ポリシーが、どのプリンシパルが少なくとも１つのコンピューティングリソースにメタデータタグを割り当てることを許可されているかを識別し、第２のアクセス制御ポリシーが、メタデータタグと関連付けられたリソース上で実行されることが許可されているか、または許可されていない動作を識別する、関連付けることと、
ユーザから、アプリケーションプログラミングインターフェース（ＡＰＩ）を用いて、少なくとも１つのコンピューティングリソースにメタデータタグを割り当てる要求を受け取ることと、
第１のアクセス制御ポリシーが、ユーザがメタデータタグを割り当てることを許可したことを決定することに応答して、第１のアクセス制御ポリシーを評価し、かつメタデータタグをコンピューティングリソースに割り当てることと、
コンピューティングリソース上で、動作を実行する要求を受け取ることと、
メタデータタグと関連付けられている第２のアクセス制御ポリシーを評価することと、
第２のアクセス制御ポリシーの評価に少なくとも部分的に基づいて、コンピューティングリソース上で動作を実行する要求を権限付与することと、を含む、方法。  
付記４９．コンピュータ実装方法であって、
ＡＰＩを用いて、メタデータタグをコンピューティングリソースから除去する要求を受け取ることと、
第１のアクセス制御ポリシーが、ユーザがメタデータタグを除去することを許可したことを決定することに応答して、第１のアクセス制御ポリシーを評価し、かつメタデータタグをコンピューティングリソースから除去することと、
コンピューティングリソース上で動作を実行する第２の要求を受け取ることであって、第２の要求が、メタデータタグがコンピューティングリソースから除去された後に受け取られる、受け取ることと、
第２のアクセス制御ポリシーを評価せずに、第２の要求の権限付与を実行することと、をさらに含む、付記４８に記載のコンピュータ実装方法。  
付記５０．コンピュータ実装方法であって、
第２のアクセス制御ポリシーを評価することが、識別管理サービスに、コンピューティングリソース上で動作を実行する要求に関連する１つ以上の他のアクセス制御ポリシーに加えて、第２のアクセス制御ポリシーを読み出すことを行わせることをさらに含む、付記４８に記載のコンピュータ実装方法。  
付記５１．コンピュータ実装方法であって、
実行可能命令で構成される、１つ以上のコンピュータシステムの制御下で、
ユーザから、コンピューティングリソースであって、これと関連付けられた自由形式メタデータを有する、コンピューティングリソースにアクセスする要求を受け取ることと、
自由形式メタデータと関連付けられたアクセス制御ポリシーを読み出すことと、
コンピューティングリソースと関連付けられた自由形式メタデータに少なくとも部分的に基づいて、コンピューティングリソースへのアクセスを制御するためのアクセス制御ポリシーを評価することと、を含む、方法。  
付記５２．アクセス制御ポリシーが、コンピューティングリソース上で実行されることを許可された１つ以上の動作を識別する、付記４８に記載のコンピュータ実装方法。  
付記５３．自由形式メタデータが、キー及び値を指定する少なくとも１つの文字列をさらに含む、付記４８に記載のコンピュータ実装方法。  
付記５４．自由形式メタデータが、
ユーザから、自由形式メタデータをコンピューティングリソースに追加する要求を受け取ることと、
自由形式メタデータを追加する要求に応答して、どのユーザが自由形式メタデータをコンピューティングリソースに割り当てることを許可されているかを識別する、第２のアクセス制御ポリシーを評価することと、
第２のアクセス制御ポリシーの評価が、ユーザが自由形式メタデータをコンピューティングリソースに追加することを承認する場合、自由形式メタデータをコンピューティングリソースと関連付けることと、によってコンピューティングリソースと関連付けられている、付記４８に記載のコンピュータ実装方法。  
付記５５．コンピューティングリソース上で動作を実行する要求を受け取ることに応答して、識別管理サービスが、アクセス制御ポリシー及びユーザと関連付けられた少なくとも１つの追加的なアクセス制御ポリシーを読み出し、かつアクセス制御ポリシー及び少なくとも１つの追加的なアクセス制御ポリシーを評価して、動作を実行する要求を承諾または拒否する、付記４８に記載のコンピュータ実装方法。  
付記５６．コンピュータ実装方法であって、
前記自由形式メタデータを、前記コンピューティングリソースから除去する要求を受け取ることと、
第２のアクセス制御ポリシーが、ユーザが自由形式メタデータを除去することを許可したことを決定することに応答して、第２のアクセス制御ポリシーを評価し、かつ自由形式メタデータをコンピューティングリソースから除去することと、
コンピューティングリソース上で動作を実行する第２の要求を受け取ることであって、第２の要求が、自由形式メタデータがコンピューティングリソースから除去された後に受け取られる、受け取ることと、
アクセス制御ポリシーを評価せずに、第２の要求の権限付与を実行することと、をさらに含む、付記４８に記載のコンピュータ実装方法。  
付記５７．アクセス制御ポリシーをコンピューティングリソースと関連付けることが、ポリシー評価時に実行される、付記４８に記載のコンピューティングリソース。  
付記５８．コンピューティングリソースが、
仮想マシンインスタンス、ホストコンピューティングデバイス、アプリケーション、記憶装置、データベース、複数の仮想マシンを含む仮想ネットワーク、またはインターフェースのうちの少なくとも１つを含む、付記４８に記載のコンピューティングリソース。  
付記５９．コンピューティングシステムであって、
少なくとも１つのプロセッサと、
メモリであって、少なくとも１つのプロセッサによって実行されると、コンピューティングシステムに、
ユーザから、コンピューティングリソースであって、これと関連付けられた自由形式メタデータを有する、コンピューティングリソースにアクセスする要求を受け取ることと、
自由形式メタデータと関連付けられたアクセス制御ポリシーを読み出すことと、
コンピューティングリソースと関連付けられた自由形式メタデータに少なくとも部分的に基づいて、コンピューティングリソースへのアクセスを制御するためのアクセス制御ポリシーを評価することと、を行わせる命令を含む、メモリと、を備える、コンピューティングシステム。  
付記６０．アクセス制御ポリシーが、コンピューティングリソース上で実行されることを許可された１つ以上の動作を識別する、付記５９に記載のコンピューティングシステム。  
付記６１．自由形式メタデータが、
ユーザから、自由形式メタデータをコンピューティングリソースに追加する要求を受け取ることと、
自由形式メタデータを追加する要求に応答して、どのユーザが自由形式メタデータをコンピューティングリソースに割り当てることを許可されているかを識別する、第２のアクセス制御ポリシーを評価することと、
第２のアクセス制御ポリシーの評価が、ユーザが、自由形式メタデータをコンピューティングリソースに追加することを承認する場合、自由形式メタデータをコンピューティングリソースと関連付けることと、によって、コンピューティングリソースと関連付けられている、付記５９に記載のコンピューティングシステム。  
付記６２．自由形式メタデータが、キー及び値を指定する少なくとも１つの文字列をさらに含む、付記５９に記載のコンピューティングシステム。  
付記６３．コンピューティングリソース上で動作を実行する要求を受け取ることに応答して、識別管理サービスが、アクセス制御ポリシー及びユーザと関連付けられた少なくとも１つの追加的なアクセス制御ポリシーを読み出し、かつアクセス制御ポリシー及び少なくとも１つの追加的なアクセス制御ポリシーを評価して、動作を実行する要求を承諾または拒否する、付記５９に記載のコンピューティングシステム。  
付記６４．メモリが、コンピューティングシステムに、
自由形式メタデータを、コンピューティングリソースから除去する要求を受け取ることと、
第２のアクセス制御ポリシーが、ユーザが自由形式メタデータを除去することを許可したことを決定することに応答して、第２のアクセス制御ポリシーを評価し、かつ自由形式メタデータをコンピューティングリソースから除去することと、
コンピューティングリソース上で動作を実行する第２の要求を受け取ることであって、第２の要求が、自由形式メタデータがコンピューティングリソースから除去された後に受け取られる、受け取ることと、
アクセス制御ポリシーを評価せずに、第２の要求の権限付与を実行することと、を行わせる命令をさらに含む、付記５９に記載のコンピューティングシステム。  
付記６５．非一時的コンピュータ可読記憶媒体であって、
ユーザから、コンピューティングリソースであって、これと関連付けられた自由形式メタデータを有する、コンピューティングリソースにアクセスする要求を受け取ることと、
自由形式メタデータと関連付けられたアクセス制御ポリシーを読み出すことと、
コンピューティングリソースと関連付けられた自由形式メタデータに少なくとも部分的に基づいて、コンピューティングリソースへのアクセスを制御するためのアクセス制御ポリシーを評価することと、を含む、１つ以上のプロセッサによって実行可能な１組の動作を実行するための１つ以上の一連の命令を格納する、非一時的コンピュータ可読記憶媒体。  
付記６６．アクセス制御ポリシーが、コンピューティングリソース上で実行されることを許可された１つ以上の動作を識別する、付記６５に記載の非一時的コンピュータ可読記憶媒体。  
付記６７．自由形式メタデータが、
ユーザから、自由形式メタデータをコンピューティングリソースに追加する要求を受け取ることと、
自由形式メタデータを追加する要求に応答して、どのユーザが自由形式メタデータをコンピューティングリソースに割り当てることを許可されているかを識別する、第２のアクセス制御ポリシーを評価することと、
第２のアクセス制御ポリシーの評価が、ユーザが自由形式メタデータをコンピューティングリソースに追加することを承認する場合、自由形式メタデータをコンピューティングリソースと関連付けることと、によって、コンピューティングリソースと関連付けられている、付記６５に記載の非一時的コンピュータ可読記憶媒体。  
付記６８．自由形式メタデータが、キー及び値を指定する少なくとも１つの文字列をさらに含む、付記６５に記載の非一時的コンピュータ可読記憶媒体。  
付記６９．コンピューティングリソース上で動作を実行する要求を受け取ることに応答して、識別管理サービスが、アクセス制御ポリシー及びユーザと関連付けられた少なくとも１つの追加的なアクセス制御ポリシーを読み出し、かつアクセス制御ポリシー及び少なくとも１つの追加的なアクセス制御ポリシーを評価して、動作を実行する要求を承諾または拒否する、付記６７に記載の非一時的コンピュータ可読記憶媒体。  
付記７０．非一時的コンピュータ可読記憶媒体であって、
前記自由形式メタデータを、前記コンピューティングリソースから除去する要求を受け取ることと、
第２のアクセス制御ポリシーが、ユーザが自由形式メタデータを除去することを許可したことを決定することに応答して、第２のアクセス制御ポリシーを評価し、かつ自由形式メタデータをコンピューティングリソースから除去することと、
コンピューティングリソース上で動作を実行する第２の要求を受け取ることであって、第２の要求が、自由形式メタデータがコンピューティングリソースから除去された後に受け取られる、受け取ることと、
アクセス制御ポリシーを評価せずに、第２の要求の権限付与を実行することと、を行うための命令をさらに含む、付記６５に記載の非一時的コンピュータ可読記憶媒体。
【００４２】
図８は、例示的なコンピューティングデバイス８００の１組の一般的コンポーネントの論理的な配置を図示する。本例において、デバイスは、メモリデバイスまたは要素８０４に格納され得る、命令を実行するためのプロセッサ８０２を含む。当業者には明白となるように、デバイスは、多くの種類のメモリ、データ記憶、またはプロセッサ８０２による実行のためのプログラム命令のための第１のデータ記憶などの非一時的コンピュータ可読記憶媒体、画像またはデータのための別個のストレージ、他のデバイスと情報を共有するための取り外し可能なメモリなどを含み得る。携帯型メディアプレイヤーなどのデバイスは、音声スピーカなどを通すなどの他の手段を介して情報を伝達し得るが、デバイスは典型的に、タッチスクリーンまたは液晶画面（ＬＣＤ）などのある種類の表示要素８０６を含み得る。検討したように、多くの実施形態におけるデバイスは、ユーザから従来の入力を受け取ることができる、少なくとも１つの入力要素８０８を含み得る。この従来型の入力は、例えば、押しボタン、タッチパッド、タッチスクリーン、ホイール、ジョイスティック、キーボード、マウス、キーパッド、またはユーザがコマンドをデバイスに入力し得る任意の他のかかるデバイスまたは要素を含み得る。いくつかの実施形態において、しかしながら、かかるデバイスがいかなるボタンも含まない場合があり、ユーザがデバイスとの接触を必要とすることなくデバイスを制御し得るように、視覚及び音声コマンドの組み合わせによってのみ制御され得る。いくつかの実施形態において、図８のコンピューティングデバイス８００は、ＷｉＦｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＲＦ、有線、または無線通信システムなどの種々のネットワークで通信するための、１つ以上のネットワークインターフェース要素８０８を含み得る。多くの実施形態におけるデバイスは、インターネットなどのネットワークと通信し得、他のかかるデバイスと通信することが可能であり得る。
【００４３】
検討されたように、実施形態に従い、異なる手法が種々の環境内に実装され得る。例えば、図９の一実施例は、種々の実施形態に従う、態様を実装するための環境９００の例を図示する。理解されるように、ウェブベースの環境が説明を目的として用いられているが、種々の実施形態を実装するために、必要に応じて異なる環境が用いられ得る。システムは、電子クライアントデバイス９０２を含み、これは、適切なネットワーク９０４上で要求、メッセージ、または情報を送信および受信し、デバイスのユーザに情報を伝達し戻すように動作可能な任意の適切なデバイスを含み得る。かかるクライアントデバイスの例は、パーソナルコンピュータ、携帯電話、携帯型メッセージングデバイス、ラップトップ型コンピュータ、セットトップボックス、個人データ端末、電子ブックリーダなどを含む。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のそのようなネットワークもしくはそれらの組み合わせを含む、任意の適切なネットワークを含み得る。かかるシステムに用いられるコンポーネントは、少なくとも部分的に、選択されるネットワーク及び／または環境の種類に依存し得る。かかるネットワークを介した通信用のプロトコル及びコンポーネントは周知であり、本明細書で詳細に論じられない。ネットワークを介した通信は、有線または無線接続、及びそれらの組み合わせを介して可能にされ得る。本例において、環境が、要求を受信し、かつそれに応答してコンテンツを提供するためのウェブサーバ９０６を含むために、ネットワークはインターネットを含むが、他のネットワークの場合、当業者には明らかであるように、同様の目的を果たす代替のデバイスが使用され得る。
【００４４】
例示的な環境には、少なくとも１つのアプリケーションサーバ９０８およびデータストア９１０が含まれる。適切なデータストアからデータを取得するなどのタスクを実行するように相互作用し得る、連鎖または別様に構成され得るいくつかのアプリケーションサーバ、層、または他の要素、プロセスまたはコンポーネントが存在し得るということが理解されるべきである。本明細書において用いられる場合、「データストア」という用語は、任意の標準、分散化、またはクラスタ化環境において、任意の組み合わせ及び数のデータサーバ、データベース、データ記憶装置、及びデータ記憶媒体を含み得る、データの記憶、アクセス、及び読み出しが可能な任意のデバイスまたはデバイスの組み合わせを指す。アプリケーションサーバは、クライアントデバイスのための１つ以上のアプリケーションの態様を実行するために必要に応じてデータストアと統合するための、及びアプリケーションのための大部分のデータアクセス及びビジネスロジックを処理するための、任意の適切なハードウェア及びソフトウェアを含み得る。この例において、アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィック、音声及び／またはビデオなどのコンテンツを生成することができ、これらはウェブサーバによって、ＨＴＭＬ、ＸＭＬ、または別の適切な構造化言語の形式でユーザに提供され得る。クライアントデバイス９０２とアプリケーションサーバ９０８との間のすべての要求及び応答、ならびにコンテンツの送達の取り扱いは、ウェブサーバ９０６によって処理され得る。本明細書で論じられる構造化されたコードが、本明細書の他の箇所で論じられる任意の適切なデバイスまたはホスト機械上で実行され得るため、ウェブサーバ及びアプリケーションサーバは必須ではなく、単に例示のコンポーネントにすぎないことを理解されたい。
【００４５】
データストア９１０は、複数の別個のデータテーブル、データベースまたは他のデータ記憶機構、及び特定の態様に関するデータを記憶するための媒体を含み得る。例えば、説明されるデータストアは、生産データ９１２及びユーザ情報９１６を記憶する機構を含み、生産側にコンテンツを提供するために使用され得る。データストアはまた、ログまたはセッションデータ９１４を記憶するための機構が含まれるようにも示される。ページの画像情報及びアクセス権情報等、データストアに記憶する必要があり得る多数の他の態様が存在し得、これは、必要に応じて上に列挙された機構のいずれか、またはデータストア９１０内の追加の機構に記憶することができることを理解されたい。データストア９１０は、これと関連付けられた論理を通じて、アプリケーションサーバ９０８から命令を受け取り、これに応答して、データを取得、更新、または別様に処理するように動作可能である。一実施例において、ユーザは、ある特定の種類の項目についての検索要求を送信し得る。この場合、データストアは、ユーザ情報にアクセスして、ユーザの識別情報を検証することができ、カタログの詳細情報にアクセスして、その種類の物品についての情報を取得することができる。この情報は、次いで、ユーザがユーザデバイス９０２上のブラウザを介して見ることができるウェブページ上の結果一覧などで、ユーザに返され得る。関心のある特定の品目の情報が、ブラウザの専用ページまたはウィンドウで見ることができる。
【００４６】
それぞれのサーバが、典型的に、そのサーバの一般的な管理および動作のための実行可能なプログラム命令を提供するオペレーティングシステムを含み、サーバのプロセッサによって実行されると、サーバにその意図される機能を行わせる命令を記憶する、コンピュータ可読媒体を典型的に含み得る。サーバのオペレーティングシステム及び一般的な機能性の好適な実装は、既知であるかまたは市販入手可能であり、特に、本明細書の開示を踏まえて、当業者によって容易に実装可能である。
【００４７】
一実施形態における環境は、１つ以上のコンピュータネットワークまたは直接接続を使用し、通信リンクを介して相互接続された複数のコンピュータシステムおよび構成要素を利用する、分散型コンピューティング環境である。しかしながら、当業者であれば、そのようなシステムが、図９に説明されるコンポーネントよりも少ない数または多い数のコンポーネントを有するシステムにおいても同等にうまく動作し得ることを理解する。ゆえに、図９のシステム９００の描写は、本質的に例示とみなされるべきであり、本開示の範囲を制限するものではない。
【００４８】
本明細書において検討または提案されたさまざまな実施形態は、多種多様の動作環境において実装され得、これらは、ある場合には、いくつかのアプリケーションのうちのいずれかを動作するために使用され得る１つ以上のユーザコンピュータ、コンピューティングデバイス、またはプロセッシングデバイスを含み得る。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを起動させるデスクトップ型またはラップトップ型コンピュータ、ならびに、モバイルソフトウェアを起動させ、多数のネットワークおよびメッセージプロトコルをサポートすることが可能な携帯電話、無線、および携帯型デバイスなどの、あらゆる数の汎用パーソナルコンピュータを含み得る。このようなシステムは、開発およびデータベース管理等の目的のために、さまざまな市販のオペレーティングシステムおよび他の既知のアプリケーションのうちのいずれかを起動するいくつかのワークステーションも含み得る。これらのデバイスは、ダミーターミナル、シンクライアント、ゲーミングシステム、およびネットワークを介して通信することができる他のデバイス等の他の電子デバイスも含み得る。
【００４９】
ほとんどの実施形態が、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ、およびＡｐｐｌｅＴａｌｋなどの多様な市販入手可能なプロトコルのいずれかを使用して、通信をサポートするために、当業者によく知られているであろう少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびそれらの任意の組み合わせであり得る。
【００５０】
ウェブサーバを利用する実施形態においては、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、Ｊａｖａ（登録商標）サーバ、およびビジネスアプリケーションサーバを含む、あらゆる種類のサーバまたは中間層アプリケーションを起動させることができる。サーバ（複数を含む）は、例えば、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、もしくはＣ＋＋などの任意のプログラミング言語、またはＰｅｒｌ、Ｐｙｔｈｏｎ、もしくはＴＣＬ等の任意のスクリプト言語、ならびにそれらの組み合わせで書かれる１つ以上のスクリプトまたはプログラムとして実装され得る１つ以上のウェブアプリケーションを実行することによって、ユーザデバイスからの要求に応答してプログラムまたはスクリプトを実行することもでき得る。サーバ（複数を含む）は、制限なく、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、及びＩＢＭ（登録商標）から市販されているものを含むデータベースサーバも含み得る。
【００５１】
環境は、上述したように、さまざまなデータストアならびに他のメモリ及び記憶媒体を含み得る。これらは、さまざまな位置、例えば、コンピュータのうちの１つ以上にローカル（かつ／もしくはそこに存在する）、またはネットワーク上のコンピュータのうちのいくつかもしくはすべてからリモートの記憶媒体上に存在し得る。特定の組の実施形態において、情報は、当業者に熟知されたストレージエリアネットワーク（「ＳＡＮ」）内に存在してもよい。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を実行するために必要な任意のファイルを、必要に応じてローカルおよび／またはリモートで記憶することができる。システムがコンピュータ化されたデバイスを含む場合、かかるデバイスのそれぞれが、バスを介して電気的に結合され得るハードウェア要素を含み得、この要素は、例えば、少なくとも１つの中央処理装置（ＣＰＵ）、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド）、及び少なくとも１つの出力デバイス（例えば、表示デバイス、プリンタ、またはスピーカ）を含む。かかるシステムはまた、ディスクドライブ、光学式記憶装置、及びランダムアクセスメモリ（「ＲＡＭ」）または読み出し専用メモリ（「ＲＯＭ」）などのソリッドステート記憶装置などの１つ以上の記憶装置、ならびに取り外し可能な媒体デバイス、メモリカード、フラッシュカードなどをも含む。
【００５２】
かかるデバイスはまた、上述したように、コンピュータ可読記憶媒体リーダ、通信デバイス（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信デバイスなど）、及びワーキングメモリも含み得る。コンピュータ可読記憶媒体リーダは、コンピュータ可読記憶媒体と接続され得るか、またはコンピュータ可読記憶媒体を受容するよう構成され得、リモート、ローカル、固定、及び／または取り外し可能な記憶デバイス、ならびにコンピュータ可読情報を一時的及び／またはより恒久的に含有し、記憶し、伝送し、かつ読み出すための記憶媒体を表す。システム及び種々のデバイスはまた典型的に、いくつかのソフトウェアアプリケーション、モジュール、サービス、または例えばクライアントアプリケーションまたはウェブブラウザなどのオペレーティングシステム及びアプリケーションプログラムを含む、少なくとも１つのワーキングメモリデバイス内で見つけられる他の要素をも含み得る。代替の実施形態が、上述のものからの多数の変形を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアもまた用いられ得、及び／または特定の要素が、ハードウェア、ソフトウェア（アプレットなどの携帯型ソフトウェアを含む）、または両方に実装され得る。さらに、ネットワーク入力／出力デバイスなどの他のコンピューティングデバイスへの接続が採用され得る。
【００５３】
コード、またはコードの部分を含むための記憶媒体およびコンピュータ可読媒体は、例えば、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報の記憶および／または伝達のための任意の方法または技術において実装される、揮発性および不揮発性、取り外し可能および固定型媒体等であるがこれらに限定されない、記憶媒体および通信媒体を含む、当該技術分野で既知または使用されている任意の適切な媒体を含み得、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用可能であり、システムデバイスによってアクセス可能である任意の他の媒体を含む。本明細書に提供される開示および教示に基づいて、当業者であれば、さまざまな実施形態を実装する他の様式および／または方法を理解するであろう。
【００５４】
本明細書および図面は、したがって、限定的な意味ではなく、例示とみなされるものである。しかしながら、種々の修正および変更が、特許請求の範囲に記載される本発明のより広範な趣旨と範囲から逸脱することなく、そこになされ得ることは明らかであろう。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］コンピュータ実装方法であって、
実行可能命令で構成される、１つ以上のコンピュータシステムの制御下で、
キー及び値を指定する自由形式の文字列を含むタグをコンピューティングリソースと関連付けることと、
前記コンピューティングリソース上で動作を実行する要求を受け取ることと、
前記コンピューティングリソースを用いるための条件として前記タグを参照するアクセス制御ポリシーを評価することと、
前記アクセス制御ポリシーを評価し、かつ前記タグが前記コンピューティングリソースと関連付けられているかどうか判定することに少なくとも部分的に基づいて、前記動作を実行する前記要求を解決することと、を含む、コンピュータ実装方法。
［２］前記コンピューティングリソースが、
仮想マシンインスタンス、ホストコンピューティングデバイス、アプリケーション、記憶装置、データベース、複数の仮想マシンを含む仮想ネットワーク、またはインターフェースである、［１］に記載のコンピュータ実装方法。
［３］前記アクセス制御ポリシーが、ポリシー言語を用いて作成される、［１］に記載のコンピュータ実装方法。
［４］前記アクセス制御ポリシーが、ユーザと関連付けられ、かつ前記タグが前記リソースと関連付けられている場合、前記ユーザによって実行されることが許可される１つ以上の動作を識別する、［１］に記載のコンピュータ実装方法。
［５］前記要求を解決することが、
前記動作を実行する前記要求に関連するすべてのアクセス制御ポリシーを収集するようにと、
すべての前記アクセス制御ポリシーを評価して、前記動作を実行する権限を承諾または拒否するように構成される識別アクセス管理サービスによって実行され、評価することが、前記コンピューティングリソースと関連付けられた前記タグに少なくとも部分的に基づく、［１］に記載のコンピュータ実装方法。
［６］サービスプロバイダによって、前記サービスプロバイダの顧客に、前記コンピューティングリソースであって、マルチテナントの共有リソース環境において提供される前記コンピューティングリソースを提供することと、
アプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すことによって、前記顧客が前記タグを前記コンピューティングリソースに割り当てることを可能にすることと、をさらに含む、［１］に記載のコンピュータ実装方法。
［７］前記アクセス制御ポリシーが、ユーザ、ユーザ群、または少なくとも１つのコンピューティングリソース、のうちの少なくとも１つと関連付けられている、［１］に記載のコンピュータ実装方法。
［８］コンピューティングシステムであって、
少なくとも１つのプロセッサと、
メモリであって、前記少なくとも１つのプロセッサによって実行されると、前記コンピューティングシステムに、
１つ以上のタグを、少なくとも１つのコンピューティングリソースと関連付けることであって、前記１つ以上のタグのうちの少なくとも１つが、キー及び値を指定する自由形式の文字列を含む、関連付けることと、
前記少なくとも１つのコンピューティングリソース上で動作を実行する要求を受け取ることと、
動作を実行するための条件の少なくとも一部として前記１つ以上のタグを参照するアクセス制御ポリシーを評価することと、
前記アクセス制御ポリシーを評価することに少なくとも部分的に基づいて、前記動作を実行する前記要求を解決することと、を行わせる命令を含む、メモリと、を備える、コンピューティングシステム。
［９］前記少なくとも１つのコンピューティングリソースが、
仮想マシンインスタンス、データ記憶サービスに記憶されたデータ、アプリケーション、記憶装置、データベース、複数の仮想マシンを含む仮想ネットワーク、またはインターフェース、のうちの１つ以上をさらに含む、［８］に記載のコンピューティングシステム。
［１０］前記１つ以上のタグが、前記アクセス制御ポリシーを表現するために用いられ得るポリシー言語を用いることによって、前記条件で参照される、［８］に記載のコンピューティングシステム。
［１１］前記アクセス制御ポリシーが、ユーザと関連付けられ、かつ前記１つ以上のタグに少なくとも部分的に基づく前記条件が満たされた場合、前記ユーザによって実行されることが許可される１つ以上の動作を識別する、［８］に記載のコンピューティングシステム。
［１２］権限を制御することが、
前記動作を実行する前記要求に関連するすべてのアクセス制御ポリシーを収集するようにと、
すべての前記アクセス制御ポリシーを評価して、前記動作を実行する前記権限を承諾または拒否するように構成される識別アクセス管理サービスによって実行され、評価することが、前記少なくとも１つのコンピューティングリソースと関連付けられた前記１つ以上のタグに少なくとも部分的に基づく、［８］に記載のコンピューティングシステム。
［１３］前記アクセス制御ポリシーが、ユーザ、ユーザ群、または前記少なくとも１つのコンピューティングリソース、のうちの少なくとも１つと関連付けられている、［８］に記載のコンピューティングシステム。
［１４］前記少なくとも１つのプロセッサによって実行されると、前記コンピューティングシステムに、
サービスプロバイダによって、前記サービスプロバイダの顧客に、前記少なくとも１つのコンピューティングリソースであって、マルチテナントの共有リソース環境において提供される前記少なくとも１つのコンピューティングリソースを提供することと、
アプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出すことによって、前記顧客が、前記１つ以上のタグを前記少なくとも１つのコンピューティングリソースに割り当てることを可能にすることと、を行わせる命令を、前記メモリがさらに含む、［８］に記載のコンピューティングシステム。
［１５］前記少なくとも１つのプロセッサによって実行されると、前記コンピューティングシステムに、
ネットワーク上で顧客からの前記１つ以上のタグを関連付ける要求を受け取らせる命令を、前記メモリがさらに含み、前記要求が、対話型コンソールを介して受け取られる、［８］に記載のコンピューティングシステム。
【図１】
0006306055.tif 000002
【図２】
0006306055.tif 000003
【図３】
0006306055.tif 000004
【図４Ａ】
0006306055.tif 000005
【図４Ｂ】
0006306055.tif 000006
【図５】
0006306055.tif 000007
【図６】
0006306055.tif 000008
【図７】
0006306055.tif 000009
【図８】
0006306055.tif 000010
【図９】
0006306055.tif 000011