Политики проживания арендатора и субъекта направляют первичные данные, индексы, логи, экспорты, резервные копии, асинхронные очереди и диспетчеризацию воркеров в регионы, определённые адаптером, блокируют доступ к запрещённым регионам и определяют поведение при миграции и аварийном восстановлении без утверждения соответствия нормативным требованиям.
Статус пакета: пакет с поддержкой ИИ. Статическая проверка пакета пройдена; сценарии реализации ещё не выполнены, требуется проверка специалистом перед стабильным использованием.
Решение
Каждый арендатор имеет политику проживания с ссылкой на коды регионов, определённые адаптером. Все поверхности хранения и диспетчеризации, перечисленные в residency-surfaces.yaml, определяют регион назначения перед записью или постановкой в очередь. Запрещённые регионы блокируются. Кэш политик инвалидируется при обновлении; устаревшее или неоднозначное состояние кэша запрещает запись, если fail_closed_on_stale_policy_cache установлено в true. Миграция следует состояниям из migration-state.yaml с сохранением артефактов переключения.
Область применения
- Привязка политики проживания, хуки маршрутизации, принудительное блокирование, маршрутизация очередей и диспетчеризации воркеров, межрегиональная миграция и ограничения аварийного восстановления.
Вне этого блока
- Юридическое определение регионов, удовлетворяющих контракту с клиентом; адаптеры определяют набор разрешённых регионов.
- Глобальное CDN-кэширование публичных неперсональных ресурсов.
- Модель авторизации изоляции арендаторов (см. блок tenant isolation).
Контракт
- Каждый путь записи обращается к резолверу проживания перед фиксацией; отсутствие политики блокируется, если профиль требует явной политики для класса арендатора.
- Запрещённый регион назначения возвращает ошибку в формате problem-details и не сохраняет частично реплики в запрещённом регионе.
- Поисковые индексы, асинхронные экспортные задания, async_queues и worker_dispatch наследуют то же региональное решение, что и первичные данные для того же контекста арендатора.
- fail_closed_on_stale_policy_cache запрещает запись при устаревшем или находящемся в процессе инвалидирования кэше политик.
- Цели резервного копирования должны находиться в регионе, указанном в backup_allowed для политики арендатора; межграничное резервное копирование требует явного флага в профиле и записи аудита.
- Миграция проходит через состояния из migration-state.yaml; переключение cutover атомарно меняет чтение и запись согласно протоколу профиля и генерирует artifact_fields.
- Аварийное переключение (DR) читает из вторичного региона только при отказе проверок здоровья первичного и предварительном одобрении вторичного в политике; записи во время DR подчиняются правилам split_brain_write_block_during_dr.
- Структурированные логи и телеметрия с персональными данными используют ту же маршрутизацию регионов, что и первичное хранилище, если logs_in_scope установлено в true в профиле.
Руководство по реализации
- Централизовать разрешение регионов в библиотеке, используемой хуками ORM, постановкой заданий в очередь, планировщиками экспорта и маршрутизаторами диспетчеризации воркеров.
- Помечать объекты метаданными residency_region при создании для последующего аудита и инвентаризации миграции.
- Выполнять предварительные проверки перед переключением миграции, сравнивая количество строк и выборочные контрольные суммы согласно migration_verify_sample_percent.
- Инвалидировать кэш политик при обновлениях перед новыми записями, если policy_cache_invalidation_on_update установлено в true.
Обработка сбоев и меры безопасности
- Отказ резолвера блокирует записи, требующие решений о проживании.
- Частичный откат миграции восстанавливает полномочия первичного региона и помечает вторичные копии как карантинные в состоянии rollback_quarantined.
- Неправильно настроенные глобальные значения по умолчанию для бакетов не могут переопределять вывод резолвера для конкретного арендатора.
Проверка и эксплуатация
- Тесты пытаются выполнить записи и постановку в очередь в запрещённые регионы и ожидают отказ без побочных эффектов.
- Учения по миграции выполняют копирование, проверку и переключение на тестовых арендаторах ежеквартально.
- Метрики отслеживают отказы с блокировкой, длительность миграции, отказы из-за устаревшего кэша политик и активации DR.
Предположения при внедрении
- Имена и числовые значения в example.yaml, residency-surfaces.yaml и migration-state.yaml — это профиль внедрения, а не универсальные значения по умолчанию.
- Команда внедрения определяет каталоги регионов, контрактные ограничения и географию DR без утверждения соответствия нормативам этим блоком.