Роль кросс-аккаунта для функции AWS Lambda

У меня есть два аккаунта AWS (A и B). В моей учетной записи A у меня есть лямбда-функция, которая должна иметь доступ к ресурсам учетной записи B. Точно, моя лямбда-запись в моей учетной записи A требует обновления записи в зоне Route53, размещенной на моей учетной записи B.

В отличие от S3, я не вижу никакой политики доступа к ресурсам в Route53. Так что я немного растерялся. Я пытался играть с ролями между учетными записями IAM, но это не похоже на работу с лямбдой.

Как я могу разрешить лямбда-функции в учетной записи A для доступа к ресурсам моей учетной записи B?

Ответы на вопрос(1)

Решение Вопроса

Вы можете создать Роль в учетной записи B и позволить своему Пользователю (в учетной записи A) принять ее.

СоздатьРоль на счете А это будет использоваться вашей функцией AWS Lambda.СоздатьРоль в счете B с типом ролиРоль для кросс-аккаунта, Назначьте необходимые разрешения для использования Route 53 в учетной записи B. Также добавьте разрешения для роли в учетной записи A для вызоваAssumeRole на эту роль.Лямбда-функция на счет А можно позвонитьAssumeRole на роль в учетной записи B. Это вернет наборвременные полномочия который может быть использован для доступа к маршруту 53 в учетной записи B.

Увидеть:

Учебник. Делегирование доступа через учетные записи AWS с использованием ролей IAMСоздание роли для делегирования разрешений пользователю IAM

Вот картинка из учебника:

 yerzhan710 янв. 2019 г., 12:16
Может ли та же самая Lambda дополнительно получить доступ к ресурсам в другой учетной записи C одновременно?
 alexfvolk17 окт. 2017 г., 20:20
Я думаю, что вам также необходимо добавить разрешение для роли B в учетной записи B, чтобы она позволила учетной записи A принять роль B. Для учетной записи A в роли требуется только разрешение для учетной записи A Lambda для принятия роли A.
 Olivier04 июл. 2016 г., 09:59
Хорошо, я сделал это, и ваше решение сработало. Сначала я прочитал это и подумал, что это относится только к пользователям (кнопка переключения, чтобы изменить роль), но на самом деле вы можете «предположить роль» программно с помощью лямбды. Однако, если вам нужен доступ к ресурсу из управляемой службы (у меня нет примера, может быть, сигнал тревоги для учетной записи A, отправляющей SNS на учетную запись B), у вас нет возможности написать некоторый код для " AssumeRole "), но для Lambda и Ec2 это нормально. Благодарю.

Ваш ответ на вопрос