파티션 키에 두 종류 이상의 값이있을 때 dynamodb : LeadingKeys를 사용하는 방법
Dec 25 2020
내 Dynamo 테이블에는 멀티 테넌트 애플리케이션의 파티션 키로 tenant_id가 있지만 내 파티션 키에는 tenant_id 외에도 다른 유형의 엔터티도 있습니다.
예 : (이것은 작은 예이며 전체적으로이 패턴을 사용하고 있습니다)
PK SK Att
Customer-4312a674-54a user-abc 672453782
user-abc user-abc 672453782
dynamodb:LeadingKeys
한 테넌트의 데이터에 다른 테넌트가 액세스 할 수 없도록하는 데 사용 하고 싶습니다 . 이 경우 PK
에 과부하가 걸리고 다른 엔터티도 포함되어 있을 때 어떻게 처리 할 수 있습니까 ?
답변
1 Maurice Dec 28 2020 at 17:41
다중 테넌트 시스템에서는 테넌트 에 속한 모든 항목 의 파티션 키에 접두사로 tenant-id를 추가하는 것이 좋습니다 . 이렇게하면 dynamodb:LeadingKeys
액세스 제어를위한 조건을 사용할 수 있습니다 .
어쨌든 모든 쿼리에 대해 쿼리 시간에 tenant-id를 알아야합니다. 내 생각 엔 아마도 세션 정보에 저장되어있을 것입니다. 즉, 모든 키에 테넌트 ID를 추가하고 파티션 키 오버로딩을 수행 할 수 있습니다.