将基于资源的策略附加到流 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将基于资源的策略附加到流

您可以使用 DynamoDB 控制台、PutResourcePolicy API、Amazon CLI、Amazon SDK 或 Amazon CloudFormation 模板将基于资源的策略附加到现有表的流中或修改现有策略。

注意

在使用 CreateTableUpdateTable API 创建流时,您无法将策略附加到该流。但是,您可以在删除表之后修改或删除策略。您也可以修改或删除已禁用流的策略。

以下 IAM 策略示例使用 put-resource-policy Amazon CLI 命令将基于资源的策略附加到名为 MusicCollection 的表的流中。此示例允许用户 John 对流执行 GetRecordsGetShardIteratorDescribeStream API 操作。

切记用特定资源信息替换斜体文本。

aws dynamodb put-resource-policy \ --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492 \ --policy \ "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::111122223333:user/John\" }, \"Action\": [ \"dynamodb:GetRecords\", \"dynamodb:GetShardIterator\", \"dynamodb:DescribeStream\" ], \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492\" } ] }"
  1. 登录 Amazon Web Services Management Console,并打开 DynamoDB 控制台:https://console.aws.amazon.com/dynamodb/

  2. 在 DynamoDB 控制台控制面板上,选择,然后选择现有表。

    确保您选择的表已开启流。有关为表开启流的信息,请参阅启用流

  3. 选择权限选项卡。

  4. 活跃流的基于资源的策略中,选择创建流策略

  5. 基于资源的策略编辑器中,添加策略来定义流的访问权限。在此策略中,您可以指定谁有权访问流,以及允许他们对流执行的操作。要添加策略,请执行以下操作之一:

    • 键入或粘贴一个 JSON 策略文档。有关 IAM 策略语言的详细信息,请参阅《IAM 用户指南》中的使用 JSON 编辑器创建策略

      提示

      要查看《Amazon DynamoDB 开发人员指南》中基于资源的策略示例,请选择策略示例

    • 选择添加语句来添加新的语句并在提供的字段中输入信息。对所有您想添加的语句重复执行此步骤。

    重要

    确保在保存策略之前解决任何安全警告、错误或建议。

  6. (可选)选择右下角的预览外部访问,以预览新策略如何影响对资源的公有和跨账户访问。在保存策略之前,您可以检查策略是引入了新的 IAM Access Analyzer 发现结果还是解析了现有的发现结果。如果您没有看到活动的分析器,请在 IAM Access Analyzer 中选择转至 Access Analyzer创建账户分析器。有关更多信息,请参阅预览访问

  7. 选择创建策略

以下 IAM 策略示例将基于资源的策略附加到名为 MusicCollection 的表的流中。此示例允许用户 John 对流执行 GetRecordsGetShardIteratorDescribeStream API 操作。

切记用特定资源信息替换斜体文本。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/John" }, "Action": [ "dynamodb:GetRecords", "dynamodb:GetShardIterator", "dynamodb:DescribeStream" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492" ] } ] }