首页 > 解决方案 > Kinesis 使用者在使用 KCL 时需要哪些 IAM 权限?

问题描述

我有一个使用 Kinesis Client Library (KCL) 编写的 Kinesis 消费者。此使用者在假定的 IAM 角色下运行。

我从文档中读到:

KCL 使用应用程序名称创建一个 DynamoDB 表,并使用该表来维护应用程序的状态信息(例如检查点和工作分片映射)。每个应用程序都有自己的 DynamoDB 表。有关更多信息,请参阅跟踪 Amazon Kinesis Data Streams 应用程序状态。

当然,我需要将dynamodb:CreateTable权限添加到我的 IAM 角色。但是,我在其他方面遇到了错误(例如dynamodb:DescribeTable)。

是否有我的 KCL 使用者需要访问的所有 DynamoDB 操作的列表?似乎缺少文档,我宁愿拥有一个权威列表,也不愿继续尝试运行我的应用程序。

标签: amazon-web-servicesamazon-dynamodbamazon-kinesisamazon-kcl

解决方案


这应该是您需要的一组权限。表名由客户端代码提供,默认为appName但可以在ConfigsBuilder:

          - Effect: Allow
            Action:
              - dynamodb:CreateTable
              - dynamodb:DescribeTable
              - dynamodb:Scan
              - dynamodb:PutItem
              - dynamodb:GetItem
              - dynamodb:UpdateItem
              - dynamodb:DeleteItem
            Resource:
              - !Join ["", ["arn:aws:dynamodb:*:", !Ref 'AWS::AccountId', ":table/*"]]

推荐阅读