Управление доступом к записям Amazon DynamoDB с помощью таблицы разрешений для федеративных пользователей - PullRequest
0 голосов
/ 15 октября 2019

Я хочу построить архитектуру AWS для безсерверного приложения, которое хранит файлы в DynamoDB.

В этой базе данных хранятся данные, относящиеся к заданному периметру. С другой стороны, у меня есть данные (ссылки M: N), которые связывают пользователей моего приложения с некоторыми периметрами.

Я хочу убедиться, что мои пользователи (прошедшие проверку подлинности в Amazon Cognito через федеративного поставщика OIDC) имеют доступ только к данным, относящимся к одному из их периметров.

  • Чтоявляется наилучшей практикой для реализации подобной логики управления доступом с помощью кирпичей Amazon?

  • Можно ли реализовать такую ​​логику управления доступом с помощью политик IAM на уровне базы данных Dynamo?

1 Ответ

0 голосов
/ 15 октября 2019

Вы можете добавить таблицу

UserPerimeter
---
id (hash key)
userId (index - hash key)
perimeterId

И, как часть вашей проверки в Lambda, вы делаете запрос по индексу с идентификатором пользователя из JWT / Cognito. Это проверит, имеет ли он доступ к запрошенному параметру. Поэтому, в основном, защитите свою БД от своего кода (который является единственной точкой доступа).

Вы можете добиться этого с помощью IAM (см. статья ), но это добавляет слишком много сложности для моеговкус. Это было бы полезно, если БД используется несколькими продуктами / компонентами / компаниями (что в любом случае не является хорошей практикой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...