amazon-web-services - 使用 Cognito 和 Lambda 函数的 AWS 无服务器 DynamoDB 行级授权
问题描述
好的,所以我目前几乎可以按照此处的本指南和其他几条指南进行操作。
但是,我没有让用户直接访问 DynamoDB,而是通过 API 网关运行它,然后使用授权标头和 Cognito 会话 ID 运行 Lambda 函数。
我有那部分工作。
在我的 lambda 函数中,我调用了更新函数
const data = await documentClient.update(params).promise();
我已将 AWSLambdaBasicExecutionRole 策略和以下策略添加到我的 lambda 函数角色以允许更新的行级别访问
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"dynamodb:UpdateItem"
],
"Resource": [
"arn:aws:dynamodb:us-east-2:mydynamodbid:table/userdata"
],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": "${cognito-identity.amazonaws.com:sub}"
}
}
}
]
它适用于 AmazonDynamoDBFullAccess 但我不确定它是否完成了我正在寻找的东西,因为我认为它只是完全绕过了条件。
我收到以下错误
"User: arn:aws:sts::**********:assumed-role/db-crud/update-user-info-by-id is not
authorized to perform: dynamodb:UpdateItem on resource: arn:aws:dynamodb:us-east-
2:************:table/userdata"
有没有人遇到过这样的事情或看到我可能出错的地方?
解决方案
推荐阅读
- javascript - 将 jQuery 转换为 Vanilla JS
- javascript - 迷失在 inputshape 上(Tensorflow.js LSTM 模型尝试)
- azure - Azure redis 缓存补丁计划配置中的 maintenanceWindow 属性是什么?
- django - 未找到“登录”的反向。无论我尝试访问什么 url,“登录”都不是有效的视图函数或模式名称错误
- flutter - 转换流
- > 列出
飘飘然 - blazor - EditForm - 如何防止按回车键提交
- ios - Xcode 在非可选的字符串上返回 nil
- r - Character-Matrix - 如何按行操作?
- python - 如何在猪的行中获得平均值
- python-3.x - 查找最小的数字 Python numpy 列表