AWS用户使用" AmazonDynamoDBFullAccess"得到"用户无权执行:dynamodb:PutItem on resource"

时间:2018-02-11 08:45:17

标签: amazon-web-services aws-lambda amazon-dynamodb

每个帖子"用户无权执行:dynamodb:PutItem on resource"来自亚马逊的 lambda 会导致相同的重复陈述的答案以及在应用以下修复后的大量欢快回复:

  

为分配给Lambda函数的IAM角色添加适当的权限。

显然这还不够:

"调用PutItem操作时发生错误(AccessDeniedException):User:arn:aws:sts :: 759832573084:assume-role / operator / get-orders无权执行:dynamodb:PutItem on resource :arn:aws:dynamodb:ap-southeast-2:759832573084:table / queue"

我认为分配给Lambda函数的IAM角色是用户'运营商',他有:

  • AWSLambdaFullAccess
  • AmazonDynamoDBFullAccess
  • AWSLambdaDynamoDBExecutionRole
  • AmazonDynamoDBFullAccesswithDataPipeline

正如您所看到的那样,我供应过剩'运营商'用户权限以克服这个问题。

我检查过的其他事情是:

  • 该错误可在AWS控制台的lambda调试器
  • 中重现
  • 表'队列'具有与错误消息中所述相同的Amazon资源名称。
  • Lambda与dynamodb表在同一地区(亚太地区2)创建。
  • lambda文档提到,为了对表进行微调权限,它的主键必须是一个字符串,所以我改变了我的表' queue'字符串的主键。没有帮助。

不要认为它是相关的,但lambda中使用的语言是Python 3.6

0 个答案:

没有答案