Amazon dynamodb 如何使用批处理获取项仅获取用户在Dynamodb中有权访问的行?

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":

我试图基于键保护DynamoDB表的一些行。我可以使用dynamodb:LeadingKeys条件来完成它。 如果我进行单个GetItem查询,它就会工作。但是,我有几行要加载/检查访问权限,希望一次查询所有行,并只接收用户有权访问的行

例如,在Dynamo中有下表:

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键,我想检查我可以访问哪些键,问题是我需要单独检查每个键,而不是全部一起检查。