Cómo usar dynamodb: LeadingKeys cuando la clave de partición tiene más de un tipo de valores
Mis tablas de Dynamo tienen tenant_id como clave de partición en mi aplicación multiinquilino, pero mi clave de partición también tiene otros tipos de entidades además de tenant_id.
Por ejemplo: (Este es un pequeño ejemplo, estamos usando este patrón en todas partes)
PK SK Att
Customer-4312a674-54a user-abc 672453782
user-abc user-abc 672453782
Me gustaría usar dynamodb:LeadingKeys
para garantizar que otro inquilino nunca pueda acceder a los datos de un inquilino. ¿Cómo puedo hacer eso en este caso cuando PK
está sobrecargado y también tiene otras entidades?
Respuestas
En un sistema de múltiples inquilinos, mi recomendación sería agregar el tenant-id como un prefijo a la clave de partición de todos los elementos que pertenecen al inquilino. De esa forma, puede utilizar la dynamodb:LeadingKeys
condición para el control de acceso.
La identificación del inquilino debe conocerse en el momento de la consulta para cada consulta de todos modos, supongo que probablemente esté almacenada en la información de la sesión. Esto significa que puede agregar el tenant-id a cada clave y aún así realizar la sobrecarga de la clave de partición.