На уровне бакета Object Storage позволяет:
Управлять блокировкой в бакете можно через AWS S3 API и сторонние инструменты. Раздел описывает работу с блокировкой с помощью AWS CLI и AWS S3 API.
Управлять блокировкой на уровне бакета могут только пользователи с ролью s3e.admin.
Чтобы настраивать конфигурацию временной и бессрочной блокировки для конкретных объектов, включите блокировку в бакете. Команда не блокирует данные, а только включает возможность использовать блокировку.
После включения блокировки:
нельзя выключить блокировку;
нельзя приостановить версионирование в бакете.
Чтобы включить блокировку в бакете:
Если оно выключено или приостановлено, включите его.
Включите блокировку:
aws s3api put-object-lock-configuration \--bucket <bucket_name> \--endpoint-url https://s3.cloud.ru \--object-lock-configuration ObjectLockEnabled=Enabled
Где <bucket_name> — название бакета.
В бакете будет включена возможность использовать блокировку. Вы можете блокировать отдельные версии объектов или настроить временную блокировку по умолчанию для всех версий объектов в бакете.
Чтобы автоматически блокировать новые версии объектов в бакете по заданному правилу, настройте блокировку по умолчанию. По умолчанию можно устанавливать только временную блокировку (Retention).
Блокировку по умолчанию можно менять и отключать без ограничений. Новые настройки будут применяться к новым версиям объектов. Уже загруженные версии сохранят свои настройки блокировки.
Если установить на версию объекта строгую блокировку (режим Compliance), никто не сможет снять ее, изменить ее срок, поменять режим или удалить версию объекта. Версия будет полностью защищена от удаления и перезаписи до окончания срока блокировки. Хранение данных будет тарифицироваться по стандартным правилам.
Чтобы установить или редактировать временную блокировку по умолчанию:
Если оно выключено или приостановлено, включите его.
Если в бакете отключена возможность блокировки, включите ее.
Выполните команду put-object-lock-configuration с указанием параметров "ObjectLockEnabled": "Enabled" и "Rule":
aws s3api put-object-lock-configuration \--bucket <bucket_name> \--endpoint-url https://s3.cloud.ru \--object-lock-configuration '{"ObjectLockEnabled": "Enabled","Rule": {"DefaultRetention": {"Mode": <object_lock_mode>,<object_lock_retention_time_unit>: <object_lock_retention_time>}}}'
Где:
<bucket_name> — название бакета.
<object_lock_mode> — режим временной блокировки. Возможные значения:
COMPLIANCE — для строгой блокировки.
GOVERNANCE — для управляемой блокировки.
<object_lock_retention_time_unit> — единица измерения для срока временной блокировки. Возможные значения:
Days — дни.
Years — годы.
<object_lock_retention_time> — срок блокировки. Ограничения:
для срока в днях — максимум 36 524 дня.
для срока в годах — максимум 100 лет.
Пример команды, которая устанавливает строгую блокировку для бакета my-bucket на один год:
aws s3api put-object-lock-configuration \--bucket my-bucket \--endpoint-url https://s3.cloud.ru \--object-lock-configuration '{"ObjectLockEnabled": "Enabled","Rule": {"DefaultRetention": {"Mode": "COMPLIANCE","Years": 1}}}'
Все новые версии объектов в бакете будут автоматически блокироваться по заданному правилу.
Чтобы отключить временную блокировку в бакете по умолчанию:
Выполните команду put-object-lock-configuration с указанием параметра ObjectLockEnabled=Enabled и без указания Rule:
aws s3api put-object-lock-configuration \--bucket <bucket_name> \--endpoint-url https://s3.cloud.ru \--object-lock-configuration ObjectLockEnabled=Enabled
Где <bucket_name> — название бакета.
Новые версии объектов будут загружаться в бакет без блокировки. Настройки блокировки уже загруженных весрий не изменятся.
Object Storage позволяет просмотреть:
включена ли возможность использовать блокировку в бакете;
настройки временной блокировки по умолчанию, если она включена.
Чтобы просмотреть настройки блокировки в бакете:
Выполните запрос:
aws s3api get-object-lock-configuration \--bucket <bucket_name> \--endpoint-url https://s3.cloud.ru
Где <bucket_name> — название бакета.
Если возможность блокировки в бакете включена, команда вернет результат вида:
{"ObjectLockConfiguration": {"ObjectLockEnabled": "Enabled","Rule": {"DefaultRetention": {"Mode": <object_lock_mode>,<object_lock_retention_time_unit>: <object_lock_retention_time>}}}}
Где Rule — настройки временной блокировки по умолчанию. Параметр возвращается в ответе, если блокировка по умолчанию установлена.
Значения параметров Rule:
<object_lock_mode> — режим временной блокировки. Возможные значения:
COMPLIANCE — строгая блокировка.
GOVERNANCE — управляемая блокировка.
<object_lock_retention_time_unit> — единица измерения для срока временной блокировки. Возможные значения:
Days — дни.
Years — годы.
<object_lock_retention_time> — срок блокировки.
Если возможность блокировки в бакете выключена, команда вернет ошибку:
An error occurred (ObjectLockConfigurationNotFoundError) when calling the GetObjectLockConfiguration operation: Object Lock configuration does not exist for this bucket