

# DynamoDB 基于资源的策略注意事项
<a name="rbac-considerations"></a>

在为 DynamoDB 资源定义基于资源的策略时，请注意以下几点：

**一般注意事项**
+ 基于资源的策略文档支持的最大大小为 20 KB。在计算策略大小时，DynamoDB 会将空格计入这一限制。
+ 成功更新给定资源的策略后，将在 15 秒内阻止对同一资源的策略进行后续更新。
+ 目前，您只能将基于资源的策略附加到现有流。在创建流时，您无法将策略附加到该流。

**全局表注意事项**
+ 基于资源的策略不适用于[全局表版本 2017.11.29（旧版）](globaltables_HowItWorks.md)副本。
+ 在基于资源的策略中，如果 DynamoDB 服务相关角色（SLR）为全局表复制数据的操作遭拒绝，则添加或删除副本将失败并显示错误。
+ [AWS:: DynamoDB:: GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) 资源不支持在部署堆栈更新的区域以外的区域中创建副本并向该副本添加基于资源的策略。

**跨账户注意事项**
+ 使用基于资源的策略进行跨账户访问不支持使用 AWS 托管密钥的加密表，因为您无法授予对 AWS 托管 KMS 策略的跨账户访问权限。

**CloudFormation 注意事项**
+ 基于资源的策略不支持[偏差检测](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#)。如果您在 AWS CloudFormation 堆栈模板之外更新基于资源的策略，则需要使用更改更新 CloudFormation 堆栈。
+ 基于资源的策略不支持带外更改。如果您在 CloudFormation 模板之外添加、更新或删除策略，当模板中的策略没有更改时，此更改不会被覆盖。

  例如，假设您的模板包含基于资源的策略，您稍后在模板之外对其进行更新。如果您未对模板中的策略进行任何更改，则 DynamoDB 中更新的策略将不会与模板中的策略同步。

  相反，假设您的模板不包含基于资源的策略，但您在模板之外添加策略。只要您不将此策略添加到模板中，就不会将其从 DynamoDB 中删除。当您将策略添加到模板并更新堆栈时，DynamoDB 中的现有策略将更新为与模板中定义的策略相匹配。