Мягкое удаление для контейнеров

Мягкое удаление контейнеров защищает контейнеры от случайного удаления, сохраняя удалённые контейнеры в учетной записи хранения в течение определённого периода. В течение периода хранения можно восстановить состояние контейнера и его содержания на момент мягкого удаления. После истечения срока хранения контейнер и его содержимое будут окончательно удалены.

Функция обратимого удаления контейнера является частью комплексной стратегии защиты данных в рамках учётной записи. Для оптимальной защиты учетной записи хранения корпорация Майкрософт рекомендует включить следующие функции защиты данных:

Для защиты от более широких сценариев потери данных, таких как случайное удаление учетной записи или программ-шантажистов, рассмотрите возможность включения Azure Backup в дополнение к функциям в учетной записи. Чтобы узнать больше о рекомендациях Microsoft по защите данных в зависимости от вашей рабочей нагрузки, смотрите обзор защиты данных.

Tip

Чтобы включить программное удаление blob и container в большом масштабе, используйте встроенную политику Политика Azure Configure soft delete for blobs and containers on storage accounts.

Как работает мягкое удаление контейнера

При включении мягкого удаления контейнеров укажите период хранения удалённых контейнеров от 1 до 365 дней. Срок хранения по умолчанию составляет 7 дней. Выберите минимум семь дней и увеличивайте срок хранения по мере необходимости, исходя из объёма данных и времени, которое может потребоваться для обнаружения и реагирования на события потери данных.

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

Предупреждение

Обратимое удаление контейнера может восстанавливать только целые контейнеры и их содержимое на момент удаления. Чтобы восстановить удалённый blob, если его родительский контейнер не удалён, необходимо использовать blob soft delete или версионирование BLOB-объектов. Восстанавливаемому контейнеру следует оставить исходное имя. Если вы используете исходное имя для создания нового контейнера, вы не сможете восстановить мягко удалённый контейнер.

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

Диаграмма, показывающая, как восстанавливается мягко удаленный контейнер, когда включено мягкое удаление контейнера.

После окончания периода хранения служба хранилища Azure навсегда удаляет контейнер, и вы не можете его восстановить. Отсчет срока хранения начинается с момента удаления контейнера. Срок хранения можно изменить в любое время, но новый параметр применяется только к контейнерам, удаленным после обновления. Контейнеры, которые уже были удалены, удаляются навсегда в зависимости от срока хранения, действовавшего на момент их первоначального удаления.

Отключение мягкого удаления контейнера не приводит к окончательному удалению уже мягко удалённых контейнеров. Они удаляются навсегда в зависимости от периода сохранения, который действовал на момент удаления.

Мягкое удаление контейнера доступно для следующих типов учетных записей хранения:

  • Учетные записи хранения общего назначения версии 1 и 2
  • Учетные записи хранения блочных BLOB-объектов
  • Аккаунты Blob-хранилища

Учетные записи хранения с иерархическим пространством имен, включенным для использования с Azure Data Lake Storage, также поддерживаются.

Версия 2019-12-12 или выше интерфейса REST API службы хранилища Azure поддерживает функцию мягкого удаления контейнера.

Наименее привилегированная встроенная роль для восстановления мягко удаленного контейнера — это Storage Blob Data Contributor.

Внимание

Обратимое удаление контейнера не защищает от удаления учетной записи хранения, но только от удаления контейнеров в этой учетной записи. Чтобы защитить учетную запись хранения от удаления, настройте блокировку для ресурса учетной записи хранения. Дополнительные сведения о блокировке ресурсов Azure Resource Manager см. в статье Блокировка ресурсов для предотвращения непредвиденных изменений.

Соображения по нагрузке

Учитывайте следующие моменты перед включением мягкого удаления контейнера на существующих аккаунтах:

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

  • Контейнеры можно восстановить только под исходным именем: Вы можете восстановить мягко удалённый контейнер только под тем именем, которое он имел при удалении. Если вы создали новый контейнер с таким именем, перед восстановлением его необходимо переименовать или удалить.

  • Более короткий период хранения имеет приоритет: Мягкое удаление контейнеров и мягкое удаление BLOB-объектов имеют независимые периоды хранения. Если длительность сохранения blob soft delete короче, чем длительность сохранения container soft delete, то блобы внутри восстановленного контейнера могут быть навсегда удалены до истечения срока хранения контейнера. Согласуйте два периода хранения, чтобы избежать восстановления контейнера с отсутствующими BLOB-объектами.

  • Изменения срока хранения не имеют обратной силы: Изменение срока хранения применяется только к контейнерам, удалённым после обновления. Контейнеры, уже помеченные как удалённые, сохраняют срок хранения, который действовал на момент их удаления.

  • Чтобы увеличить период хранения для контейнера, уже помеченного как удалённый, его нужно удалить повторно: Чтобы применить более длительный период хранения к контейнеру, который уже помечен как удалённый, восстановите его, а затем снова удалите, когда уже будет действовать новый период хранения.

  • Отключение обратимого удаления не приводит к окончательному удалению существующих контейнеров, помеченных как удалённые: Когда вы отключаете обратимое удаление контейнеров, служба не удаляет немедленно контейнеры, которые уже были удалены обратимо. Они продолжают храниться и остаются доступными для восстановления, пока не истечёт исходный срок хранения.

  • В учетных записях HNS нельзя перечислить контейнеры, помеченные как обратимо удаленные: В учетных записях с иерархическим пространством имен нельзя получить список контейнеров, помеченных как обратимо удаленные. Для восстановления требуется знать точное исходное имя контейнера.

  • Блокирует обновление учётной записи с плоским пространством имён до иерархического пространства имён (ADLS): Миграция на иерархическое пространство имён блокируется, пока для контейнера включено обратимое удаление. Отключите его перед миграцией, затем снова включите после завершения миграции.

Поддержка функций

На поддержку данной функции может повлиять включение протокола Data Lake Storage 2-го поколения, протокола сетевой файловой системы (NFS) 3.0 или протокола SFTP. Если вы включили любую из этих возможностей, см. Поддержка возможностей хранилища BLOB-объектов в учетных записях хранения Azure для оценки поддержки данной функции.

Цены и выставление счетов

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

Чтобы минимизировать затраты, установите как можно более короткий срок хранения, который даст вашей команде достаточно времени, чтобы обнаружить и восстановить данные после случайного удаления. Microsoft рекомендует минимум семь дней, но вы должны корректировать это значение в зависимости от объёма данных вашей рабочей нагрузки и требований.

Мониторинг и устранение неполадок

Отслеживание событий удаления контейнеров с помощью журналов действий Azure Monitor. Чтобы просмотреть контейнеры, помеченные на удаление, в портале Azure, включите Показать удалённые контейнеры в браузере хранилища. Программно используйте операцию List Containers с include=deleted.

  • Я не вижу контейнер, помеченный на удаление: Контейнеры, помеченные на удаление, по умолчанию скрыты. В портале Azure включите Показать удалённые контейнеры в браузере хранилища. Через API вызовите метод List Containers с include=deleted. Если контейнер по-прежнему не отображается, убедитесь, что функция обратимого удаления контейнера была включена до его удаления и что период хранения ещё не истёк.

  • Я не могу восстановить контейнер, потому что имя занято: Вы создали новый контейнер с тем же именем после удаления исходного контейнера. Восстановить контейнер можно только с его исходным именем, поэтому сначала переименуйте или удалите конфликтующий контейнер, а затем выполните восстановление.

  • Я не могу найти свой обратимо удалённый контейнер в аккаунте HNS: Аккаунты с иерархическим пространством имён не поддерживают перечисление обратимо удалённых контейнеров. Восстановление требует точного оригинального названия контейнера.

  • Моё обновление до иерархического пространства имён (ADLS) заблокировано: Контейнерное мягкое удаление блокирует миграцию в иерархическое пространство имён. Отключите обратимое удаление контейнера, выполните миграцию и затем снова включите его после завершения миграции.

  • Мне нужно восстановить несколько контейнеров одновременно: Массовое восстановление недоступно в портале Azure. Используйте Azure PowerShell или Azure CLI для выполнения восстановления с помощью скрипта в нескольких контейнерах.

  • Мне нужно отключить обратимое удаление в больших масштабах после слишком широкого включения этой функции: См. Включение обратимого удаления для контейнеров для получения инструкций по отключению обратимого удаления с помощью различных инструментов.

Следующие шаги