

# IAM アイデンティティベースのポリシーと DynamoDB リソースベースのポリシーによる認可
<a name="rbac-auth-iam-id-based-policies-DDB"></a>

**アイデンティティベースのポリシー**はアイデンティティ (IAM ユーザー、ユーザーグループ、ロールなど) にアタッチされます。これらは、アイデンティティが実行できるアクション、実行対象となるリソース、実行条件を制御する IAM ポリシードキュメントです。アイデンティティベースのポリシーには、[管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)ポリシーまたは[インライン](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies)ポリシーがあります。

**リソースベースのポリシー**は、リソース (DynamoDB テーブルなど) にアタッチする IAM ポリシードキュメントです。これらのポリシーでは、そのリソースに対して特定のアクションを実行するために指定されたプリンシパルのアクセス許可を付与するとともに、このアクセス許可が適用される条件を定義します。例えば、DynamoDB テーブルのリソースベースのポリシーには、そのテーブルに関連付けられたインデックスも含まれます。リソースベースのポリシーはインラインポリシーです。マネージド型のリソースベースのポリシーはありません。

これらのポリシーの詳細については、「IAM ユーザーガイド**」の「[アイデンティティベースおよびリソースベースのポリシー」](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)を参照してください。

IAM プリンシパルがリソース所有者と同じアカウントに属している場合、そのリソースへのアクセス権限の指定には、リソースベースのポリシーで事足ります。さらに、IAM アイデンティティベースのポリシーをリソースベースのポリシーと併せて用意しておくこともできます。クロスアカウントアクセスの場合は、アイデンティティポリシーとリソースポリシーの両方でアクセスを明示的に許可する必要があります。詳細については、「[DynamoDB でリソースベースのポリシーを使用したクロスアカウントアクセス](rbac-cross-account-access.md)」に記載されています。両タイプのポリシーを併用する場合、「[アカウント内でのリクエストの許可または拒否の決定](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow)」の解説通りにポリシーが評価されます。

**重要**  
アイデンティティベースのポリシーが DynamoDB テーブルへの無条件アクセス (条件なしの `dynamodb:GetItem` など) を許可する場合、`dynamodb:Attributes` への条件付きアクセスを許可するリソースベースのポリシーは、そのアクセスを制限しません。アイデンティティベースのポリシーの無条件許可が優先され、リソースベースのポリシーの条件は制限として適用されません。特定の属性へのアクセスを制限するには、リソースベースのポリシーの条件付き `Deny` ステートメントのみに依存するのではなく、明示的な `Allow` ステートメントを使用します。