Jak używać dynamodb: LeadingKeys, gdy klucz partycji ma więcej niż jeden rodzaj wartości
Moje tabele Dynamo mają tenant_id jako klucz partycji w mojej aplikacji wielodostępnej, ale mój klucz partycji zawiera również inne typy jednostek oprócz tenant_id.
Na przykład: (To jest mały przykład, używamy tego wzorca w całym tekście)
PK SK Att
Customer-4312a674-54a user-abc 672453782
user-abc user-abc 672453782
Chciałbym użyć, dynamodb:LeadingKeys
aby zapewnić, że dane jednego dzierżawcy nigdy nie będą dostępne dla innego dzierżawcy. Jak mogę się do tego zabrać w tym przypadku, gdy PK
jest przeciążony i ma w sobie również inne jednostki.
Odpowiedzi
W systemie z wieloma dzierżawcami zalecam dodanie identyfikatora dzierżawy jako prefiksu do klucza partycji wszystkich elementów należących do dzierżawcy. W ten sposób możesz użyć dynamodb:LeadingKeys
warunku do kontroli dostępu.
I tak tenant-id powinien być znany w czasie zapytania dla każdego zapytania, przypuszczam, że prawdopodobnie jest przechowywany w informacji o sesji. Oznacza to, że możesz dodać identyfikator dzierżawy do każdego klucza i nadal przeciążać klucz partycji.