私は3つのフィールドを持つ非常に単純なテーブルを持っています:
- uuid (文字列)
- 名 (文字列)
- 受け入れられた (ブール値)
ユーザー ポリシーで、「スキャン」と「PutItem」という 2 つのアクションが 2 つの条件で許可されるかどうかを知りたいです。
スキャンの場合: すべての Accept=true をスキャンします (その条件のみを許可しますが、可能かどうかはわかりません)。それは「景色」のようなものでしょう。
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"
]
}
}
}
]
}
"accepted" を削除すると、それに基づいて ScanFilter を使用できなくなります。
2 つの個別のポリシーで 2 人のユーザーを設定する必要がありますか?
最も難しい部分は、すべての項目を で非表示にしているようaccepted:false
です。
どんな助けでも大歓迎です。