我有一个非常简单的表,其中包含 3 个字段:
- uuid(字符串)
- 名字(字符串)
- 接受(布尔值)
我想知道用户策略是否允许在两个条件下执行两个操作“Scan”和“PutItem”:
对于扫描:扫描所有接受=真(仅允许该条件,但我不知道是否可能)。这将是一个类似的“视图”。
对于 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
.
任何帮助,将不胜感激。