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

Object Lock

Последнее изменение:
к сведению

Object Lock недоступен для бакетов в пуле ru-1.

Object Lock работает по принципу WORM (Write Once Read Many) и позволяет заблокировать объекты, чтобы предотвратить их перезапись или удаление.

Для использования Object Lock в бакете должно быть включено версионирование. Блокировка объектов применяется только к версиям объектов. Если вы включили Object Lock, его нельзя отключить и нельзя приостановить версионирование.

Блокировка может быть разных типов и режимов. В зависимости от типа блокировки ее можно установить на отдельные объекты или на бакет по умолчанию — блокировка будет применяться к новым объектам.

Возможность управления блокировкой также зависит от роли пользователя и правил политики доступа, подробнее в инструкции Управлять доступом в S3. Работать с Object Lock можно только через S3 API и инструменты, которые его используют.

Чтобы управлять блокировкой объектов после настройки Object Lock, используйте инструкцию Управлять блокировкой объекта.

Если вы удалите проект, в котором есть объекты с активной блокировкой, они не будут удалены, пока блокировка активна. При этом они не будут отображаться в панели управления и через API. Чтобы восстановить заблокированные объекты после удаления проекта, создайте тикет.

Типы и режимы блокировки

Блокировка может быть временной и бессрочной. У временной блокировки есть два режима — Governance и Compliance.

Если у объекта одновременно включена временная и бессрочная блокировка, будет приоритет будет у бессрочной блокировки.

БессрочнаяВременная
Режим GovernanceРежим Compliance
На что можно назначитьНа объекты
  • на объекты;
  • на бакет по умолчанию — блокировка будет применяться ко всем новым объектам
  • на объекты;
  • на бакет по умолчанию — блокировка будет применяться ко всем новым объектам
Возможные действия с блокировкойОтключение блокировки
  • сокращение срока блокировки*;
  • продление срока блокировки;
  • изменение режима блокировки на Compliance
Продление срока блокировки
Возможность удаления объектовНельзя никому, пока блокировка включенаМожно*Нельзя никому до истечения срока блокировки

* Доступно только пользователям:

Настроить Object Lock в бакете

Настраивать Object Lock может:

После настройки Object Lock в бакете вы сможете блокировать объекты вручную или загружать объекты сразу с активной блокировкой.

  1. Если у вас не включено версионирование, включите его.
  2. Включите Object Lock в бакете.
  3. Опционально: включите временную блокировку по умолчанию в бакете.

1. Включить версионирование

Используйте подраздел Включить версионирование инструкции Версионирование.

2. Включить Object Lock

Само включение Object Lock не блокирует объекты автоматически.

  1. Если вы не использовали AWS CLI, настройте его.

  2. Откройте CLI.

  3. Включите Object Lock:

    aws s3api put-object-lock-configuration \
    --bucket "<bucket_name>" \
    --object-lock-configuration '{
    "ObjectLockEnabled": "Enabled" \

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

  4. Убедитесь, что Object Lock включен:

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

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

    При включенном Object Lock вернется ответ:

    {
    "ObjectLockConfiguration": {
    "ObjectLockEnabled": "Enabled"
    }
    }

3. Опционально: включить временную блокировку по умолчанию в бакете

Временная блокировка будет применяться ко всем новым объектам в бакете.

  1. Откройте CLI.

  2. Включите временную блокировку в бакете по умолчанию:

    aws s3api put-object-lock-configuration \
    --bucket "<bucket_name>" \
    --object-lock-configuration '{
    "ObjectLockEnabled": "Enabled",
    "Rule": { "DefaultRetention": { "Mode": "<lock_mode>", "<time_gap>": <number> } }
    }'

    Укажите:

    • <bucket_name> — имя бакета;
    • <lock_mode>режим блокировки. Возможные значения — GOVERNANCE или COMPLIANCE;
    • <time_gap> — единица времени, в которой будет измеряться срок блокировки. Возможные значения — DAYS или YEARS;
    • <number> — срок блокировки в днях или годах. Не может быть больше 100 лет или 36500 дней.
  3. Убедитесь, что временная блокировка в бакете включена:

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

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

    Пример ответа при включенной временной блокировке:

    {
    "ObjectLockConfiguration": {
    "ObjectLockEnabled": "Enabled",
    "Rule": {
    "DefaultRetention": {
    "Mode": "GOVERNANCE",
    "Days": 30
    }
    }
    }
    }