Как переместить объект из Amazon S3 в Glacier с включенным Vault Locked?

Я ищу решение для перемещения объектов Amazon S3 в Glacier с включенным Vault Lock (как описано здесь https://aws.amazon.com/blogs/aws/glacier-vault-lock/). Я хотел бы использовать для этого встроенные инструменты Amazon (управление жизненным циклом или другие), если это возможно.

Я не могу найти никаких инструкций или вариантов для этого. Кажется, что S3 позволяет перемещать объект только в класс хранилища Glacier. Но это не обеспечивает целостности данных и не защищает от потери данных.

Я знаю, что смогу сделать это с помощью программы. Он загрузит объект S3 и переместит его в Glacier через соответствующие API REST. Такой подход кажется слишком сложным для этой простой задачи.


person Joosep Simm    schedule 24.01.2017    source источник


Ответы (1)


Представьте это так:

  • Glacier - это сервис AWS.

  • S3 - это сервис AWS.

  • Но S3 также является заказчиком сервиса Glacier.

Когда вы переносите объект из S3 в класс хранилища Glacier, S3 сохраняет объект в Glacier ... используя учетную запись AWS, принадлежащую S3.

Те объекты в S3, которые используют класс хранилища GLACIER, находятся не в «ваших» хранилищах Glacier, а в хранилищах, принадлежащих S3.

Это согласуется с внешними наблюдениями:

  • Вы не можете увидеть эти объекты S3 в хранилищах из консоли Glacier.

  • Вам не нужно предоставлять S3 какие-либо разрешения IAM для доступа к Glacier (напротив, вы действительно должны предоставить S3 разрешение на публикацию уведомлений о событиях в SQS, SNS или Lambda)

  • Glacier не выставляет счет за объекты класса хранения Glacier, в отличие от S3.

В этом свете то, чего вы пытаетесь достичь, совершенно иное. Вы хотите сохранить некоторые архивы в вашем хранилище Glacier с помощью вашей политики, и этот контент в настоящее время просто «случайно» хранится в S3.

Решение - загрузка с S3 и последующая загрузка в Glacier.

Но это не обеспечивает целостность данных и не защищает от потери данных.

Целостность полезной нагрузки может быть гарантирована при загрузке в Glacier, поскольку алгоритм хеширования дерева эффективно предотвращает поврежденные загрузки.

Загрузка с S3, если объект не сохранен с помощью SSE-C, ETag - это хеш MD5 сохраненного объекта, если используется загрузка отдельных частей, или хеш MD5 в шестнадцатеричном коде объединенных двоично-кодированных хэшей MD5 частей, за которым следует - и количество частей. В идеале при загрузке на S3 лучше хранить хэш (например, sha256) в метаданных объекта, например x-amz-meta-content-sha256.

Защита от потери данных - да, здесь Glacier предлагает больше функций, но S3 не лишен возможности здесь: политики корзины с совпадающим действием DENY всегда переопределяют любое конфликтующее действие ALLOW, независимо от того, является ли оно в политике корзины или любой другой политике IAM (например, роли, пользователя).

person Michael - sqlbot    schedule 24.01.2017
comment
Ваше объяснение хорошее, хорошо объясняет, что происходит под капотом. Комментарий Но это не обеспечивает целостность данных и не защищает от потери данных. был примерно S3 Glacier класса хранения. Я согласен с тем, что я могу безопасно загрузить объект с S3 и загрузить его в свое хранилище Glacier Vault. Я просто надеялся, что у Amazon есть решение для этого случая. - person Joosep Simm; 25.01.2017
comment
@JoosepSimm - решение для какого именно случая? Управление версиями объектов в S3 обеспечивает защиту от случайной перезаписи / удаления. Политики корзины S3 могут защитить от преднамеренной перезаписи. S3 проверяет Content-MD5 и / или x-amz-content-sha255 при загрузках, чтобы гарантировать, что загрузка отклонена, а не сохранена, если загрузка не была передана без изменений. После сохранения в S3 в любом классе хранилища объекты и их метаданные (включая временную метку) неизменяемы. Консоль S3 появляется, чтобы разрешить редактирование метаданных, но не совсем - это фактически создает новую копию существующего объекта с новой меткой времени. - person Michael - sqlbot; 25.01.2017
comment
Мне нужна защита от преднамеренного удаления файлов - например, когда основная учетная запись переходит к враждебной стороне. Как я понял, из S3 можно удалить старые версии. Если он защищен политикой безопасности, то можно изменить политику, а затем удалить старые версии. Замок Хранилища в Леднике имеет такую ​​защиту. - person Joosep Simm; 26.01.2017
comment
Если главная (root) учетная запись скомпрометирована, вы правы ... по сути, все находится под угрозой, кроме заблокированных хранилищ. Вроде как несвязанный, у меня есть процесс синхронизации из S3 в Google Cloud Storage (GCS), который реплицирует все, что есть в S3, в GCS. Учетные данные, которые позволяют это сделать, настроены и хранятся таким образом, что компрометация одной системы может раскрыть вам мои данные, но чтобы полностью уничтожить меня (дрожь), вам придется скомпрометировать обе платформы. О взломе корневого каталога см. Также alestic.com/2014/09/aws-root-password. - person Michael - sqlbot; 26.01.2017