AppSync BatchResolver AssumeRole错误

时间:2018-04-26 21:49:21

标签: 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"TABLE-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操作的解析程序,并在我的响应中获取空值 - 更改表的策略访问级别修复了空值: enter image description here

但是,选中BatchWriteItem的复选框似乎无法解决向数据源表的策略添加权限的问题。

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

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

1 个答案:

答案 0 :(得分:4)

它正在使用您在AppSync控制台中为表配置的角色。请注意,该特定角色应将appsync作为可信实体。 enter image description here

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