Первый вариант, вероятно, является лучшим из двух, поскольку он немного проще (нет событий между учетными записями, с которыми приходится иметь дело).
Для этого вам необходимо понять AWS Security TokenПредполагаемая роль службы .
Это позволит вашей лямбде систематически:
- Принимать роль в учетной записи 1, которая может перечислять и отключать экземпляры EC2
- Завершение работыЭкземпляры EC2
- Принятие роли в учетной записи 2 ... и т. Д.
Для этого вам нужно будет назначить роль IAM, которая будет назначена в каждой «подчиненной» учетной записи,и роль IAM, которой разрешено использовать sts:AssumeRole
в главной учетной записи для вызова этой лямбды.
Я бы попросил вас убедиться, что это именно то, что вам нужно.Как правило, жизнь в AWS намного проще, если вы можете хранить свои учетные записи только с очень слабыми зависимостями друг от друга;вместо этого рассматривается подход, при котором каждая учетная запись отвечает за закрытие своих собственных экземпляров EC2 на основе триггера.