Назад | Перейти на главную страницу

Политика AWS Lambda - Разрешить редактировать лямбда-функции в зависимости от пользователя

Можно ли при создании политик AWS создать политику, которая позволяет просматривать, редактировать и создавать лямбда-функции в зависимости от пользователя, создавшего эту функцию раньше?

Я пытаюсь это сделать, но не могу найти информацию об условии или параметре «Пользователь, который создал / обновил / удалил функцию»

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

Почему это невозможно?

Чтобы это работало, вам потребуется, чтобы Lambda предоставила контекстный ключ для IAM, который содержал информацию о том, какой пользователь создал лямбда. На данный момент Lambda не предоставляет никаких контекстных ключей.

Из Действия, ресурсы и ключи условий для AWS Lambda:

Lambda не имеет контекстных ключей для конкретной службы, которые можно использовать в элементе Condition инструкций политики. Список ключей глобального контекста, доступных для всех служб, см. В разделе Доступные ключи для условий в Справочнике по политике IAM.

Стратегия с несколькими аккаунтами

Желание контролировать разрешение на Lambda в зависимости от того, кто ее создал, звучит как проблема, когда вам необходимо обеспечить административную изоляцию между пользователями или командами.

Например, если пользователь A (или человек из команды A) создает функцию, тогда они должны иметь возможность управлять ею на протяжении всего ее жизненного цикла, но другие пользователи (или люди из других команд) не должны иметь возможность мешать ей.

Если вы сталкиваетесь с такой проблемой, то наличие нескольких учетных записей AWS, вероятно, станет для вас хорошим решением.

AWS Организации

Организации обеспечивает управление на основе политик для нескольких учетных записей. Обычный сценарий:

  • Счет для оплаты счетов
  • Учетная запись (содержит все логины пользователей)
  • Учетные записи ресурсов (содержат ресурсы AWS и роли перекрестных учетных записей, чтобы позволить пользователям из учетной записи идентификации иметь соответствующий уровень доступа к ресурсам)

Вы должны создать учетные записи ресурсов, чтобы обеспечить административную изоляцию, чтобы пользователь A имел свою собственную учетную запись и мог делать все, что вы ему позволяли, не беспокоясь о том, чтобы помешать пользователю B. В равной степени командам может быть предоставлен доступ к учетной записи.

Это также дает преимущество, предоставляя разбивку счетов для каждой учетной записи и ограничивая радиус действия любого инцидента безопасности для учетной записи, в которой он произошел.