Dynamodb ограничивает доступ только к пользовательским данным

#amazon-web-services #amazon-dynamodb

#amazon-web-services #amazon-dynamodb

Вопрос:

как мне ограничить доступ пользователя dynamoddb к его собственным данным, принадлежащим им. Я получил доступ, используя условия политики IAM для детального контроля доступа

  "Condition": {
                    "ForAllValues:StringEquals": {
                        "dynamodb:LeadingKeys": [
                            "${www.amazon.com:user_id}"
                        ],
                        "dynamodb:Attributes": [
                            "UserId",
                            "GameTitle",
                            "Wins",
                            "Losses",
                            "TopScore",
                            "TopScoreDateTime"
                        ]
                    }
             }
  

проблема с вышеуказанным условием заключается в том, что мой ключ раздела не является идентификатором пользователя.
это что-то еще.

вот как выглядит моя база данных

 Hash : "Sales" # its just plain text Sales
Range Date     # its date
attributes : Sale : [  # array of maps
        {
         name : abc,
         userId : idabc,
         some-other : stuff
        },
        {
         name : xyz,
         userId : idxyz,
         some-other : stuff
        }
      ]
  

есть идеи, как ограничить доступ на основе sale [x].userId?
или какой-нибудь лучший дизайн, как справиться с таким дизайном?
Я использую диапазон дат для запроса 90% данных.
другой вариант — использовать разные таблицы для каждой логической таблицы.
например, продажи, расходы, начисление заработной платы и т. Д., Но я не хочу создавать разные таблицы
, и это противоречит цели или NoSQL, я думаю.
К вашему сведению, я использую javascript sdk для доступа к dynamodb из браузера.

приложение имеет 3 разных типа пользователей

  1. клиент (доступ к собственным данным)
  2. продавцы (собственные данные и доступ к данным своих клиентов)
  3. администратор (доступ ко всем данным)

Я думаю, что для этого мне нужно создать 3 разных пользовательских пула, поправьте меня, если я ошибаюсь.

но я не могу ограничить доступ к собственным данным, если я использую ключ раздела в качестве идентификатора пользователя, то запрос для продавцов становится затруднительным.

есть предложения о том, как мне справиться с этим дизайном БД?

спасибо