AWS Identity and Access Management (IAM)は、ユーザーが以前に追加したAmazon DynamoDBテーブルのアイテムのみを編集または削除できるようにする方法を提供しますか?
4 に答える
あなたの質問に対する答えはイエスだと確信しています。おそらく、その背後にある IAM ロール ポリシーで AWS Cognito を使用する必要があります。
これをいじる必要があるかもしれませんが、次のようなポリシーを追加すると:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:GetItem",
"dynamodb:Scan",
"dynamodb:UpdateItem"
],
"Resource": [
"arn:aws:dynamodb:ap-southeast-2: NUMBER:table/myapplication_product"
],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": [
"${cognito-identity.amazonaws.com:sub}"
]
}
}
}
]
}
まず、これは dynamodb リソースへのアクセスを指定されたメソッドのみに制限しますが、「Condition」ブロックは、変更しようとしているハッシュキーに一致する ID へのアクセスをさらに制限します - 明らかに、これはスキャンには影響しません ( GetItem および UpdateItem)。これらのキーを正確に一致させる方法は、私が言及したいじりですが、解決策はどこかにあります。お役に立てれば。
PutItem/UpdateItem/DeleteItem DynamoDB アクションに制限され、ARNによって特定のテーブルに制限されている IAM ユーザーを追加できます。IAM を使用して Amazon DynamoDB リソースへのアクセスを制御する を参照してください。
ListTables を除くすべての Amazon DynamoDB アクションに対して、IAM ポリシーでリソースレベルの ARN を使用できます。
ただし、テーブルの更新を「テーブルを作成したユーザー」に制限する組み込みの方法はありませんが、テーブルの作成時にそれをスクリプト化できると思います。