Загрузка файлов из внешнего хранилища s3 с использованием лямбды - PullRequest
0 голосов
/ 03 апреля 2019

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

1 Ответ

0 голосов
/ 04 апреля 2019

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

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

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

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...