【问题标题】:Lambda and DynamoDB : is not authorized to perform: dynamodb:ScanLambda 和 DynamoDB:无权执行:dynamodb:Scan
【发布时间】:2023-03-16 12:46:01
【问题描述】:

在我将 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 配置上吗?

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


【解决方案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 时遇到了这个问题,似乎找不到任何方法来添加发电机策略
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-10
  • 2021-12-09
  • 2020-07-26
  • 2021-02-08
  • 2019-08-25
  • 1970-01-01
相关资源
最近更新 更多