Lambda 和 DynamoDB:无权执行:dynamodb:Scan
Posted
技术标签:
【中文标题】Lambda 和 DynamoDB:无权执行:dynamodb:Scan【英文标题】:Lambda and DynamoDB : is not authorized to perform: dynamodb:Scan 【发布时间】:2017-07-24 23:24:38 【问题描述】:在我将 API 部署到 lambda 后,我使用无服务器创建了我的 API,我们尝试通过 GatewayAPI 中的“测试”按钮测试端点,我收到错误:
“用户:arn:aws:sts::245912153055:assumed-role/pets-service-dev-us-east-1-lambdaRole/pets-service-dev-listPets 无权执行:dynamodb:Scan on资源:arn:aws:dynamodb:us-east-1:245912153055:table/Pets"
我可能需要向 Lambda 授予权限,但我有点迷茫......
【问题讨论】:
你的问题到底是什么? 向分配给 Lambda 函数的 IAM 角色添加适当的权限。 我不知道该怎么做,我是 AWS 新手,是在 lambda 配置上吗? 【参考方案1】:如前所述,您需要将权限添加到无服务器定义中。
有关此主题的文档非常广泛: serverless IAM guide
在您的情况下,您可能只需要向您的 serverless.yml 添加类似以下权限的内容。
provider:
iamRoleStatements:
- Effect: "Allow"
Action:
- "dynamodb:Scan"
Resource: "arn:aws:dynamodb:us-east-1:245912153055:table/Pets"
【讨论】:
谢谢,我在 IAM 控制台上找到了。【参考方案2】:我参加聚会有点晚了,但它仍然可以帮助某人知道目前(2019 年 3 月)在创建 lambda 时使用 nodejs 与 8.10 似乎存在问题。添加所有必要的权限仍然会导致上述错误。一个简单的解决方法是暂时使用较低的 nodejs 版本。希望问题能尽快解决
【讨论】:
这仍然是个问题吗?你从哪里发现这个问题存在的?我现在在使用 node v 8.10 时遇到了这个问题,似乎找不到任何方法来添加发电机策略以上是关于Lambda 和 DynamoDB:无权执行:dynamodb:Scan的主要内容,如果未能解决你的问题,请参考以下文章
用户无权执行:dynamodb:PutItem on resource
AmazonServiceException:用户无权执行:dynamodb:DescribeTable 状态码:400;错误代码:AccessDeniedException
EB Worker cron.yaml - 无权执行:dynamodb:UpdateItem
无服务器调用错误:“无权执行:dynamodb:BatchWriteItem on resource:arn:aws:...”
调用扫描操作时如何解决 (AccessDeniedException):用户:arn:aws:sts... 无权执行:dynamodb:Scan on resource.."?