Amazon dynamodb 如何使用批处理获取项仅获取用户在Dynamodb中有权访问的行?
我试图基于键保护DynamoDB表的一些行。我可以使用dynamodb:LeadingKeys条件来完成它。 如果我进行单个GetItem查询,它就会工作。但是,我有几行要加载/检查访问权限,希望一次查询所有行,并只接收用户有权访问的行 例如,在Dynamo中有下表:Amazon dynamodb 如何使用批处理获取项仅获取用户在Dynamodb中有权访问的行?,amazon-dynamodb,aws-sdk,amazon-iam,Amazon Dynamodb,Aws Sdk,Amazon Iam,我试图基于键保护DynamoDB表的一些行。我可以使用dynamodb:LeadingKeys条件来完成它。 如果我进行单个GetItem查询,它就会工作。但是,我有几行要加载/检查访问权限,希望一次查询所有行,并只接收用户有权访问的行 例如,在Dynamo中有下表: AccessType |键 公共| A 私人| B 使用以下策略: { "Sid": "RestrictPrivate", "Effect": "Allow", "Action":
AccessType |键
公共| A
私人| B
使用以下策略:
{
"Sid": "RestrictPrivate",
"Effect": "Allow",
"Action": [
"dynamodb:BatchGetItem",
"dynamodb:DescribeTable",
"dynamodb:GetItem",
"dynamodb:ListTables",
"dynamodb:Query",
"dynamodb:Scan"
],
"Resource": [
"arn:aws:dynamodb:REGION:ACC:table/keys"
],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": [
"public"
]
}
}
}
它适用于单行查询:
查询key=A-返回ok
查询key=B-返回AccessDeniedException
但是它很慢,我想创建一个bulkgetitem,只获取我有权访问的行,但是如果bulkgetitem结果包含一个被拒绝的行,它将完全失败
有没有一种方法可以查询包含允许行和不允许行的多行,只返回一个请求中允许的行?批处理获取的ID来自哪里?与其尝试使用批处理获取筛选项目,是否可以在之前对其进行预筛选并仅获取您有权访问的项目?假设我有ID,那么我需要检查当前用户基于这些ID有权访问哪些行。所以我知道有A键和B键,我想检查我可以访问哪些键,问题是我需要单独检查每个键,而不是全部一起检查。