AWS Identity and Access Management
ユーザーガイド

アイデンティティベースおよびリソースベースのポリシー

ポリシーは AWS のオブジェクトであり、ID やリソースに関連付けて、これらのアクセス許可を定義します。アクセス許可ポリシーを作成してリソースへのアクセスを制限する場合、アイデンティティベースのポリシーまたはリソースベースのポリシーを選択できます。

アイデンティティベースのポリシーは、IAM ユーザー、グループ、ロールにアタッチされます。これらのポリシーを使用すると、そのアイデンティティが実行できる内容 (そのアクセス許可) を指定できます。たとえば、John という名前の IAM ユーザーに Amazon EC2 RunInstances アクションを実行することを許可するポリシーをアタッチできます。このポリシーでは、John は、MyCompany という名前の Amazon DynamoDB テーブルからアイテムを取得することもできます。また、John は、自分の IAM セキュリティ認証情報を管理することもできます。ID ベースのポリシーは管理またはインラインとすることができます。

リソースベースのポリシーをリソースにアタッチします。たとえば、リソースベースのポリシーを Amazon S3 バケット、Amazon SQS キュー、AWS Key Management Service 暗号化キーにアタッチすることができます。リソースベースのポリシーをサポートするサービスのリストについては、「IAM と連携する AWS のサービス」を参照してください。リソースベースのポリシーによって、誰がリソースにアクセスでき、彼らがリソースでどのようなアクションを実行できるかを指定できます。リソースベースのポリシーはインラインのみで、管理ポリシーはありません。

注記

リソースベースのポリシーは、リソースレベルのアクセス許可とは異なっています。リソースベースのポリシーは、このトピックで説明しているように、リソースに直接アタッチできます。リソースレベルのアクセス許可は、ARN を使用してポリシー内で個別のリソースを指定する機能のことです。リソースベースのポリシーは、一部の AWS サービスでのみサポートされます。リソースベースのポリシーおよびリソースレベルのアクセス許可をサポートするサービスのリストについては、「IAM と連携する AWS のサービス」を参照してください。

これらの概念を深く理解するには、以下の図を確認します。123456789012 アカウントの管理者は、アイデンティティベースのポリシーJohnSmithCarlosSalazar、および MaryMajor ユーザーにアタッチしました。これらのポリシーのアクションの一部は、特定のリソースで実行できます。たとえば、ユーザー JohnSmith は、一部のアクションを Resource X で実行できます。これは、アイデンティティベースのポリシーのリソースレベルのアクセス許可です。また、管理者は、リソースベースのポリシーResource XResource Y、および Resource Z に追加しました。リソースベースのポリシーでは、リソースにアクセスできるユーザーを指定することができます。たとえば、Resource X のリソースベースのポリシーでは、JohnSmith および MaryMajor ユーザーは、リソースへのアクセス権を表示し、読み取ることができます。


         アイデンティティベースのポリシーとリソースベースのポリシー

123456789012 アカウントの例では、次のユーザーは、表示されたアクションを実行することができます。

  • JohnSmith – John は、Resource X のアクションを表示して、読み取ることができます。ユーザーにはアイデンティティベースのポリシー、Resource X にはリソースベースのポリシーによってこのアクセス許可が付与されます。

  • CarlosSalazar – Carlos は、Resource Y のアクションの一覧表示、読み取り、書き込みを行うことができますが、Resource Z へのアクセスは拒否されています。Carlos のアイデンティティベースのポリシーでは、Resource Y のアクションの一覧表示および読み取りを行うことができます。Resource Y リソースベースのポリシーでは、アクセス許可の書き込みを行うことができます。ただし、アイデンティティベースのポリシーでは、Resource Z にアクセスすることができ、Resource Z リソースベースのポリシーでは、そのアクセスは拒否されます。明示的な Deny によって、Allow は上書きされ、Resource Z へのアクセスは拒否されます。詳細については、「ポリシーの評価論理」を参照してください。

  • MaryMajor – Mary は、Resource XResource Y、および Resource Z のオペレーションの一覧表示、読み取り、および書き込みを行うことができます。Mary のアイデンティティベースのポリシーでは、リソースベースのポリシーよりも多くのリソースで追加のアクションを実行できますが、アクセスが拒否されることはありません。

  • ZhangWei – Zhang は、Resource Z に対する完全なアクセス許可が付与されています。Zhang にはアイデンティティベースのポリシーはありませんが、Resource Z リソースベースのポリシーでは、そのリソースにフルアクセスすることができます。

アイデンティティベースのポリシーとリソースベースのポリシーはいずれも、アクセス許可ポリシーであり、一緒に評価されます。アクセス許可ポリシーのみが適用されるリクエストの場合、AWS はすべてのポリシーで Deny がないかチェックします。存在する場合、リクエストは拒否されます。AWS によって、それぞれの Allow がないかどうか確認されます。1 つ以上のポリシーステートメントで、リクエストのアクションが許可されている場合、そのリクエストは許可されます。Allow がアイデンティティベースのポリシーか、リソースベースのポリシーであるかは関係ありません。

重要

このロジックは、リクエストが単一の AWS アカウント内で行われた場合にのみ適用されます。あるアカウントから別のアカウントに行われるリクエストの場合、Account A のリクエスタには、Account B のリソースへのリクエストを許可するアイデンティティベースのポリシーが必要です。また、Account B のリソースベースのポリシーを使用して、Account A のリクエスタによるリソースへのアクセスを許可する必要があります。両方のアカウントのポリシーでオペレーションが許可されていない場合、リクエストは失敗します。クロスアカウントアクセスでリソースベースのポリシーを使用する方法の詳細については、「IAM ロールとリソースベースのポリシーとの相違点」を参照してください。

特定のアクセス許可を持つユーザーが、アクセス許可ポリシーが関連付けられたリソースを要求する場合があります。このような場合、AWS がリソースへのアクセスを許可するかどうかを判断する際、両方のアクセス許可セットが評価されます。ポリシーの評価方法に関する詳細については、「ポリシーの評価論理」を参照してください。

注記

Amazon S3 では、アイデンティティベースのポリシーとリソースベースのポリシー (バケットポリシーと呼ばれます) をサポートしています。さらに、Amazon S3 は、IAM ポリシーおよびアクセス許可から独立した、アクセスコントロールリスト (ACL) と呼ばれるアクセス許可メカニズムをサポートしています。IAM ポリシーは、Amazon S3 ACL と組み合わせて使用できます。詳細については、『Amazon Simple Storage Service 開発者ガイド』の「アクセスコントロール」を参照してください。