适用于 PartiQL 的使用 DynamoDB 的 IAM 安全策略 - Amazon DynamoDB
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

适用于 PartiQL 的使用 DynamoDB 的 IAM 安全策略

需要以下权限:

  • 要使用 PartiQL 读取 DynamoDB 的项目,您必须对表或索引具有 dynamodb:PartiQLSelect 权限。

  • 要使用适用于 PartiQL 的 DynamoDB 插入项目,您必须对表或索引具有 dynamodb:PartiQLInsert 权限。

  • 要使用适用于 PartiQL 的 DynamoDB 更新项目,您必须对表或索引具有 dynamodb:PartiQLUpdate 权限。

  • 要使用适用于 PartiQL 的 DynamoDB 删除项目,您必须对表或索引具有 dynamodb:PartiQLDelete 权限。

例如:允许表上所有 PartiQL 语句的 DynamoDB (Select/Insert/Update/Delete)

以下 IAM 策略授予对表运行 PartiQL 语句的所有 DynamoDB 的权限。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "dynamodb:PartiQLInsert", "dynamodb:PartiQLUpdate", "dynamodb:PartiQLDelete", "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music" ] } ] }

例如:允许对表执行 PartiQL select 语句使用DynamoDB

以下 IAM 策略授予在特定表上运行 select 语句的权限。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music" ] } ] }

例如:允许 PartiQL 在索引上插入语句DynamoDB

以下 IAM 策略授予在特定索引上运行 insert 语句的权限。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "dynamodb:PartiQLInsert" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music/index/index1" ] } ] }

例如:仅允许表上的 PartiQL 事务语句的DynamoDB

以下 IAM 策略仅授予在特定表上运行事务语句的权限。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "dynamodb:PartiQLInsert", "dynamodb:PartiQLUpdate", "dynamodb:PartiQLDelete", "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music" ], "Condition":{ "StringEquals":{ "dynamodb:EnclosingOperation":[ "ExecuteTransaction" ] } } } ] }

例如:允许 PartiQL 非事务读取和写入,并阻止对表执行的 DynamoDB 事务读取和写入事务语句。PartiQL

以下 IAM 策略为 PartiQL 非事务读取和写入授予运行 DynamoDB 的权限,同时为 PartiQL 事务读取和写入阻止 DynamoDB。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Deny", "Action":[ "dynamodb:PartiQLInsert", "dynamodb:PartiQLUpdate", "dynamodb:PartiQLDelete", "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music" ], "Condition":{ "StringEquals":{ "dynamodb:EnclosingOperation":[ "ExecuteTransaction" ] } } }, { "Effect":"Allow", "Action":[ "dynamodb:PartiQLInsert", "dynamodb:PartiQLUpdate", "dynamodb:PartiQLDelete", "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music" ] } ] }

例如:在 PartiQL 中为 DynamoDB 允许 Select 语句并拒绝完整表扫描语句

以下 IAM 策略授予对特定表运行 select 语句的权限,同时阻止导致完全扫描表的 select 语句。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Deny", "Action":[ "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/WatchList" ], "Condition":{ "Bool":{ "dynamodb:FullTableScan":[ "true" ] } } }, { "Effect":"Allow", "Action":[ "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/WatchList" ] } ] }