我有一个使用Kinesis Client Library(KCL)编写的Kinesis使用者。该使用者正在承担IAM角色。
我已经从documentation中读取了:
KCL使用应用程序名称创建DynamoDB表,并使用该表维护应用程序的状态信息(例如,检查点和工作区-碎片映射)。每个应用程序都有自己的DynamoDB表。有关更多信息,请参阅跟踪Amazon Kinesis数据流应用程序状态。
当然,我需要向我的IAM角色添加dynamodb:CreateTable
权限。但是,我在其他方面遇到错误(例如dynamodb:DescribeTable
)。
我的KCL使用者需要访问所有DynamoDB操作的列表吗?似乎缺少文档,我希望有一个权威列表而不是继续尝试运行我的应用程序。
这应该是您所需的权限集。表名由客户端代码提供,默认为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/*"]]