Лучший способ сделать это - создать роль выполнения Lambda в Account-A
с любыми разрешениями, необходимыми для функции, например, принимая роль кросс-аккаунта в Account-B
. В большинстве ситуаций, если Account-B
желал предоставить разрешения пользователю IAM в Account-A
, он должен подходить для предоставления роли IAM с аналогичными разрешениями, которые вы можете принять. Это гораздо безопаснее, чем использование ключа доступа IAM, поскольку нет постоянных учетных данных для утечки, только временные учетные данные, срок действия которых истекает максимум через 12 часов.
Если по какой-либо причине вы не можете изменить что-либо в Account-B
, вы можете напрямую использовать существующего пользователя. Простейший способ сделать это будет заключаться в жестком кодировании идентификатора ключа доступа и секретного ключа доступа в Lambda, но это создает много проблем с точки зрения управления секретами. Теперь, если ваш код утек, данные в корзине Account-B
будут скомпрометированы. AWS Secrets Manager - это неплохой нативный вариант для хранения ключей вне вашего кода, но для его включения в вашу функцию потребуется изучение некоторых вызовов API.