Как разобрать AuthorizationPermissionDenied при перечислении blob в управляемом хранилище Databricks: ownership, management plane, Blob Data RBAC, scope и минимальный пакет для владельца.
Определите назначение хранилища
Azure Databricks описывает default storage как полностью управляемое объектное хранилище для внутренних данных и функций платформы. Наличие storage account в Azure portal не означает, что его содержимое является пользовательским интерфейсом для прямого перечисления. Зафиксируйте, какую задачу нужно решить: аудит объёма, доступ к таблице, экспорт данных или расследование ошибки. Если цель относится к данным Unity Catalog или рабочей области, сначала найдите поддерживаемую поверхность Databricks, а не пытайтесь читать внутренние контейнеры.
Разделите management plane и data plane
Роль Reader или Contributor на Azure-ресурсе позволяет видеть свойства и управлять ресурсом в пределах Actions, но не обязательно читать blob data. Microsoft отдельно документирует роли Storage Blob Data Reader, Contributor и Owner, содержащие DataActions. Поэтому успешное открытие storage account и 403 на List Blobs совместимы: это разные проверки. Сохраните principal type, способ аутентификации и точный scope существующих назначений, не добавляя новых ролей во время сбора.
Классифицируйте 403 по полям ответа
Руководство Azure Storage предлагает начинать с request ID, времени, authentication type, error code и операции. AuthorizationPermissionDenied указывает на отсутствие нужного разрешения для конкретного data-plane запроса, но причины могут включать scope, роль, условие, ACL или выбранную identity. Не публикуйте SAS, ключи и заголовок Authorization. Сравните чтение свойств контейнера и перечисление blob одной identity; различие помогает уточнить недостающее DataAction, но не является основанием автоматически назначить более широкую роль.
Проверьте минимальную область
Если владелец Databricks подтверждает, что прямой доступ поддерживается и нужен, определите минимальный контейнер и операцию. Для только чтения Microsoft предусматривает Storage Blob Data Reader; Contributor и Owner добавляют запись или управление. Учитывайте наследованные назначения и условия, потому что эффективные права складываются по иерархии. Не назначайте роль на subscription или весь managed resource group ради теста. Сначала согласуйте контейнерный scope и отдельную тестовую identity, затем дождитесь распространения назначения.
Передайте пакет владельцу платформы
Пакет включает время UTC, workspace и storage account в маскированном виде, назначение данных, identity type, операцию List, error code, request ID в закрытом тикете, существующие роли и scope, network path и подтверждение владельца, что прямое чтение допустимо. Критерий успеха — чтение только согласованного контейнера минимальной ролью или переход к поддерживаемому API Databricks. Если storage является внутренним и управляемым, остановитесь: 403 может быть ожидаемой границей, а расширение доступа нарушит модель владения.
Материал подготовлен самостоятельно с автоматизацией и редакционно проверен 29 июля 2026 года по обезличенному сигналу Microsoft Q&A и официальной документации Azure и Databricks; идентификаторы и ключи не использовались.
Источники и проверка
- Microsoft Learn — default storage Databricks проверено 2026-07-29
- Microsoft Learn — диагностика Storage 403 проверено 2026-07-29
- Microsoft Learn — роли доступа к Blob Data проверено 2026-07-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.