Рекомендуемые способы поиска и отправки команд / событий через учетные записи AWS?
Мне нужно сделать несколько запросов с немедленным ответом, отправить некоторые события и поместить некоторые команды в очереди - для разных учетных записей AWS. Вся бизнес-логика живет в лямбдах. Будет центральная учетная запись AWS (A) с общими данными, а также ряд других учетных записей AWS (C), по одной для каждого клиента, которые могут извлекать и изменять данные несколькими способами. Все счета клиентов работают одинаково в одном стеке CF.
Я вижу, что есть разные подходы, которые могут решить мою проблему
Разделы SNS для команд и событий, с необходимыми принципами кросс-аккаунта в разрешениях и вызовами HTTP-шлюза API к лямбдам, а затем политика IAM, разрешающая использование внешней учетной записи AWS
Просто вызов лямбды на счете B, прямо из лямбды от учетной записи A. Кажется, это самое простое решение для моих нужд.
Теперь мои вопросы:
Каковы недостатки прямого вызова лямбд вместо решения SNS и шлюза API?
Я знаю, что системы с темами или HTTP API-интерфейсами более слабо связаны, и потребителю не нужно знать инфраструктуру (что здорово, если у вас много потребителей вашего API) - но в этом случае, когда мы контролируем обе базы кода и стеки, это все еще может быть проблемой?
Каковы рекомендуемые способы настройки разрешений между учетными записями для вызова лямбд?
Посмотрев на последнее решение, я обнаружил, что есть несколько способов.
Определите роль в чужой учетной записи, которую лямбда может принять на себя, прежде чем она вызовет другую лямбду в чужой учетной записи.
Установите разрешения для лямбды и добавьте внешние ARN пользователей / ролей в качестве принципалов с разрешениями вызова.
При тестировании это похоже на огромные накладные расходы, принимая на себя роль и переключая учетные данные в лямбде, каждый раз, когда он вызывается.
Но есть ли какие-либо существенные преимущества решения предполагаемой роли с точки зрения управления, масштабируемости или гибкости?