将 IAM 安全策略与 PartiQL for DynamoDB 结合使用 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 IAM 安全策略与 PartiQL for DynamoDB 结合使用

需要以下权限:

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

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

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

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

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

下面的 IAM policy 授予对表运行所有 PartiQL for 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 for DynamoDB select 语句

下面的 IAM policy 授予在特定表运行 select 语句的权限。

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

示例:允许在索引上运行 PartiQL for DynamoDB insert 语句

下面的 IAM policy 授予在特定索引运行 insert 语句的权限。

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

示例:仅允许表上运行 PartiQL for DynamoDB 语句

下面的 IAM policy 授予在特定表运行事务语句的权限。

{ "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 for DynamoDB 非事务性读取和写入,阻止表上的 PartiQL 事务性读取和写入事务性语句。

下面的 IAM policy 授予运行 PartiQL for DynamoDB 非事务性读取和写入的权限,同时阻止 PartiQL for 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" ] } ] }

示例:允许 Select 语句并拒绝 PartiQL for DynamoDB 的完整表扫描语句

下面的 IAM policy 授予在特定表运行 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" ] } ] }