Допустим, есть лямбда-функция, у которой есть политика IAM с доступом к s3://my-bucket/users/
. И эта функция вызывается пользователем Бобом, у которого есть доступ политики IAM к s3://my-bucket/users/bob
. Есть ли способ объединить или применить политику пользователя Боба к лямбда-функции для ограничения доступа? Например, если Боб передает имя папки Alice
, лямбда-функция завершается ошибкой при попытке доступа к s3://my-bucket/users/alice
.
Любые идеи?
No.
Функция Lambda будет запускаться с разрешениями от роли IAM, которая связана с самой функцией, независимо от того, кто или что запустило функцию.
Одним из вариантов может быть передача Бобом набора учетных данных функции при ее вызове (в качестве параметров, которые будут передаваться функции в
event
), а затем функция Lambda будет использовать эти учетные данные. Однако это очень необычный поступок.Я рассматриваю это как проблему с авторизацией, для которой требуется специальный модуль авторизации.
Один из способов решения этой проблемы заключается в следующем
s3://my-bucket/users/
.s3://my-bucket/users/
полностью доступны пользователю в базе данных./bob
и/admin
.s3://my-bucket/users/bob/personalDetaills.json
илиs3://my-bucket/users/admin/employeeDetails.json
, то запрос утверждается, и выполняется выборка записи. Запрос одобрен, потому что Боб авторизован для суффиксов/bob
и/admin
.s3://my-bucket/users/alice
, выдается ошибка «Пользователь не авторизован».