#amazon-web-services #amazon-s3
Вопрос:
У меня есть учетная запись учетной записи AWS-A и корзина под ней — НАЗНАЧЕНИЕ КОРЗИНЫ. У меня есть другая учетная запись AWS ACCOUNT-B, к которой нет доступа, но мне предоставлен пользователь IAM IAM-B и ИСТОЧНИК КОРЗИНЫ, к которому IAM-B имеет доступ (чтение / запись).
Я хочу использовать IAM-B для синхронизации ИСТОЧНИКА КОРЗИНЫ с КОРЗИНОЙ НАЗНАЧЕНИЯ каждую ночь. Если возможно, все в AWS, я не хочу запускать синхронизацию aws.
Как мне это сделать?
Спасибо!
Ответ №1:
Вы можете настроить репликацию корзины S3 для двух разных учетных записей. Репликация работает асинхронно (обычно в течение 15 минут, но иногда до пары часов, как описано в разделе Сколько времени занимает репликация объектов на Amazon S3?). Для запуска репликации не требуется никаких дополнительных служб.
Вам нужно будет предоставить учетной записи A разрешения для корзины B (целевой корзины) с помощью политики корзины, чтобы репликация работала. Подробное описание конфигурации можно найти в разделе Настройка репликации, когда исходные и целевые корзины принадлежат разным учетным записям.
Комментарии:
1. Спасибо за помощь!
Ответ №2:
Вам потребуется единый набор учетных данных, который имеет:
- Доступ на чтение к исходной корзине и
- Доступ на запись в целевой сегмент
Поскольку вам был предоставлен пользователь IAM B, который имеет доступ к исходной корзине, и предполагается, что целевая корзина находится под вашим контролем, самым простым способом было бы создать политику корзины в целевой корзине, которая предоставляет доступ на запись ( PutObject
) этому пользователю IAM B.
Таким образом, вы можете использовать единый набор учетных данных, который имеет разрешение на чтение из исходной корзины и запись в целевую корзину.
Важно: при записи в корзину с набором учетных данных, который не принадлежит той же учетной записи, что и целевая корзина, важно указать --acl bucket-owner-full-control
. Это устанавливает «владельца» объекта для целевой учетной записи.
Невозможно запланировать операцию синхронизации AWS CLI в S3, поэтому вы можете выбрать:
- Используйте задание cron на компьютере где-нибудь в Интернете или
- Запланируйте функцию AWS Lambda, которая будет копировать объекты, используя жестко запрограммированные учетные данные для работы от имени пользователя IAM B, а не от имени роли IAM, назначенной функции, или
- Попросите Account-B настроить репликацию S3, чтобы S3 немедленно реплицировал объекты между корзинами (без необходимости вызова команды копирования)
Последний вариант, безусловно, самый простой! (Для этого потребуется политика корзины в целевой корзине, которая разрешает процессу репликации записывать объекты в корзину.)
Комментарии:
1. Спасибо за помощь!
2. Я использовал лямбда-функцию для копирования объектов в папку / tmp, а из этой папки / tmp скопировал в свою собственную корзину s3.