Легко создавать и удалять данные BLOB-объектов. Есть способы защиты от случайной потери данных, например:
- Блокировка ресурсов для защиты от случайного удаления учетной записи хранения
- Azure RBAC для ограничения доступа к учетной записи / ключам.
- Мягкое удаление для восстановления после случайного удаления BLOB-объектов.
Это уже хороший пакет, но такое слабое звено. AFAIK, контейнеру блобов не хватает такой безопасности, как для аккаунтов / блобов.
Учитывая, что контейнеры - это хорошая единица для работы с нумерацией BLOB-объектов и пакетным удалением, это плохо.
Как защититься от случайного / злонамеренного удаления контейнера и снизить риск потери данных?
То, что я рассмотрел ..
Идея 1: Синхронизация копирования всех данных в другую учетную запись хранения - но это приводит к сложности синхронизации (инкрементное копирование?) И значительному увеличению затрат.
Идея 2: Заблокируйте ключи и заставьте всех работать над тщательно продуманными ключами SAS, но это очень хлопотно с десятками токенов SAS и их обновлениями + иногда удаление контейнера действительно требуется и авторизован. Чувствует себя достаточно сложным, чтобы сломаться. Я бы предпочел безопасность в любом случае.
Идея 3: Отменить удаление как-нибудь?
Согласно документации Delete Container данные контейнера не удаляются сразу:
Операция «Удалить контейнер» помечает указанный контейнер для удаления. Контейнер и все содержащиеся в нем большие двоичные объекты позже удаляются во время сборки мусора.
Однако нет информации о том, когда и как работает сборщик мусора для учетной записи хранения, и если / как / в течение какого времени можно восстановить данные контейнера.
Есть ли лучшие варианты, которые я пропустил?