Документация "Инферит Облако"

Защита данных с помощью S3 Object Lock (WORM)

Функция  позволяет реализовать модель WORM (write-once-read-many), предотвращая удаление или перезапись объектов в течение заданного периода.
Object Lock работает в нескольких режимах на уровне бакета или объекта внутри.

  • Режим Compliance: В этом режиме защищенная версия объекта не может быть удалена или перезаписана никем, включая корневого пользователя (root). Изменить режим или сократить срок хранения невозможно.
  • Режим Governance: В этом режиме объекты также защищены от удаления или перезаписи, однако существуют исключения для пользователей с особыми правами.

Основные принципы работы

  • Object Lock подразумевает работу на уровне конкретных версий объектов. При…

Документация на нашем сайте предлагает исчерпывающие инструкции и руководства, созданные для повышения вашей эффективности при работе с облачными сервисами. В ней подробно описаны ключевые функции, процессы настройки инструментов, управление ресурсами, меры безопасности и практические сценарии использования

Настройка WORM

Защита данных с помощью S3 Object Lock (WORM)

Функция  позволяет реализовать модель WORM (write-once-read-many), предотвращая удаление или перезапись объектов в течение заданного периода.
Object Lock работает в нескольких режимах на уровне бакета или объекта внутри.

  • Режим Compliance: В этом режиме защищенная версия объекта не может быть удалена или перезаписана никем, включая корневого пользователя (root). Изменить режим или сократить срок хранения невозможно.
  • Режим Governance: В этом режиме объекты также защищены от удаления или перезаписи, однако существуют исключения для пользователей с особыми правами.

Основные принципы работы

  • Object Lock подразумевает работу на уровне конкретных версий объектов. При загрузке файла с тем же именем создается новая версия. Если для новой версии не заданы настройки защиты, её можно будет удалить, при этом старая защищенная версия останется нетронутой.

  • Активировать Object Lock возможно только на этапе создания бакета. При этом автоматически активируется версионность объектов. 
  • При включении защиты на бакет, она автоматически применяется ко всем новым объектам.

  • Правила жизненного цикла не могут удалять защищенные объекты.
  • Бакет нельзя удалить, пока в нем есть хотя бы одна защищенная версия объекта, срок действия которой не истек.

Настройка через AWS CLI

Установка на Linux

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
sudo apt install unzip
unzip awscliv2.zip
sudo ./aws/install
aws --version

Установка на Windows

msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

Настройка подключения

aws configure
# Ввести:
# AWS Access Key ID: YOUR_ACCESS_KEY
# AWS Secret Access Key: YOUR_SECRET_KEY
# Default region name: None
# Default output format: json


# Добавить эндпоинт в конфигурацию
aws configure set endpoint_url https://s3.inferit.cloud


# Проверить работу загрузив список бакетов
aws s3api list-buckets

Создание бакета с опцией Object Lock

aws s3api create-bucket --bucket <Имя бакета> --object-lock-enabled-for-bucket

Настройка периода удержания по умолчанию (Bucket Level)

Чтобы все новые объекты автоматически получали защиту, настройте конфигурацию удержания для бакета.

  • Mode: COMPLIANCE или GOVERNANCE

  • Days или Years: период защиты.

aws s3api put-object-lock-configuration --bucket <Имя бакета> --endpoint-url https://s3.inferit.cloud --object-lock-configuration '{\"ObjectLockEnabled\": \"Enabled\", \"Rule\": {\"DefaultRetention\": {\"Mode\": \"COMPLIANCE\", \"Days\": 30}}}'

Установка защиты для конкретного объекта

Для отдельного объекта указывается конкретное время истечения периода защиты RetainUntilDate

aws s3api put-object-retention --bucket <Имя бакета> --key <Имя объекта> --retention "{\`"Mode\`": \`"GOVERNANCE\`", \`"RetainUntilDate\`": \`"2026-06-10T23:59:59Z\`"}"

Проверка

Для проверки защиты конкретного объекта указываем параметр key

aws s3api get-object-retention --bucket <Имя бакета> --key <Имя объекта>

Пример ответа:

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

Удаление и восстановление объектов.

При удалении объекта, на его версию ставится маркер удаления, но сами данные не пропадут. Их можно вернуть, удалив этот маркер. Версионность позволяет хранить всю цепочку действий с объектом: создание, перезапись, удаление.

Просмотр и снятие маркера удаления с объекта

aws s3api list-object-versions --bucket <Имя бакета> --key <Имя объекта>

В разделе DeleteMarkers найти нужный файл с указанным ID. Выполнить удаление маркера

aws s3api delete-object --bucket <Имя бакета> --key <Имя объекта> --version-id <ID маркера>

После удаления маркера объект снова будет отображаться в хранилище.

Настройка через REST API

Для работы с API потребуются консольные утилиты (curl, wget) или графические утилиты (Postman, Insomnia). Далее примеры будет на Insomnia, поскольку он бесплатный и Open Source.

Установка

Для установки необходимо скачать установщик с официального сайта – https://insomnia.rest/download . Доступны реализации для Windows, Linux, Mac.

Настройка

Чтобы запросы к объектному хранилищу выполнялись успешно, в программе необходимо внести настройки: Method, URL, Auth, Body.
2026 02 05 01 06 04

  1. Перейти на вкладку Auth, выбрать метод авторизации AWS IAM.
  2. Заполнить поля как на скриншоте:
    Access Key – ключ доступа для пользователя ЛКК
    Secret Key – секретный ключ для пользователя ЛКК
    Region – None
    Service – s3
  3. Перейти на вкладку Body, выбрать содержимое в формате XML и заполнить содержимое (при необходимости).
  4. Указать S3 Endpoint для отправки запроса и нажать кнопку Send.
  5. Справа будет вернувшийся результат.

Запрос всех бакетов.

GET https://s3.inferit.cloud/


No Body

Создание бакета с опцией Object Lock

Указать новую запись Headers: x-amz-bucket-object-lock-enabled : true 

PUT https://s3.inferit.cloud/<Имя бакета>?object-lock


No Body

Настройка защиты для бакета

PUT https://s3.inferit.cloud/<Имя бакета>?object-lock


xml
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com">
   <ObjectLockEnabled>Enabled</ObjectLockEnabled>
   <Rule>
      <DefaultRetention>
         <Mode>COMPLIANCE</Mode>
         <Days>365</Days>
      </DefaultRetention>
   </Rule>
</ObjectLockConfiguration>

Настройка защиты для объекта

PUT https://s3.inferit.cloud/<Имя объекта>?retention


xml
<Retention xmlns="http://s3.amazonaws.com">
   <Mode>COMPLIANCE</Mode>
   <RetainUntilDate>2026-12-31T23:59:59Z</RetainUntilDate>
</Retention>

Проверка статуса защиты

Для поиска объекта добавляем prefix=<Имя объекта>

GET https://s3.inferit.cloud/<Имя объекта>?retention


No Body

Просмотр ID маркеров удаления 

GET https://s3.inferit.cloud/<Имя бакета>?versions


No Body
Получить доступ в личный кабинет клиента
Публикации в СМИ
Подключить сервис
Получить демо-доступ
Получить консультацию