Я забыл установить флажок «изменить владельца» для репликации S3 — есть ли способ обновить существующие реплицированные объекты?

#amazon-web-services #amazon-s3

#amazon-web-services #amazon-s3

Вопрос:

Я использую репликацию S3 для копирования корзины между учетными записями AWS (оба находятся в одном регионе).).

Когда я изначально настраивал репликацию, я не заметил, что мне нужно было установить флажок «изменить владельца», чтобы разрешить доступ к объектам в целевой корзине (исходная корзина использует шифрование AES-256).).

Я понял это после того, как у меня уже скопировано несколько терабайт на другую учетную запись.

Есть ли какой-либо способ обновить существующие скопированные объекты в целевой корзине, чтобы разрешить доступ, чтобы мне не приходилось копировать их снова и снова?

К вашему сведению — Для выполнения копирования я использовал межрегиональную репликацию с помощью метода копирования в себя, как показано здесь на странице центра знаний AWS (см. Раздел » Использовать межрегиональную репликацию или репликацию в том же регионе»)-

https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-transfer-between-buckets/

Если кто-нибудь знает более быстрый или лучший способ, я весь внимание!!

Ответ №1:

Вы можете выполнить итерацию по всем объектам и обновить список управления доступом. Это необходимо сделать, используя учетные данные из исходной учетной записи «владельца» объекта.

 aws s3api put-object-acl --bucket XX --key XX --acl bucket-owner-full-control
  

Я только что провел эксперимент:

  • Скопировал объект из учетной записи-A в учетную запись-B
  • Account-B не удалось выполнить приведенную выше команду, потому что она не была владельцем корзины
  • Учетная запись-A может выполнить команду
  • После этого Account-B может выполнить команду, указывающую, что владелец изменился

Самым простым способом было бы написать небольшой скрипт (например, на Python), который получает список корзины и выдает put_object_acl() команду, используя учетные данные из исходной учетной записи. Или, если вы не уверены в том, что пишете это, просто создайте электронную таблицу Excel с именами файлов и формулой для генерации приведенной выше команды.

Было бы лучше запускать команды из экземпляра Amazon EC2 в том же регионе, что и корзина, поскольку обмен данными будет быстрее, чем выполнение этого с вашего собственного компьютера.