Cara menggunakan dynamodb: LeadingKeys saat kunci Partisi memiliki lebih dari satu jenis nilai

Dec 25 2020

Tabel Dynamo saya memiliki tenant_id sebagai kunci partisi di aplikasi multi-tenant saya, tetapi kunci partisi saya juga memiliki jenis entitas lain di dalamnya selain tenant_id.

Misalnya: (Ini adalah contoh kecil, kami menggunakan pola ini di seluruh)

PK                                        SK                               Att
Customer-4312a674-54a                  user-abc                            672453782
user-abc                                   user-abc                            672453782

Saya ingin menggunakan dynamodb:LeadingKeysuntuk memastikan data satu penyewa tidak akan pernah bisa diakses oleh penyewa lain. Bagaimana saya bisa melakukannya dalam kasus ini ketika PKkelebihan beban dan memiliki entitas lain di dalamnya juga.

Jawaban

1 Maurice Dec 28 2020 at 17:41

Dalam sistem multi-penyewa, rekomendasi saya adalah menambahkan id penyewa sebagai awalan ke kunci partisi semua item milik penyewa. Dengan cara itu Anda dapat menggunakan dynamodb:LeadingKeyskondisi untuk kontrol akses.

Id penyewa harus diketahui pada waktu kueri untuk setiap kueri, tebakan saya adalah bahwa itu mungkin disimpan dalam informasi sesi. Ini berarti Anda dapat menambahkan tenant-id ke setiap Key dan masih melakukan overloading kunci partisi.