AppSync BatchResolver AssumeRole 错误

Eri*_*ins 4 amazon-dynamodb amazon-iam aws-appsync

我正在尝试使用新的 DynamoDB BatchResolvers 写入 AppSync 解析器中的两个 DynamoDB 表(当前使用 Lambda 函数来执行此操作)。但是,在查看 CloudWatch 日志时,我收到以下权限错误:

“User: arn:aws:sts::111111111111:assumed-role/appsync-datasource-ddb-xxxxxx-TABLE-ONE/APPSYNC_ASSUME_ROLE is not authorized to perform: dynamodb:BatchWriteItem on resource: arn:aws:dynamodb:us-east-1:111111111111:table/TABLE-TWO (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: AccessDeniedException;

TABLE-ONE在解析器中用作数据源。

我添加了"dynamodb:BatchWriteItem""dynamodb:BatchGetItem"toTABLE-ONE的权限:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem" ], "Resource": [ "arn:aws:dynamodb:us-east-1:111111111111:table/TABLE-ONE", "arn:aws:dynamodb:us-east-1:111111111111:table/TABLE-ONE/*", "arn:aws:dynamodb:us-east-1:111111111111:table/TABLE-TWO", "arn:aws:dynamodb:us-east-1:111111111111:table/TABLE-TWO/*" ] } ] }

我有另一个使用该BatchGetItem操作的解析器,并在我的响应中获取空值 - 更改表的策略访问级别修复了空值: 在此处输入图片说明

但是,选中该框BatchWriteItem似乎并不能解决将权限添加到数据源表的策略的问题。

我还在 AppSync 中测试了我的解析器测试功能,评估的请求和响应按预期工作。

我还能在哪里为两个表之间的 BatchWriteItem 操作设置权限?似乎它正在调用用户assumed-role而不是表的角色 - 我可以“强制”它使用表的角色吗?

Ion*_*ian 5

它使用您在 AppSync 控制台中为表配置的角色。请注意,该特定角色应将 appsync 作为受信任的实体。在此处输入图片说明

或者如果您在控制台中创建数据源时使用新角色复选框,它应该照顾它。