

# アイデンティティベースおよびリソースベースのポリシー
<a name="access_policies_identity-vs-resource"></a>

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

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

**リソースベースのポリシー**をリソースにアタッチします。例えば、リソースベースのポリシーをAmazon S3 バケット、Amazon SQS キュー、VPC エンドポイント、AWS Key Management Service 暗号化キー、Amazon DynamoDB テーブルとストリームにアタッチできます。リソースベースのポリシーをサポートするサービスのリストについては、「[IAM と連携する AWS のサービス](reference_aws-services-that-work-with-iam.md)」を参照してください。

リソースベースのポリシーによって、誰がリソースにアクセスでき、彼らがリソースでどのようなアクションを実行できるかを指定できます。信頼ゾーン (信頼できる組織またはアカウント) 外にあるアカウントのプリンシパルにロールを引き受けるアクセス権があるかどうかについては、「[IAM Access Analyzer とは](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)」を参照してください。リソースベースのポリシーはインラインのみで、管理ポリシーはありません。

**注記**  
*リソースベース*のポリシーは、*リソースレベル*のアクセス許可とは異なっています。リソースベースのポリシーは、このトピックで説明しているように、リソースに直接アタッチできます。リソースレベルのアクセス許可は、[ARN](reference_identifiers.md#identifiers-arns) を使用してポリシー内で個別のリソースを指定する機能のことです。リソースベースのポリシーは、一部の AWS サービスでのみサポートされます。リソースベースのポリシーおよびリソースレベルのアクセス許可をサポートするサービスのリストについては、「[IAM と連携する AWS のサービス](reference_aws-services-that-work-with-iam.md)」を参照してください。

ID ベースのポリシーとリソースベースのポリシーが同じアカウント内でどのように相互作用するかについては、「[単一のアカウント内のリクエストのポリシー評価](reference_policies_evaluation-logic_policy-eval-basics.md)」を参照してください

アカウント間でポリシーがどのようにやり取りされるかについては、[クロスアカウントポリシーの評価論理](reference_policies_evaluation-logic-cross-account.md)を参照してください。

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

![\[アイデンティティベースのポリシーとリソースベースのポリシー\]](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/Types_of_Permissions.diagram.png)


`123456789012` アカウントの例では、次のユーザーは、表示されたアクションを実行することができます。
+ **John** – John は、`Resource X` のアクションを表示して、読み取ることができます。ユーザーにはアイデンティティベースのポリシー、`Resource X` にはリソースベースのポリシーによってこのアクセス許可が付与されます。
+ **Carlos** – Carlos は、`Resource Y` のアクションの一覧表示、読み取り、書き込みを行うことができますが、`Resource Z` へのアクセスは拒否されています。Carlos のアイデンティティベースのポリシーでは、`Resource Y` のアクションの一覧表示および読み取りを行うことができます。`Resource Y` リソースベースのポリシーでは、アクセス許可の書き込みを行うことができます。ただし、アイデンティティベースのポリシーでは、`Resource Z` にアクセスすることができ、`Resource Z` リソースベースのポリシーでは、そのアクセスは拒否されます。明示的な `Deny` によって、`Allow` は上書きされ、`Resource Z` へのアクセスは拒否されます。詳細については、「[ポリシーの評価論理](reference_policies_evaluation-logic.md)」を参照してください。
+ **Mary** – Mary は、`Resource X`、`Resource Y`、および `Resource Z` のオペレーションの一覧表示、読み取り、および書き込みを行うことができます。Mary のアイデンティティベースのポリシーでは、リソースベースのポリシーよりも多くのリソースで追加のアクションを実行できますが、アクセスが拒否されることはありません。
+ **Zhang** – Zhang は、`Resource Z` に対する完全なアクセス許可が付与されています。Zhang にはアイデンティティベースのポリシーはありませんが、`Resource Z` リソースベースのポリシーでは、そのリソースにフルアクセスすることができます。Zhang は、`Resource Y` でリストアクションと読み取りアクションを実行することもできます。

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

**重要**  
このロジックは、リクエストが単一の AWS アカウント 内で行われた場合にのみ適用されます。あるアカウントから別のアカウントに行われるリクエストの場合、`Account A` のリクエスタには、`Account B` のリソースへのリクエストを許可するアイデンティティベースのポリシーが必要です。また、`Account B` のリソースベースのポリシーを使用して、`Account A` のリクエスタによるリソースへのアクセスを許可する必要があります。両方のアカウントに、オペレーションを許可するポリシーが必要です。それ以外の場合、リクエストは失敗します。クロスアカウントアクセスでリソースベースのポリシーを使用する方法の詳細については、「[IAM でのクロスアカウントのリソースへのアクセス](access_policies-cross-account-resource-access.md)」を参照してください。

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

**注記**  
Amazon S3 では、アイデンティティベースのポリシーとリソースベースのポリシー (*バケットポリシーと呼ばれます*) をサポートしています。さらに、Amazon S3 は、IAM ポリシーおよびアクセス許可から独立した、*アクセスコントロールリスト (ACL)* と呼ばれるアクセス許可メカニズムをサポートしています。IAM ポリシーは、Amazon S3 ACL と組み合わせて使用できます。Amazon S3 アクセス許可に関する詳細は、*Amazon Simple Storage Service ユーザーガイド*の「[Access Control](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingAuthAccess.html)」を参照してください。