パーティションキーに複数の種類の値がある場合のdynamodb:LeadingKeysの使用方法
Dynamoテーブルにはマルチテナントアプリケーションのパーティションキーとしてtenant_idがありますが、パーティションキーにはtenant_idに加えて他のタイプのエンティティも含まれています。
例:(これは小さな例です。全体でこのパターンを使用しています)
PK SK Att
Customer-4312a674-54a user-abc 672453782
user-abc user-abc 672453782
dynamodb:LeadingKeys
あるテナントのデータに別のテナントがアクセスできないようにするために使用したいと思います。PK
がオーバーロードされていて、他のエンティティも含まれている場合、どうすればそれを回避できますか。
回答
1 Maurice
マルチテナントシステムでは、テナントに属するすべてのアイテムのパーティションキーにプレフィックスとしてtenant-idを追加することをお勧めします。そうすればdynamodb:LeadingKeys
、アクセス制御の条件を使用できます。
とにかく、テナントIDはすべてのクエリのクエリ時に認識されている必要があります。おそらく、セッション情報に格納されていると思います。これは、すべてのキーにテナントIDを追加しても、パーティションキーのオーバーロードを実行できることを意味します。