Управлять блокировкой объекта
Если у вас в бакете настроен Object Lock, вы можете управлять блокировкой объектов. Доступные действия с блокировкой зависят от типа и режима блокировки.
Управлять блокировкой объекта могут:
- Владелец аккаунта;
- пользователи с ролями
member,s3.adminиobject_storage:admin; - пользователи с ролями
s3.bucket.user,s3.userиobject_storage_userесли политика доступа разрешает им соответствующие действия.
Временная блокировка
Проверить наличие временной блокировки
AWS CLI
-
Откройте CLI.
-
Если вы хотите проверить блокировку определенной версии объекта:
2.1. Получите идентификатор версии объекта:
aws s3api list-object-versions --bucket <bucket_name> --prefix <path_to_object>Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете.
2.2. У нужной версии объекта скопируйте идентификатор, который указан в поле
VersionId. -
Проверьте наличие блокировки:
aws s3api get-object-retention \
--bucket <bucket_name> \
--key <path_to_object> \
--version-id <version_id>Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете;- опционально:
--version-id <version_id>— параметр, который указывает на определенную версию объекта. Здесь<version_id>— идентификатор версии, который вы скопировали на шаге 2.2. Если не указать параметр, блокировка будет проверена у текущей версии объекта.
Включить временную блокировку
Если у объекта одновременно включены временная и бессрочная блокировки, приоритет имеет бессрочная блокировка.
Чтобы временная блокировка по умолчанию применялась ко всем новым объектам в бакете, используйте подраздел Включить временную блокировку по умолчанию в бакете инструкции Object Lock.
Чтобы загрузить объект сразу с блокировкой, используйте AWS CLI, подробнее в подразделе Загрузить объект инструкции AWS CLI.
AWS CLI
-
Откройте CLI.
-
Если вы хотите заблокировать не текущую версию объекта:
2.1. Получите идентификатор версии объекта:
aws s3api list-object-versions --bucket <bucket_name> --prefix <path_to_object>Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете.
2.2. У нужной версии объекта скопируйте идентификатор, который указан в поле
VersionId. -
Заблокируйте объект:
aws s3api put-object-retention \
--bucket <bucket_name> \
--key <path_to_object> \
--version-id <version_id> \
--retention '{"Mode":"<lock_mode>","RetainUntilDate":"<date>"}'Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете;- опционально:
--version-id <version_id>— параметр, который указывает на определенную версию объекта. Здесь<version_id>— идентификатор версии, который вы скопировали на шаге 2.2. Если не указать параметр, блокировка будет применена к текущей версии объекта; <lock_mode>— режим блокировки. Возможные значения —GOVERNANCEилиCOMPLIANCE;<date>— дата, до которой объект будет заблокирован, в формате ISO 8601, например2025-09-06T00:00:00Z. Срок блокировки объекта не может быть больше 100 лет или 36 500 дней.
Изменить срок временной блокировки
Если установлен режим блокировки:
- Governance — срок блокировки можно сократить или продлить;
- Compliance — срок блокировки можно только продлить.
Чтобы изменить срок блокировки, используйте подраздел Включить временную блокировку и в поле RetainUntilDate укажите новое значение.
Изменить режим временной блокировки
Можно только изменить режим блокировки Governance на Compliance.
Чтобы изменить режим блокировки, используйте подраздел Включить временную блокировку и в поле Mode укажите значение COMPLIANCE.
Отключить временную блокировку
Можно отключить только временную блокировку в режиме Governance.
Отключить ее может только пользователь с ролью member или пользователь с другой ролью с доступом в S3, если политика доступа разрешает ему действие s3:BypassGovernanceRetention.
AWS CLI
-
Откройте CLI.
-
Если вы хотите отключить блокировку определенной версии объекта:
2.1. Получите идентификатор версии объекта:
aws s3api list-object-versions --bucket <bucket_name> --prefix <path_to_object>Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете.
2.2. У нужной версии объекта скопируйте идентификатор, который указан в поле
VersionId. -
Отключите блокировку:
aws s3api put-object-retention \
--bucket <bucket_name> \
--key "<path_to_object>" \
--version-id <version_id> \
--retention '{}' \
--bypass-governance-retentionУкажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете;- опционально:
--version-id <version_id>— параметр, который указывает на определенную версию объекта. Здесь<version_id>— идентификатор версии, который вы скопировали на шаге 2.2. Если не указать параметр, блокировка будет отключена у текущей версии объекта.
Бессрочная блокировка
Проверить наличие бессрочной блокировки
AWS CLI
-
Откройте CLI.
-
Если вы хотите проверить блокировку определенной версии объекта:
2.1. Получите идентификатор версии объекта:
aws s3api list-object-versions --bucket <bucket_name> --prefix <path_to_object>Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете.
2.2. У нужной версии объекта скопируйте идентификатор, который указан в поле
VersionId. -
Проверьте наличие блокировки:
aws s3api get-object-legal-hold \
--bucket <bucket_name> \
--key <path_to_object> \
--version-id <version_id>Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете;- опционально:
--version-id <version_id>— параметр, который указывает на определенную версию объекта. Здесь<version_id>— идентификатор версии, который вы скопировали на шаге 2.2. Если не указать параметр, блокировка будет проверена у текущей версии объекта.
Включить бессрочную блокировку
Если у объекта одновременно включены временная и бессрочная блокировки, приоритет имеет бессрочная блокировка.
AWS CLI
-
Откройте CLI.
-
Если вы хотите заблокировать не текущую версию объекта:
2.1. Получите идентификатор версии объекта:
aws s3api list-object-versions --bucket <bucket_name> --prefix <path_to_object>Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете.
2.2. У нужной версии объекта скопируйте идентификатор, который указан в поле
VersionId. -
Заблокируйте объект:
aws s3api put-object-legal-hold \
--bucket <bucket_name> \
--key <path_to_object> \
--version-id <version_id> \
--legal-hold '{"Status": "ON"}'Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете;- опционально:
--version-id <version_id>— параметр, который указывает на определенную версию объекта. Здесь<version_id>— идентификатор версии, который вы скопировали на шаге 2.2. Если не указать параметр, блокировка будет применена к текущей версии объекта.
Отключить бессрочную блокировку
AWS CLI
-
Откройте CLI.
-
Если вы хотите отключить блокировку не текущей версии объекта:
2.1. Получите идентификатор версии объекта:
aws s3api list-object-versions --bucket <bucket_name> --prefix <path_to_object>Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете.
2.2. У нужной версии объекта скопируйте идентификатор, который указан в поле
VersionId. -
Отключите блокировку:
aws s3api put-object-legal-hold \
--bucket <bucket_name> \
--key <path_to_object> \
--version-id <version_id> \
--legal-hold '{"Status": "OFF"}'Укажите:
<bucket_name>— имя бакета;<path_to_object>— путь к объекту в бакете;- опционально:
--version-id <version_id>— параметр, который указывает на определенную версию объекта. Здесь<version_id>— идентификатор версии, который вы скопировали на шаге 2.2. Если не указать параметр, блокировка будет снята с текущей версии объекта.