Как применить политику IAM вызывающего абонента к выполнению лямбда-функции?

Допустим, есть лямбда-функция, у которой есть политика IAM с доступом к s3://my-bucket/users/. И эта функция вызывается пользователем Бобом, у которого есть доступ политики IAM к s3://my-bucket/users/bob. Есть ли способ объединить или применить политику пользователя Боба к лямбда-функции для ограничения доступа? Например, если Боб передает имя папки Alice, лямбда-функция завершается ошибкой при попытке доступа к s3://my-bucket/users/alice.

Любые идеи?

См. также:  Группировка результатов нескольких GROUP_CONCAT() только с различными значениями
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 2
  1. Cherry

    No.

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

    Одним из вариантов может быть передача Бобом набора учетных данных функции при ее вызове (в качестве параметров, которые будут передаваться функции в event), а затем функция Lambda будет использовать эти учетные данные. Однако это очень необычный поступок.

  2. Cherry

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

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

    1. Только AWS Lambda имеет программный доступ к корзине S3 s3://my-bucket/users/.
    2. Предположим, что пользователь Боб аутентифицирован и имеет токен аутентификации.
    3. Боб вызывает AWS Lambda с токеном аутентификации как часть запроса вместе с файлом S3, к которому они хотят получить доступ.
    4. AWS Lambda проверяет токен аутентификации.
    5. Приложение определяет, какие суффиксы S3 сегмента S3 s3://my-bucket/users/ полностью доступны пользователю в базе данных.
    6. Предположим, Боб имеет доступ к следующим суффиксам /bob и /admin.
    7. После аутентификации в AWS Lambda есть библиотека авторизации, которая запрашивает в базе данных авторизованные префиксы.
    8. Если Боб пытается получить доступ к s3://my-bucket/users/bob/personalDetaills.json или s3://my-bucket/users/admin/employeeDetails.json, то запрос утверждается, и выполняется выборка записи. Запрос одобрен, потому что Боб авторизован для суффиксов /bob и /admin.
    9. Если Боб пытается получить доступ к s3://my-bucket/users/alice, выдается ошибка «Пользователь не авторизован».
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: