仅授予 DynamoDB 流的读取访问权限的 IAM 策略(不适用于表)
当您对表启用 DynamoDB Streams 时,将捕获有关对表中的数据项目进行的每项修改的信息。有关更多信息,请参阅 将更改数据捕获用于 DynamoDB Streams。
在某些情况下,您可能需要阻止应用程序从 DynamoDB 表中读取数据,同时仍允许访问该表的流。例如,您可以配置 AWS Lambda 以在检测到项目更新时轮询流并调用 Lambda 函数,然后再执行其他处理。
您可以通过执行以下操作来控制对 DynamoDB streams 的访问:
-
dynamodb:DescribeStream
-
dynamodb:GetRecords
-
dynamodb:GetShardIterator
-
dynamodb:ListStreams
下面的示例策略向用户授予权限以便其访问名为 GameScores
的表中的流。ARN 中的通配符 (*) 用于匹配与该表关联的所有流。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessGameScoresStreamOnly", "Effect": "Allow", "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator", "dynamodb:ListStreams" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/stream/*" } ] }
请注意,此策略允许访问 GameScores
表流,但不允许访问该表本身。