Настройка блокировок версии объекта (object lock)
Если в бакете включены версионирование и блокировки версий объектов, вы можете настроить блокировку версии, уже загруженной в бакет.
Установить или настроить временную блокировку (governance или compliance)
Минимальные необходимые роли:
- для установки блокировки —
storage.uploader
; - для изменения существующей блокировки —
storage.admin
.
Временную строгую блокировку (compliance-mode retention) можно только продлить. Сократить ее или заменить на управляемую блокировку (governance-mode retention) нельзя.
Чтобы установить или настроить блокировку:
- В консоли управления
в списке сервисов выберите Object Storage и перейдите в бакет, для объектов которого хотите настроить блокировку. - На панели слева выберите
Объекты. - Чтобы видеть все версии объектов в списке, справа от поля поиска объекта в бакете включите опцию Показать версии.
- В списке объектов выберите нужный, нажмите
→ Блокировка. - В открывшемся окне включите опцию Временная блокировка.
- Выберите Тип блокировки по умолчанию:
- Временная управляемая — пользователь с ролью
storage.admin
может обойти блокировку, изменить ее срок или снять ее. - Временная строгая — пользователь с ролью
storage.admin
может только продлить блокировку. Обойти, сократить или снять блокировку до ее окончания нельзя.
- Временная управляемая — пользователь с ролью
- Установите Срок блокировки по умолчанию в днях или годах. Отсчитывается от момента, когда версия объекта загружена в бакет.
- Нажмите Сохранить.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Выполните команду:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3api put-object-retention \ --bucket <имя_бакета> \ --key <ключ_объекта> \ --version-id <идентификатор_версии> \ --retention Mode=<тип_блокировки>,RetainUntilDate="<дата_и_время>" \ --bypass-governance-retention
Где:
-
--bucket
— имя вашего бакета. -
--key
— ключ объекта. -
--version-id
— идентификатор версии объекта. -
--retention
— настройки временной блокировки (оба параметра обязательны):-
Mode
— тип блокировки:GOVERNANCE
— временная управляемая блокировка. Этот тип нельзя указать, если на версию объекта уже установлена строгая блокировка.COMPLIANCE
— временная строгая блокировка.
-
RetainUntilDate
— дата и время окончания блокировки в формате RFC3339 . Например,2025-01-01T00:00:00
. Конец блокировки указывается в часовом поясе UTC±00:00 . Чтобы указать другой часовой пояс, добавьте к концу записи+
или-
и смещение от UTC±00:00. Подробнее см. пример. Если на версию объекта уже установлена строгая блокировка, ее можно только продлить, то есть новые дата и время должны быть позже текущих.
-
-
--bypass-governance-retention
— флаг, подтверждающий обход блокировки. Его нужно установить, если на версию объекта уже установлена управляемая блокировка.
-
Воспользуйтесь методом S3 API putObjectRetention.
Снять временную управляемую блокировку (governance)
Минимально необходимая роль — storage.admin
.
Чтобы снять блокировку:
- В консоли управления
в списке сервисов выберите Object Storage и перейдите в нужный бакет. - На панели слева выберите
Объекты. - Чтобы видеть все версии объектов в списке, справа от поля поиска объекта в бакете включите опцию Показать версии.
- В списке объектов выберите нужный, нажмите
→ Блокировка. - В открывшемся окне выключите опцию Временная блокировка.
- Нажмите Сохранить.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Выполните команду:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3api put-object-retention \ --bucket <имя_бакета> \ --key <ключ_объекта> \ --version-id <идентификатор_версии> \ --retention '{}' \ --bypass-governance-retention
Где:
--bucket
— имя вашего бакета.--key
— ключ объекта.--version-id
— идентификатор версии объекта.--retention
— настройки временной блокировки. В обоих параметрах указаны пустые строки, чтобы снять блокировку.--bypass-governance-retention
— флаг, подтверждающий обход блокировки.
Воспользуйтесь методом S3 API putObjectRetention с заголовком X-Amz-Bypass-Governance-Retention: true
и пустым элементом Retention
.
Установить или удалить бессрочную блокировку (legal hold)
Минимально необходимая роль — storage.uploader
.
Чтобы установить или удалить блокировку:
- В консоли управления
в списке сервисов выберите Object Storage и перейдите в нужный бакет. - На панели слева выберите
Объекты. - Чтобы видеть все версии объектов в списке, справа от поля поиска объекта в бакете включите опцию Показать версии.
- В списке объектов выберите нужный, нажмите
→ Блокировка. - В открывшемся окне включите или выключите опцию Бессрочная блокировка.
- Нажмите Сохранить.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Выполните команду:
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3api put-object-legal-hold \ --bucket <имя_бакета> \ --key <ключ_объекта> \ --version-id <идентификатор_версии> \ --legal-hold Status=<статус_блокировки>
Где:
-
--bucket
— имя вашего бакета. -
--key
— ключ объекта. -
--version-id
— идентификатор версии объекта. -
--legal-hold
— настройки бессрочной блокировки:-
Status
— статус блокировки:ON
— блокировка установлена.OFF
— блокировка не установлена.
-
-
Воспользуйтесь методом S3 API putObjectLegalHold.
Примеры
Установка управляемой блокировки со смещением по московскому времени (UTC+3)
aws --endpoint-url=https://storage.yandexcloud.net/ \ s3api put-object-retention \ --bucket test-bucket \ --key object-key/ \ --version-id 0005FA15******** \ --retention Mode=GOVERNANCE,RetainUntilDate="2025-01-01T00:00:00+03:00" \