2

我有一个非常简单的表,其中包含 3 个字段:

  1. uuid(字符串)
  2. 名字(字符串)
  3. 接受(布尔值)

我想知道用户策略是否允许在两个条件下执行两个操作“Scan”和“PutItem”:

  1. 对于扫描:扫描所有接受=真(仅允许该条件,但我不知道是否可能)。这将是一个类似的“视图”。

  2. 对于 PutItem:保护接受的字段。

我试过的

我只是尝试了一种基本方法:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "LimitAccessToSpecificAttributes",
            "Effect": "Allow",
            "Action": [
                "dynamodb:Scan",
                "dynamodb:PutItem"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:xxx:table/mytable"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:Attributes": [
                        "uuid",
                        "firstname",
                        "accepted"
                    ]
                },
                "StringEqualsIfExists": {
                    "dynamodb:Select": "SPECIFIC_ATTRIBUTES",
                    "dynamodb:ReturnValues": [
                        "NONE",
                        "UPDATED_OLD",
                        "UPDATED_NEW"
                    ]
                }
            }
        }
    ]
}

如果我删除“已接受”,我将无法使用基于它的 ScanFilter。

我是否必须为两个用户设置两个单独的策略?

最难的部分似乎隐藏了所有带有accepted:false.

任何帮助,将不胜感激。

4

0 回答 0