Похоже, ваше требование:
- Возьмите данные, хранящиеся в
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.