

# 使用基于 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` 语句。