Как предоставить доступ только к пользовательским ресурсам (DynamoDB, S3) при вызове лямбда-функции из метода API-шлюза с использованием Cognito - PullRequest
1 голос
/ 30 июня 2019

Я создаю серверный бэкэнд с помощью AWS (Lambda, Cognito, API Gateway, DynamoDB и S3).

У меня есть таблица пользователей на DynamoDB и API (Lambda и API Gateway) для доступа к этим данным. Я хочу предоставить доступ к таблице на уровне строк на основе учетных данных пользователя Cognito.

Как я могу это сделать? Должен ли я использовать политики IAM или я должен проверить, равен ли идентификатор из Cognito идентификатору строки таблицы БД внутри лямбды?

1 Ответ

1 голос
/ 01 июля 2019

Вы можете использовать cognito для предоставления доступа к пользовательским данным как в s3, так и в DynamoDb. Переменная sub в вашем пуле удостоверений (отличается от переменной в пуле пользователей) может быть динамически записана в вашу политику аутентифицированных ролей. Поэтому, если у вас есть переменная sub в вашем документе Dynamodb и в качестве префикса к вашему объекту s3 (в основном, к имени папки, в которой вы храните файлы), вы можете использовать одну политику для предоставления доступа на основе того, какой пользователь вошел в систему.

Вы можете найти все шаги, чтобы сделать это в следующем сообщении в блоге.

https://aws.amazon.com/blogs/mobile/building-fine-grained-authorization-using-amazon-cognito-user-pools-groups/

...