Перейти к основному содержимому

Блокировка объектов

Если AWS CLI еще не установлен, установите и настройте его. Для работы с объектным хранилищем используйте команды s3api и s3.

AWS CLI

Проверить конфигурацию объектов бакета

В терминале выполните команду:

aws s3api get-object-lock-configuration --bucket <bucket_name>

Укажите:

<bucket_name> — имя бакета.

Создание бакета с блокировкой объектов

В терминале выполните команду:

aws s3api s3api create-bucket bucket <bucket_name> object-lock-enabled-for-bucket

Укажите:

<bucket_name> — имя бакета.

Настройка конфигурации блокировки объектов

В терминале выполните команду:

aws s3api put-object-lock-configuration \
--bucket <bucket_name> \
--object-lock-configuration '{
"ObjectLockEnabled": "Enabled",
"Rule": {
"DefaultRetention": {
"Mode": "<mode>",
"Days": <days>
}
}
}'

Укажите:

<bucket_name> — имя бакета; <mode>COMPLIANCE или GOVERNANCE; <days> — количество дней в формате DD.

Проверка текущей блокировки объекта

В терминале выполните команду:

aws s3api get-object-retention --bucket <bucket_name> --key <object_name>

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта.

Снятие блокировки в режиме GOVERNANCE

Непосредственно снять блокировку нельзя, пока RetainUntilDate не истекла. Но вы можете, установить RetainUntilDate в максимально близкую, но все же будущую дату (например, завтра), чтобы блокировка скоро закончилась:

В терминале выполните команду:

aws s3api put-object-retention \
--bucket <bucket_name> \
--key <object_name> \
--retention "Mode=GOVERNANCE, RetainUntilDate=<date>" \
--bypass-governance-retention

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта; <date> — на дату в будущем в формате YYYY-MM-DD.

Продлить срок блокировки (оба режима)

В терминале выполните команду:

aws s3api put-object-retention \
--bucket <bucket_name> \
--key <object_name> \
--retention "Mode=<mode>, RetainUntilDate=<date>" \
--bypass-governance-retention

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта; <mode>COMPLIANCE или GOVERNANCE; <date> — на дату в будущем в формате YYYY-MM-DD.

Удалить объект с блокировкой GOVERNANCE

В терминале выполните команду:

aws s3api delete-object \
--bucket <bucket_name> \
--key <object_name> \
--bypass-governance-retention

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта.

Получить информацию о блокировке конкретной версии

В терминале выполните команду:

aws s3api get-object-retention \
--bucket <bucket_name> \
--key <object_name> \
--version-id <versionid> \

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта; <versionid> — уникальный идентификатор версии.

Снятие блокировки объекта конкретной версии в режиме GOVERNANCE

Непосредственно снять блокировку нельзя, пока RetainUntilDate не истекла. Но вы можете, установить RetainUntilDate в максимально близкую, но все же будущую дату (например, завтра), чтобы блокировка скоро закончилась:

В терминале выполните команду:

aws s3api put-object-retention \
--bucket <bucket_name> \
--key <object_name> \
--version-id <versionid> \
--retention "Mode=GOVERNANCE, RetainUntilDate=<date>" \
--bypass-governance-retention

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта; <versionid> — уникальный идентификатор версии; <date> — на дату в будущем в формате YYYY-MM-DD.

Продлить срок блокировки объекта конкретной версии (оба режима)

В терминале выполните команду:

aws s3api put-object-retention \
--bucket <bucket_name> \
--key <object_name> \
--version-id <versionid> \
--retention "Mode=<mode>, RetainUntilDate=<date>" \
--bypass-governance-retention

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта; <versionid> — уникальный идентификатор версии; <mode>COMPLIANCE или GOVERNANCE; <date> — на дату в будущем в формате YYYY-MM-DD.

Удалить объект конкретной версии с блокировкой GOVERNANCE

В терминале выполните команду:

aws s3api delete-object \
--bucket <bucket_name> \
--key <object_name> \
--version-id <versionid> \
--bypass-governance-retention

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта; <versionid> — уникальный идентификатор версии.

В терминале выполните команду:

aws s3api get-object-legal-hold \
--bucket <bucket_name> \
--key <object_name> \

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта.

В терминале выполните команду:

aws s3api put-object-legal-hold \
--bucket <bucket_name> \
--key <object_name> \
--legal-hold Status=ON

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта.

В терминале выполните команду:

aws s3api put-object-legal-hold \
--bucket <bucket_name> \
--key <object_name> \
--legal-hold Status=OFF

Укажите:

<bucket_name> — имя бакета; <object_name> — имя объекта.

Подробнее о блокировке объектов см. в статье Блокировка объектов. Подробнее об объектах см. в статье Об объектах.