Amazon DynamoDB 的操作、资源和条件键 - 服务授权参考
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon DynamoDB 的操作、资源和条件键

Amazon DynamoDB(服务前缀:dynamodb)提供以下服务特定的资源、操作和条件上下文键以在 IAM 权限策略中使用。

参考:

Amazon DynamoDB 定义的操作

您可以在 IAM 策略语句的 Action 元素中指定以下操作。可以使用策略授予在 Amazon中执行操作的权限。您在策略中使用一项操作时,通常使用相同的名称允许或拒绝对 API 操作或 CLI 命令的访问。但在某些情况下,单一动作可控制对多项操作的访问。还有某些操作需要多种不同的动作。

操作表的资源类型列指示每项操作是否支持资源级权限。如果该列没有任何值,您必须在策略语句的 Resource 元素中指定策略应用的所有资源(“*”)。通过在 IAM policy 中使用条件来筛选访问权限,以控制是否可以在资源或请求中使用特定标签键。如果操作具有一个或多个必需资源,则调用方必须具有使用这些资源来使用该操作的权限。必需资源在表中以星号 (*) 表示。如果您在 IAM policy 中使用 Resource 元素限制资源访问权限,则必须为每种必需的资源类型添加 ARN 或模式。某些操作支持多种资源类型。如果资源类型是可选的(未指示为必需),则可以选择使用一种可选资源类型。

操作表的条件键列包括可以在策略语句的 Condition 元素中指定的键。有关与服务资源关联的条件键的更多信息,请参阅资源类型表的条件键列。

注意

资源条件键在资源类型表中列出。您可以在操作表的资源类型(* 为必需)列中找到应用于某项操作的资源类型的链接。资源类型表中的资源类型包括条件密钥列,这是应用于操作表中操作的资源条件键。

有关下表中各列的详细信息,请参阅操作表

操作 描述 访问级别 资源类型(* 为必需) 条件键 相关操作
BatchGetItem 授予权限以从一个或多个表中返回一个或多个项目的属性 读取

table*

dynamodb:Attributes

dynamodb:LeadingKeys

dynamodb:ReturnConsumedCapacity

dynamodb:Select

BatchWriteItem 授予权限以将多个项目放入一个或多个表中或将其删除 写入

table*

dynamodb:Attributes

dynamodb:LeadingKeys

dynamodb:ReturnConsumedCapacity

ConditionCheckItem 授予 ConditionCheckItem 操作权限,检查具有给定主键的项目是否存在一组属性 读取

table*

dynamodb:Attributes

dynamodb:LeadingKeys

dynamodb:ReturnConsumedCapacity

dynamodb:ReturnValues

CreateBackup 授予权限以创建现有表的备份 写入

table*

CreateGlobalTable 授予权限以从现有表创建全局表 写入

global-table*

table*

CreateTable 授予 CreateTable 操作权限,为您的账户添加新表 写入

table*

CreateTableReplica [仅权限] 授予权限以添加新的副本表 写入

table*

DeleteBackup 授予权限以删除现有表的备份 写入

backup*

DeleteItem 授予按主键删除表中单个项目的权限 写入

table*

dynamodb:Attributes

dynamodb:EnclosingOperation

dynamodb:LeadingKeys

dynamodb:ReturnConsumedCapacity

dynamodb:ReturnValues

DeleteResourcePolicy 授予删除附加到资源的基于资源的策略的权限 权限管理

stream*

table*

DeleteTable 向删除表及其所有项目的 DeleteTable 操作授予权限 写入

table*

DeleteTableReplica [仅权限] 授予权限以删除副本表及其所有项目 写入

table*

DescribeBackup 授予权限以描述现有表的备份 读取

backup*

DescribeContinuousBackups 授予权限以检查指定表上的备份还原设置的状态 读取

table*

DescribeContributorInsights 授予权限以描述给定表或全局二级索引的 Contributor Insights 状态和相关详细信息 读取

table*

index

DescribeEndpoints 授予返回区域端点信息的权限 读取
DescribeExport 授予权限以描述现有表的导出 读取

export*

DescribeGlobalTable 授予返回指定全局表相关信息的权限 读取

global-table*

DescribeGlobalTableSettings 授予返回指定全局表相关设置信息的权限 读取

global-table*

DescribeImport 授予描述某个现有导入的权限 读取

import*

DescribeKinesisStreamingDestination 授予权限以授予描述给定表的 Kinesis 流式传输状态和相关详细信息的权限 读取

table*

DescribeLimits 授予权限以返回您在某个区域的当前预配置容量限制,包括整个区域以及您在 Amazon Web Services 账户 该区域创建的任何一个 DynamoDB 表的当前预配置容量限制 读取
DescribeReservedCapacity [仅权限] 授予权限以描述一个或多个购买的预留容量 读取
DescribeReservedCapacityOfferings [仅权限] 授予权限以描述可供购买的预留容量产品 读取
DescribeStream 授予权限以返回有关流的信息,包括流的当前状态、其 Amazon Resource Name (ARN)、其分片的构成及其相应的 DynamoDB 表 读取

stream*

DescribeTable 授予权限以返回有关表的信息 读取

table*

DescribeTableReplicaAutoScaling 授予权限以描述全局表的所有副本之间的弹性伸缩设置 读取

table*

DescribeTimeToLive 授予权限以给出指定表的存活时间 (TTL) 状态的描述 读取

table*

DisableKinesisStreamingDestination 授予权限以授予停止从 DynamoDB 表到 Kinesis 数据流的复制的权限 写入

table*

EnableKinesisStreamingDestination 授予权限以授予在启用工作流期间选择的时间戳启动将表数据复制到指定 Kinesis 数据流的权限 写入

table*

ExportTableToPointInTime 授予权限以启动将 DynamoDB 表到 S3 的导出过程 写入

table*

GetItem 授予 GetItem 操作权限,该操作返回具有给定主键的项目的一组属性 读取

table*

dynamodb:Attributes

dynamodb:EnclosingOperation

dynamodb:LeadingKeys

dynamodb:ReturnConsumedCapacity

dynamodb:Select

GetRecords 授予权限以检索给定分片中的流记录 读取

stream*

GetResourcePolicy 授予查看资源基于资源的策略的权限 读取

stream*

table*

GetShardIterator 授予返回分片迭代器的权限 读取

stream*

ImportTable 授予将某个导入从 S3 启动到某个 DynamoDB 表的权限 写入

table*

ListBackups 授予权限以列出与账户和终端节点关联的备份 列出
ListContributorInsights 授予列出与当前账户和终端节点关联的所有表和全局二级索引的权限 ContributorInsightsSummary 列出
ListExports 授予权限以列出与账户和终端节点关联的导出 列出
ListGlobalTables 授予权限以列出在指定区域中具有副本的所有全局表 列出
ListImports 授予列出与账户和端点关联的导入的权限 列出
ListStreams 授予权限以返回与当前账户和终端节点关联的流 ARN 的数组 读取
ListTables 授予权限以返回与当前账户和终端节点关联的表名称的数组 列出
ListTagsOfResource 授予权限以列出 Amazon DynamoDB 资源上的所有标签 读取

table*

PartiQLDelete 授予按主键删除表中单个项目的权限 Write

table*

dynamodb:Attributes

dynamodb:EnclosingOperation

dynamodb:LeadingKeys

dynamodb:ReturnValues

PartiQLInsert 授予在表中不存在具有相同主键的项目时创建新项目的权限 Write

table*

dynamodb:Attributes

dynamodb:EnclosingOperation

dynamodb:LeadingKeys

PartiQLSelect 授予读取表或索引中项目的一组属性的权限 Read

table*

index

dynamodb:Attributes

dynamodb:EnclosingOperation

dynamodb:FullTableScan

dynamodb:LeadingKeys

dynamodb:Select

PartiQLUpdate 授予编辑现有项目属性的权限 写入

table*

dynamodb:Attributes

dynamodb:EnclosingOperation

dynamodb:LeadingKeys

dynamodb:ReturnValues

PurchaseReservedCapacityOfferings [仅权限] 授予权限以购买预留容量用于您的账户 写入
PutItem 授予权限以创建新项目,或将旧项目替换为新项目 写入

table*

dynamodb:Attributes

dynamodb:EnclosingOperation

dynamodb:LeadingKeys

dynamodb:ReturnConsumedCapacity

dynamodb:ReturnValues

PutResourcePolicy 授予将基于资源的策略附加到资源的权限 权限管理

stream*

table*

Query 授予权限以使用表的主键或二级索引直接访问该表或索引中的项目 读取

table*

index

dynamodb:Attributes

dynamodb:LeadingKeys

dynamodb:ReturnConsumedCapacity

dynamodb:ReturnValues

dynamodb:Select

RestoreTableFromAwsBackup [仅权限] 授予从 B Amazon ackup 上的恢复点创建新表的权限 写入

table*

RestoreTableFromBackup 授予权限以从现有备份中创建新表 写入

backup*

dynamodb:BatchWriteItem

dynamodb:DeleteItem

dynamodb:GetItem

dynamodb:PutItem

dynamodb:Query

dynamodb:Scan

dynamodb:UpdateItem

table*

RestoreTableToPointInTime 授予权限以将表还原到某个时间点 写入

table*

dynamodb:BatchWriteItem

dynamodb:DeleteItem

dynamodb:GetItem

dynamodb:PutItem

dynamodb:Query

dynamodb:Scan

dynamodb:UpdateItem

Scan 授予权限以通过访问表或者二级索引中的每个项目,返回一个或多个项目和项目属性 读取

table*

index

dynamodb:Attributes

dynamodb:ReturnConsumedCapacity

dynamodb:ReturnValues

dynamodb:Select

StartAwsBackupJob [仅权限] 授予在启用高级功能的情况下在 Bac Amazon kup 上创建备份的权限 写入

table*

TagResource 授予权限以将一组标签与 Amazon DynamoDB 资源关联 标记

table*

UntagResource 授予权限从 Amazon DynamoDB 资源中删除标签的关联 标记

table*

UpdateContinuousBackups 授予权限以启用或禁用连续备份 写入

table*

UpdateContributorInsights 授予权限以更新特定表或全局二级索引的 Contributor Insights 状态 写入

table*

index

UpdateGlobalTable 授予权限以在指定的全局表中添加或删除副本 写入

global-table*

table*

UpdateGlobalTableSettings 授予更新指定全局表的设置的权限 写入

global-table*

table*

UpdateGlobalTableVersion [仅权限] 授予更新指定全局表的版本的权限 写入

global-table*

table

UpdateItem 授予权限以编辑现有项目的属性,或者将新项目添加到表中(如果它不存在) 写入

table*

dynamodb:Attributes

dynamodb:EnclosingOperation

dynamodb:LeadingKeys

dynamodb:ReturnConsumedCapacity

dynamodb:ReturnValues

UpdateKinesisStreamingDestination 授予更新指定 Kinesis 数据流的数据复制配置的权限 写入

table*

UpdateTable 授予权限以修改给定表的预置吞吐量设置、全局二级索引或 DynamoDB Streams 设置 写入

table*

UpdateTableReplicaAutoScaling 授予权限以更新副本表上的自动伸缩设置 写入

table*

UpdateTimeToLive 授予权限以为指定表启用或禁用 TTL 写入

table*

Amazon DynamoDB 定义的资源类型

以下资源类型是由该服务定义的,可以在 IAM 权限策略语句的 Resource 元素中使用这些资源类型。操作表中的每个操作指定了可以使用该操作指定的资源类型。您也可以在策略中包含条件键,从而定义资源类型。这些键显示在资源类型表的最后一列。有关下表中各列的详细信息,请参阅资源类型表

资源类型 ARN 条件键
index arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/index/${IndexName}
stream arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/stream/${StreamLabel}
table arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}
backup arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/backup/${BackupName}
export arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/export/${ExportName}
global-table arn:${Partition}:dynamodb::${Account}:global-table/${GlobalTableName}
import arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/import/${ImportName}

Amazon DynamoDB 的条件键

Amazon DynamoDB 定义了以下可以在 IAM policy 的 Condition 元素中使用的条件键。您可以使用这些键进一步细化应用策略语句的条件。有关下表中各列的详细信息,请参阅条件键表

要查看适用于所有服务的全局条件键,请参阅可用的全局条件键

注意

有关如何使用上下文键通过 IAM policy 优化 DynamoDB 访问的信息,请参阅《Amazon DynamoDB 开发人员指南》中的使用 IAM policy 条件实现精细访问控制

条件键 描述 类型
dynamodb:Attributes 通过表的属性(字段或列)名称筛选访问权限 ArrayOfString
dynamodb:EnclosingOperation 通过阻止事务 API 调用来筛选访问权限,并允许非事务 API 调用,反之亦然 字符串
dynamodb:FullTableScan 通过阻止全表扫描筛选访问权限 布尔型
dynamodb:LeadingKeys 根据表的分区键筛选访问权限 ArrayOfString
dynamodb:ReturnConsumedCapacity 按请求的 ReturnConsumedCapacity 参数筛选访问权限。包含“TOTAL”或“NONE” 字符串
dynamodb:ReturnValues 按请求 ReturnValues 参数筛选访问权限。包含下列项之一:“ALL_OLD”、“UPDATED_OLD”、“ALL_NEW”、“UPDATED_NEW”或“NONE” 字符串
dynamodb:Select 根据 Query 或 Scan 请求的 Select 参数筛选访问权限 字符串