AWS S3 копирует между несколькими учетными записями, используя лямбда aws, и запускает внутреннюю лямбду для копирования в другие сегменты. - PullRequest
1 голос
/ 23 октября 2019

У меня есть 2 учетные записи AWS. У app-dev и app-prod есть несколько сегментов. Структура выглядит следующим образом:

enter image description here

Последовательность действий следующая:

app-prod(Account)-->bucket-prod-->copier-lambda-->app-dev(account)-->bucket-dev-->copier-lambda-->[bucket-dev1, bucket-dev2]

Лямбда-копир в учетной записи app-dev работает нормально, если я копирую файл в bucket-dev из той же учетной записи вручную с помощью консоли AWS. Но когда лямбда-копир из учетной записи app-prod копирует файл в bucket-dev(app-dev), лямбда-копир из учетной записи app-dev запускается, но завершается неудачно с ошибкой "Access Denied", и IAM role для лямбды одинакова в обоих случаях (файлскопировал вручную, что вызывает лямбда-копир в той же учетной записи, и файл, скопированный лямбдой из другой учетной записи), поэтому я запутался здесь.

Я почти уверен, что здесь что-то очень маленькое. Любая помощь будет оценена.

1 Ответ

2 голосов
/ 23 октября 2019

Обратите внимание, что если одна учетная запись помещает объект в корзину, принадлежащую другой учетной записи, объект по-прежнему принадлежит отправителю. Создатель должен добавить ACL к объекту, предоставляя владельцу корзины доступ к объекту.

Подробнее см. здесь .

По умолчанию объект S3 принадлежит учетной записи AWS, которая его загрузила. Это верно даже тогда, когда ведро принадлежит другой учетной записи. Чтобы получить доступ к объекту, владелец объекта должен явно предоставить вам (владельцу корзины) доступ.

Владелец объекта может предоставить владельцу корзины полный контроль над объектом, обновив список управления доступом (ACL)объект. Владелец объекта может обновить ACL либо во время операции размещения или копирования, либо после добавления объекта в корзину.

...