Раздел описывает управление бессрочной блокировкой версий объектов. Блокировка применяется к отдельной версии объекта и не влияет на другие версии.
Блокировать версии можно через AWS S3 API и сторонние инструменты. Раздел описывает работу с блокировкой с помощью AWS CLI и AWS S3 API.
Доступ к действиям с блокировкой зависит от роли пользователя. Подробнее — в разделе «Действия и роли при блокировке».
Бессрочную блокировку могут установить только пользователи с ролью s3e.admin.
Установить блокировку можно при загрузке версии объекта и для существующей версии.
Чтобы загрузить в бакет версию объекта и одновременно установить для него бессрочную блокировку:
Если оно выключено или приостановлено, включите его.
Если в бакете отключена возможность блокировки, включите ее.
Выполните команду put-object с параметром --object-lock-legal-hold-status ON:
aws s3api put-object \--bucket <bucket_name> \--key <object_key> \--body <local_file_path> \--version-id <version_id> \--endpoint-url https://s3.cloud.ru \--object-lock-legal-hold-status ON
Где:
<bucket_name> — название бакета.
<object_key> — ключ (название) объекта.
<local_file_path> — путь к файлу с данными объекта.
<version_id> — идентификатор версии объекта.
Версия объекта будет загружена в бакет и заблокировна бессрочно. Никто не сможет удалить или перезаписать ее.
Чтобы установить бессрочную блокировку для уже загруженной версии объекта:
Если оно выключено или приостановлено, включите его.
Если в бакете отключена возможность блокировки, включите ее.
Выполните команду:
aws s3api put-object-legal-hold \--bucket <bucket_name> \--key <object_key> \--version-id <version_id> \--endpoint-url https://s3.cloud.ru \--legal-hold Status=ON
Где:
<bucket_name> — название бакета.
<object_key> — ключ (название) объекта.
<version_id> — идентификатор версии объекта.
Версия объекта будет заблокировна бессрочно. Никто не сможет удалить или перезаписать ее.
Пользователи с определенными родлями могут снять бессрочную блокировку.
Снять бессрочную блокировку с версии объекта могут только пользователи с ролью s3e.admin.
Чтобы снять бессрочную блокировку:
Если оно выключено или приостановлено, включите его.
Если в бакете отключена возможность блокировки, включите ее.
Выполните команду:
aws s3api put-object-legal-hold \--bucket <bucket_name> \--key <object_key> \--version-id <version_id> \--endpoint-url https://s3.cloud.ru \--legal-hold Status=OFF
Где:
<bucket_name> — название бакета.
<object_key> — ключ (название) объекта.
<version_id> — идентификатор версии объекта.
Бессрочная блокировка будет снята с версии объекта. Если для версии нет действующей временной блокировки, данные можно будет удалить или перезаписать.
Просматривать статус бессрочной блокировки могут пользователи с ролями s3e.admin, s3e.editor и s3e.viewer.
Чтобы просмотреть статус бессрочной блокировки (Legal Hold) у версии объекта:
Выполните команду:
aws s3api get-object-legal-hold \--bucket <bucket_name> \--key <object_key> \--version-id <version_id> \--endpoint-url https://s3.cloud.ru
Где:
<bucket_name> — название бакета.
<object_key> — ключ (название) объекта.
<version_id> — идентификатор версии объекта.
Ответ, если блокировка установлена:
{"LegalHold": {"Status": "ON"}}
Ответ, если блокировка была снята:
{"LegalHold": {"Status": "OFF"}}
Если блокировка никогда не была установлена, команда вернет ошибку:
An error occurred (NoSuchObjectLockConfiguration) when calling the GetObjectRetention operation: The specified object does not have a ObjectLock configuration
Просмотр настроек блокировки также доступен в выводе команд get-object и head-object.