Lambda 和 DynamoDB:无权执行:dynamodb:Scan
Lambda and DynamoDB : is not authorized to perform: dynamodb:Scan
在将 API 部署到 lambda 之后,我使用无服务器创建了 API,我们尝试通过网关中的 "Test" 按钮测试端点API,我收到错误:
"User: arn:aws:sts::245912153055:assumed-role/pets-service-dev-us-east-1-lambdaRole/pets-service-dev-listPets is not authorized to perform: dynamodb:Scan on resource: arn:aws:dynamodb:us-east-1:245912153055:table/Pets"
我可能需要授予 Lambda 权限,但我有点迷路了......
如前所述,您需要将权限添加到您的无服务器定义中。
关于这个主题的文档非常广泛:
serverless IAM guide
在您的情况下,您可能只需要向 serverless.yml 添加类似以下权限的内容。
provider:
iamRoleStatements:
- Effect: "Allow"
Action:
- "dynamodb:Scan"
Resource: "arn:aws:dynamodb:us-east-1:245912153055:table/Pets"
我来晚了一点,但它仍然可以帮助别人知道目前(2019 年 3 月)在创建 lambda 时使用 nodejs vs 8.10 似乎有问题。添加所有必要的权限仍然会导致上述错误。一个简单的解决方法是暂时使用较低的 nodejs 版本。希望问题尽快得到解决
在将 API 部署到 lambda 之后,我使用无服务器创建了 API,我们尝试通过网关中的 "Test" 按钮测试端点API,我收到错误:
"User: arn:aws:sts::245912153055:assumed-role/pets-service-dev-us-east-1-lambdaRole/pets-service-dev-listPets is not authorized to perform: dynamodb:Scan on resource: arn:aws:dynamodb:us-east-1:245912153055:table/Pets"
我可能需要授予 Lambda 权限,但我有点迷路了......
如前所述,您需要将权限添加到您的无服务器定义中。
关于这个主题的文档非常广泛: serverless IAM guide
在您的情况下,您可能只需要向 serverless.yml 添加类似以下权限的内容。
provider:
iamRoleStatements:
- Effect: "Allow"
Action:
- "dynamodb:Scan"
Resource: "arn:aws:dynamodb:us-east-1:245912153055:table/Pets"
我来晚了一点,但它仍然可以帮助别人知道目前(2019 年 3 月)在创建 lambda 时使用 nodejs vs 8.10 似乎有问题。添加所有必要的权限仍然会导致上述错误。一个简单的解决方法是暂时使用较低的 nodejs 版本。希望问题尽快得到解决