Управление блокировками версий объектов (object lock) в бакете
В версионируемых бакетах можно настроить механизм блокировки версий объектов (object lock). Когда он включен, вы можете установить на версию объекта блокировку, то есть запрет на удаление или перезапись. Также для бакета можно настроить блокировки по умолчанию: они будут устанавливаться на все новые версии объектов.
Примечание
В бакетах с приостановленным версионированием блокировка версий объектов недоступна.
Включить возможность блокировок
Включение механизма блокировок не устанавливает блокировки на уже загруженные версии объектов, а только позволяет устанавливать их.
Минимальная необходимая роль — storage.admin
.
Чтобы включить возможность блокировок:
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
Выполните следующую команду:
aws s3api put-object-lock-configuration \
--bucket <имя_бакета> \
--object-lock-configuration ObjectLockEnabled=Enabled \
--endpoint-url=https://storage.yandexcloud.net
Где:
--bucket
— имя бакета.--object-lock-configuration
— настройки блокировок в бакете. ЗначениеObjectLockEnabled=Enabled
включает механизм блокировок.--endpoint-url
— эндпоинт Object Storage.
Воспользуйтесь методом S3 API putObjectLockConfiguration, методом REST API update для ресурса Bucket или вызовом gRPC API BucketService/Update.
Настроить блокировки по умолчанию
Блокировки по умолчанию устанавливаются на все новые версии объектов, загружаемые в бакет. Настройки не влияют на уже загруженные версии.
Минимальная необходимая роль — storage.admin
.
Чтобы настроить блокировки по умолчанию:
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Опишите конфигурацию блокировок по умолчанию в формате JSON:
{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "<тип_блокировки>", "Days": <срок_блокировки_в_днях>, "Years": <срок_блокировки_в_годах> } } }
Где:
-
ObjectLockEnabled
— статус механизма блокировок:Enabled
— механизм включен.Внимание
Это обязательное поле. Если не указать его со значением
Enabled
, появится сообщение об ошибкеInvalidRequest
, а механизм блокировок не включится. См. также Выключить возможность блокировок. -
Mode
— тип блокировки:GOVERNANCE
— временная управляемая блокировка.COMPLIANCE
— временная строгая блокировка.
-
Days
— срок блокировки в днях от момента загрузки версии объекта. Должен быть положительным целым числом. Нельзя указывать вместе сYears
. -
Years
— срок блокировки в годах от момента загрузки версии объекта. Должен быть положительным целым числом. Нельзя указывать вместе сDays
.
Готовую конфигурацию можно поместить в файл, например,
default-object-lock.json
. -
-
Загрузите конфигурацию в бакет:
aws s3api put-object-lock-configuration \ --bucket <имя_бакета> \ --object-lock-configuration file://default-object-lock.json \ --endpoint-url=https://storage.yandexcloud.net
Где:
--bucket
— имя бакета.--object-lock-configuration
— настройки блокировок по умолчанию. В данном случае указаны в файлеdefault-object-lock.json
.--endpoint-url
— эндпоинт Object Storage.
Выключить возможность блокировок
Выключение механизма блокировок не снимает установленные блокировки: они продолжают работать, их нельзя будет снять или изменить.
Минимальная необходимая роль — storage.admin
.
Чтобы выключить возможность блокировок:
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
Выполните следующую команду:
aws s3api put-object-lock-configuration \
--bucket <имя_бакета> \
--object-lock-configuration ObjectLockEnabled="" \
--endpoint-url=https://storage.yandexcloud.net
Где:
--bucket
— имя бакета.--object-lock-configuration
— настройки блокировок в бакете. ЗначениеObjectLockEnabled=""
отключает механизм блокировок.--endpoint-url
— эндпоинт Object Storage.
Чтобы выключить возможность блокировок версий объектов в бакете, воспользуйтесь методом S3 API putObjectLockConfiguration, методом REST API update для ресурса Bucket или вызовом gRPC API BucketService/Update.
В теле запроса передайте параметр блокировки версий объектов с пустым значением:
ObjectLockConfiguration
— для S3 API.objectLock
— для REST API.object_lock
— для gRPC API.
Пример тела HTTP-запроса для S3 API:
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/" />