Загрузка файлов из внешней корзины s3 с использованием lambda

#amazon-web-services #amazon-s3 #aws-lambda

#amazon-веб-сервисы #amazon-s3 #aws-lambda

Вопрос:

Я хочу использовать lambda для загрузки файлов резервных копий из внешней учетной записи s3. У меня есть идентификатор ключа доступа, секретный ключ доступа, имя хранилища и название региона. А затем синхронизируйте его с моим личным хранилищем s3. Возможно ли это? И как?

Ответ №1:

Похоже, что ваше требование:

  • Возьмите данные, хранящиеся в Bucket-A в Account-A
  • Скопируйте его в Bucket-B в Account-B

Самый простой способ сделать это — использовать CopyObject() команду, потому что она может напрямую передавать данные между корзинами (даже между регионами!) без необходимости загрузки и выгрузки.

Для этого вам потребуется один набор учетных данных, для которых есть разрешения на чтение Bucket-A и на запись Bucket-B . Это может быть либо:

  • IAM User-A в Account-A , который может читать Bucket-A , и политика корзины, Bucket-B которая разрешает User-A запись в Bucket-B , ИЛИ
  • IAM User-B в Account-B , который может выполнять запись Bucket-B , и политика корзины на Bucket-A , которая разрешает доступ на чтение для User-B

Использование политики корзины означает, что один набор учетных данных может использовать CopyObject() команду как для чтения, так и для записи. Без этого вам нужно было бы использовать один набор учетных данных для загрузки объекта и другой набор учетных данных для загрузки объекта. Это не самый разумный способ сделать это.

См.: Предоставление доступа между учетными записями к объектам в корзинах S3

Самый простой способ запустить команду копирования — использовать интерфейс командной строки AWS (CLI) aws s3 cp или aws s3 sync команды. В вашем случае, если вы хотите синхронизировать содержимое файлов, вы должны использовать aws s3 sync .

Последний вариант — использовать межрегиональную репликацию — Amazon Simple Storage Service, но это работает только с корзинами в разных регионах. Корзины могут принадлежать разным учетным записям AWS.