Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Каждый защищенный запрос к учетной записи Службы хранилища Azure должен быть авторизован. По умолчанию запросы можно авторизовать с помощью учетных данных Microsoft Entra или с помощью ключа доступа к учетной записи для авторизации общего ключа. Из этих двух типов авторизации идентификатор Microsoft Entra обеспечивает более высокую безопасность и удобство использования по общему ключу и рекомендуется корпорацией Майкрософт. Чтобы клиенты использовали идентификатор Microsoft Entra для авторизации запросов, вы можете запретить запросы к учетной записи хранения, авторизованной с общим ключом.
Если запретить авторизацию с общим ключом для учетной записи хранения, служба хранилища Azure будет отклонять все последующие запросы к этой учетной записи, которые авторизованы с помощью ключей доступа к учетной записи. Будут успешно выполнены только защищенные запросы, авторизованные с идентификатором Microsoft Entra. Дополнительные сведения об использовании идентификатора Microsoft Entra см. в статье "Авторизация доступа к данным в служба хранилища Azure".
Свойство AllowSharedKeyAccess учетной записи хранения не задано по умолчанию и не возвращает значение, пока не будет явно задано. Учетная запись хранения разрешает запросы, которые были авторизованы с помощью общего ключа, если это свойство имеет значение null или true.
В этой статье описывается, как использовать платформу DRAG (Detection-Remediation-Audit-Governance) для непрерывного управления авторизацией общего ключа для учетной записи хранения.
Предварительные условия
Прежде чем запретить доступ к общему ключу для любой из учетных записей хранения:
- Понимание того, как запрет общего ключа влияет на токены SAS
- Рассмотрите возможность совместимости с другими инструментами и службами Azure
- Рассмотрите необходимость запретить авторизацию общего ключа для использования условного доступа Microsoft Entra
- Авторизация доступа к данным файлов или перенос рабочих нагрузок Azure Files
Как запрет использования общего ключа влияет на токены SAS
Если для учетной записи хранения запрещен доступ по общему ключу, Служба хранилища Azure обрабатывает маркеры SAS на основе типа SAS и службы, которая является целью запроса. В следующей таблице показано, как авторизуется каждый тип SAS, и как Служба хранилища Azure обрабатывает этот SAS, если свойство AllowSharedKeyAccess учетной записи хранения имеет значение false.
| Тип SAS | Тип авторизации | Поведение, если AllowSharedKeyAccess имеет значение false |
|---|---|---|
| SAS для делегирования пользователей (только хранилище BLOB-объектов) | Microsoft Entra ID | Запрос разрешен. Для обеспечения повышенной безопасности Майкрософт рекомендует по возможности использовать SAS для делегирования пользователей. |
| Service SAS | Общий ключ | Запрос запрещен для всех Служб хранилища Azure. |
| SAS для учетной записи | Общий ключ | Запрос запрещен для всех Служб хранилища Azure. |
Метрики и журналы Azure в Azure Monitor не различают типы подписей для общего доступа (SAS). И фильтр SAS в обозревателе метрик Azure, и поле SAS в журналах службы хранилища Azure в Azure Monitor сообщают о запросах, авторизованных с помощью любого типа SAS. Однако для разных типов подписей для общего доступа авторизация выполняется по-разному и работают по-другому, если доступ по общему ключу запрещен.
- Маркер службы SAS или маркер учетной записи SAS авторизуется по общему ключу и не будет принят в запросе к Blob-хранилищу, если свойство AllowSharedKeyAccess имеет значение false.
- SAS делегирования пользователей авторизован с использованием Microsoft Entra ID и будет разрешен для запроса к хранилищу BLOB при установленном значении свойства AllowSharedKeyAccess равным false.
При оценке трафика к учетной записи хранилища, следует помнить, что метрики и журналы, как описано в разделе Определение типа авторизации, используемой клиентскими приложениями, могут включать запросы, выполненные с использованием SAS на основе делегирования пользователя.
Для получения дополнительных сведений о подписях общего доступа, см. статью Предоставление ограниченного доступа к ресурсам хранилища Azure с помощью подписей общего доступа (SAS).
Учитывайте совместимость с другими инструментами и службами Azure
Основное множество служб Azure использует авторизацию по общему ключу для взаимодействия со Службой хранилища Azure. Если запретить авторизацию по общему ключу для учетной записи хранения, эти службы не смогут получать доступ к данным в этой учетной записи, и ваши приложения могут серьезно пострадать.
Некоторые инструменты Azure предоставляют возможность авторизоваться через Microsoft Entra для доступа к хранилищу Azure. В следующей таблице перечислены некоторые популярные инструменты Azure, а также указано, могут ли они использовать Microsoft Entra ID для авторизации запросов к хранилищу Azure.
| Инструмент Azure | Авторизация Microsoft Entra для хранилища Azure |
|---|---|
| Портал Azure | Поддерживается. Сведения об авторизации с помощью учетной записи Microsoft Entra из портала Azure см. в статье "Выбор способа авторизации доступа к данным BLOB-объектов в портале Azure". |
| AzCopy | Поддерживается для хранилища BLOB-объектов. Сведения об авторизации операций AzCopy см. в разделе Выбор порядка предоставления учетных данных авторизации в документации AzCopy. |
| Обозреватель службы хранилища Azure | Поддерживается для хранилища BLOB-данных, хранилища очередей, хранилища таблиц и хранилища данных Azure Data Lake. Доступ к хранилищу файлов Microsoft Entra ID не поддерживается. Убедитесь, что выбран правильный клиент Microsoft Entra. Дополнительные сведения см. в разделе Начало работы с Обозревателем службы хранилища. |
| Azure PowerShell | Поддерживается. Для получения информации о том, как авторизовать команды PowerShell для операций с BLOB или очередями с помощью Microsoft Entra ID, см. разделы "Запуск команд PowerShell с учетными данными Microsoft Entra для доступа к данным BLOB" или "Запуск команд PowerShell с учетными данными Microsoft Entra для доступа к данным очереди". |
| Azure CLI | Поддерживается. Сведения о том, как авторизовать команды Azure CLI с помощью учетных данных Microsoft Entra для доступа к данным блобов и очередей, см. в руководстве Запуск команд Azure CLI с учетными данными Microsoft Entra для доступа к данным блобов или очередей. |
| Центр Интернета вещей Azure | Поддерживается. Дополнительные сведения см. в разделе Поддержка Центра Интернета вещей для виртуальных сетей. |
| Azure Cloud Shell | Azure Cloud Shell — это интегрированная оболочка на портале Azure. Azure Cloud Shell размещает файлы для хранения в общей папке Azure в учетной записи хранения. Эти файлы станут недоступными, если для этой учетной записи хранения запретить авторизацию по общему ключу. Дополнительные сведения см. в статье Сохранение файлов в Azure Cloud Shell. Чтобы выполнить команды в Azure Cloud Shell для управления учетными записями хранения, в которых запрещен доступ по общему ключу, сначала убедитесь, что вам предоставлены необходимые разрешения для этих учетных записей через Azure RBAC. Общие сведения см. в статье Что такое управление доступом на основе ролей в Azure (Azure RBAC)? |
Запретить авторизацию общего ключа для использования условного доступа Microsoft Entra
Чтобы защитить учетную запись хранилища Azure с помощью политик условного доступа Microsoft Entra, необходимо отключить авторизацию с общим ключом для учетной записи хранения.
Разрешение доступа к данным файлов или переход рабочих нагрузок на Azure Files.
служба хранилища Azure поддерживает авторизацию Microsoft Entra для запросов на Файлы Azure, хранилище BLOB-объектов, хранилище очередей и хранилище таблиц. Однако по умолчанию портал Azure использует авторизацию общего ключа для доступа к общим папкам Azure. Если вы запрещаете авторизацию общего ключа для учетной записи хранения, которая не настроена с соответствующими назначениями RBAC, запросы к Azure Files будут завершаться ошибкой, и вы не сможете получить доступ к общим файлам Azure в портале Azure.
Чтобы устранить эту проблему, рекомендуется использовать один из трех подходов:
- Выполните следующие действия , чтобы авторизовать доступ к данным файла с помощью учетной записи Microsoft Entra или
- Перенесите любые данные Azure Files в отдельную учетную запись хранения перед запретом доступа к учетной записи с помощью общего ключа или
- Не применяйте этот параметр к учетным записям хранения, поддерживающим рабочие нагрузки Файлы Azure.
Определение учетных записей хранения, разрешающих доступ к общему ключу
Существует два способа идентификации учетных записей хранения, которые разрешают доступ к общему ключу:
- Проверка параметра доступа к общему ключу для нескольких учетных записей
- Настройка политики Azure для доступа по Общему ключу в режиме аудита
Проверка настройки доступа по общему ключу для нескольких учетных записей
Чтобы проверить настройку доступа по общему ключу в наборе учетных записей хранения с оптимальной производительностью, используйте Azure Resource Graph Explorer на портале Azure. Дополнительные сведения об использовании Azure Resource Graph Explorer см. в статье Краткое руководство: выполнение первого запроса по Azure Resource Graph с помощью Azure Resource Graph Explorer.
Выполнение следующего запроса в Resource Graph Explorer возвращает список учетных записей хранения с параметром доступа по общему ключу для каждой учетной записи:
resources
| where type =~ 'Microsoft.Storage/storageAccounts'
| extend allowSharedKeyAccess = parse_json(properties).allowSharedKeyAccess
| project subscriptionId, resourceGroup, name, allowSharedKeyAccess
Настройте политику Azure для доступа к общему ключу в режиме аудита
Политика Azure "Учетные записи хранения должны запрещать доступ по общему ключу" предотвращает возможность для пользователей с соответствующими разрешениями настраивать новые или существующие учетные записи хранения для разрешения авторизации общего ключа. Настройте эту политику в режиме аудита, чтобы определить учетные записи хранения, в которых разрешена авторизация общего ключа. После изменения приложений на использование Microsoft Entra вместо общего ключа для авторизации можно обновить политику, чтобы запретить доступ к общему ключу.
Дополнительные сведения о встроенной политике см. в статье "Учетные записи хранения" должны препятствовать доступу к общему ключу в списке встроенных определений политик.
Назначьте встроенную политику для области ресурсов
Чтобы назначить встроенную политику для соответствующей области на портале Azure, выполните следующие действия:
На портале Azure выполните поиск по слову Политика, чтобы найти панель мониторинга "Политика Azure".
В разделе Создание выберите Задания.
Выберите Назначить политику.
На вкладке Основные сведения страницы Назначение политики в разделе Область укажите область назначения политики. Нажмите кнопку "Дополнительно " (...), чтобы выбрать подписку и необязательную группу ресурсов.
В поле определения политики нажмите кнопку "Дополнительно" (...) и введите общий доступ к ключу в поле поиска. Выберите определение политики с именем учетные записи хранения должны предотвратить доступ по общему ключу.
Выберите Просмотреть и создать.
На вкладке "Просмотр и создание" просмотрите назначение политики, а затем нажмите кнопку "Создать ", чтобы назначить определение политики указанной области.
Мониторинг соответствия политике
Чтобы отслеживать учетные записи хранения для соответствия политике доступа к общему ключу, выполните следующие действия.
На панели мониторинга Azure Policy в разделе "Создание" выберите "Назначения".
Найдите и выберите назначение политики, созданное в предыдущем разделе.
Выберите вкладку "Просмотр соответствия".
Все учетные записи хранения в пределах назначения политики, которые не соответствуют требованиям политики, отображаются в отчете о соответствии.
Чтобы получить дополнительные сведения о том, почему учетная запись хранения не соответствует требованиям, выберите "Сведения " по причине соответствия требованиям.
Определение типа авторизации, используемой клиентскими приложениями
Перед внесение этого изменения необходимо понять, как запрет авторизации с общим ключом может повлиять на клиентские приложения. Для этого включите ведение журнала и метрики для учетной записи хранения. Затем вы можете проанализировать шаблоны запросов к вашей учетной записи в течение некоторого периода времени и понять, как авторизуются запросы.
Используйте метрики для определения количества запросов, которые получает учетная запись хранения и которые авторизованы с помощью общего ключа или общей подписи доступа (SAS). Используйте журналы, чтобы определить, какие клиенты отправляют эти запросы.
SAS может быть авторизован с помощью общего ключа или идентификатора Microsoft Entra. Дополнительные сведения об интерпретации запросов, выполняемых с помощью подписей совместного доступа, см. статью Как запрет использования общего ключа влияет на маркеры SAS.
Определение количества и частоты запросов, авторизованных с помощью общего ключа
Для отслеживания авторизации запросов к учетной записи хранения используйте обозреватель метрик Azure на портале Azure. Дополнительные сведения об обозревателе метрик см. в статье "Анализ метрик" с помощью обозревателя метрик Azure Monitor.
Чтобы создать метрику, которая отслеживает запросы, авторизованные с помощью общего ключа или SAS, выполните следующие действия.
Войдите в свою учетную запись хранения на портале Azure. В разделе Мониторинг выберите Метрики.
Появится новое поле метрик:
Если это не так, нажмите кнопку "Добавить метрику".
В диалоговом окне Metric (Метрики) укажите следующие значения.
- В поле Scope оставьте значение имени учетной записи хранения.
- Задайте для пространства имен метрик значение Account (Учетная запись). Эта метрика будет сообщать обо всех запросах к учетной записи хранения.
- В поле Metric (Метрика) задайте значение Transactions (Транзакции).
- В поле Aggregation (Агрегат) задайте значение Sum (Сумма).
Эта новая метрика будет отображать сумму количества транзакций в учетной записи хранения в течение заданного интервала времени. В результате эта метрика должна выглядеть, как показано на рисунке:
Затем нажмите кнопку Add filter (Добавить фильтр), чтобы создать фильтр по метрике для типа авторизации.
В диалоговом окне фильтра укажите следующие значения.
- В поле Property (свойство) задайте значение Authentication (Авторизация).
- В поле Operator (Оператор) укажите знак равенства (=).
- В поле Values (Значения) выберите Account Key (Ключ учетной записи) и SAS.
В правом верхнем углу выберите диапазон времени, для которого хотите просматривать метрику. Можно также указать, степень детализации агрегирования запросов, задав интервалы от 1 минуты до 1 месяца. Например, чтобы просмотреть запросы за последние 30 дней, агрегированные по дням, задайте в параметре Time range (Диапазон времени) 30 дней, а в параметре Time granularity (Степень детализации времени) — 1 день.
После настройки метрики запросы к учетной записи хранения начнут отображаться на графике. На следующем рисунке показаны запросы, которые были авторизованы с помощью общего ключа или с помощью маркера SAS. Запросы суммируются по дням за последние тридцати дней.
Вы также можете настроить правило генерации оповещений, чтобы получать уведомления, когда к учетной записи хранения будет сделано определенное количество запросов, авторизованных с помощью общего ключа. Дополнительные сведения см. в статье Создание и просмотр оповещений метрик, а также управление ими с помощью Azure Monitor.
Анализ журналов для выявления клиентов, авторизующих запросы с помощью общего ключа или SAS
Журналы Службы хранилища Azure записывают сведения о запросах к учетной записи хранения, в том числе о том, как был авторизован запрос. Вы можете проанализировать журналы, чтобы определить, какие клиенты авторизуют запросы с помощью общего ключа, а какие — с помощью маркера SAS.
Чтобы регистрировать запросы к учетной записи службы хранилища Azure и оценивать, как они авторизованы, вы можете использовать ведение журнала хранилища Azure в Azure Monitor. Дополнительные сведения см. в разделе Мониторинг службы хранилища Microsoft Azure.
Журналирование Azure Storage в Azure Monitor поддерживает выполнение запросов журналов для анализа данных журналов. Для запроса журналов можно использовать рабочую область Azure Log Analytics. Дополнительные сведения о запросах журналов см. в разделе Руководство: начало работы с запросами Log Analytics.
Создание параметра диагностики на портале Azure
Чтобы регистрировать в журнале данные службы хранилища Azure с помощью Azure Monitor и анализировать их с помощью Azure Log Analytics, необходимо сначала создать параметр диагностики, который указывает, данные каких типов запросов для каких служб хранилища следует регистрировать в журнале. После настройки ведения журнала для учетной записи хранения журналы доступны в рабочей области Log Analytics. Чтобы создать рабочую область, см. Создание рабочей области Log Analytics в портале Azure.
Сведения о создании параметра диагностики в портал Azure см. в статье "Создание параметров диагностики" в Azure Monitor.
Для справки по полям, доступным в журналах службы хранилища Azure в Azure Monitor, см. журналы ресурсов.
Журналы запросов для запросов, выполненных с использованием общего ключа или SAS
Журналы службы хранилища Azure в Azure Monitor включают тип авторизации, который использовался для выполнения запроса к учетной записи хранения. Чтобы получить журналы для запросов, выполненных за последние семь дней, которые были авторизованы с помощью общего ключа или SAS, откройте рабочую область Log Analytics. Затем вставьте следующий запрос в поле создания запроса к журналу и запустите его. Этот запрос отображает десять IP-адресов, с которых чаще всего отправлялись запросы, авторизованные с помощью общего ключа или SAS:
StorageBlobLogs
| where AuthenticationType in ("AccountKey", "SAS") and TimeGenerated > ago(7d)
| summarize count() by CallerIpAddress, UserAgentHeader, AccountName
| top 10 by count_ desc
Вы также можете настроить на основе этого запроса правило генерации оповещений, чтобы получать уведомления о запросах, авторизованных с помощью общего ключа или SAS. Дополнительные сведения см. в статье Создание и просмотр оповещений журналов, а также управление ими с помощью Azure Monitor.
Исправление авторизации с помощью общего ключа
После того как вы проанализируете способы авторизации запросов к учетной записи хранения, можно предпринять действия по запрету доступа с помощью общего ключа. Но сначала необходимо обновить все приложения, использующие авторизацию общего ключа для использования идентификатора Microsoft Entra. Вы можете отслеживать журналы и метрики, как описано в разделе Определение типа авторизации, используемой клиентскими приложениями, чтобы наблюдать за переходом. Дополнительные сведения об использовании идентификатора Microsoft Entra для доступа к данным в учетной записи хранения см. в статье "Авторизация доступа к данным в служба хранилища Azure".
Когда вы будете уверены, что можете безопасно отклонять запросы, авторизованные с помощью общего ключа, задайте для свойства AllowSharedKeyAccess учетной записи хранения значение false.
Предупреждение
Если какие-либо клиенты в настоящее время получают доступ к данным в учетной записи хранения с общим ключом, корпорация Майкрософт рекомендует перенести эти клиенты в идентификатор Microsoft Entra ID, прежде чем запретить доступ к учетной записи хранения с общим ключом.
Привилегии, позволяющие разрешать или запрещать доступ по общему ключу
Чтобы задать свойство AllowSharedKeyAccess для учетной записи хранения, пользователь должен иметь разрешения на создание учетных записей хранения и управление ими. Роли управления доступом на основе ролей Azure (Azure RBAC), предоставляющие эти разрешения, включают в себя действия Microsoft.Storage/storageAccounts/write или Microsoft.Storage/storageAccounts/*. Встроенные роли с этим действием:
- Azure Resource Manager: Владелец.
- Роль участника работ с ресурсами Azure
- Контрибьютор учетной записи хранения
Эти роли не предоставляют доступ к данным в учетной записи хранения с помощью идентификатора Microsoft Entra. Однако они включают в себя действие Microsoft.Storage/storageAccounts/listkeys/action, которое предоставляет доступ к ключам доступа к учетной записи. Пользователь с этим разрешением может использовать ключи доступа учетной записи для доступа ко всем данным в учетной записи хранения.
Назначение ролей должно охватывать область учетной записи хранения или выше, чтобы пользователи могли разрешать или запрещать доступ по общему ключу для этой учетной записи хранения. Дополнительные сведения об области роли см. в разделе Общие сведения об области для Azure RBAC.
Рекомендуется назначать эти роли только тем пользователям, которым необходима возможность создавать учетные записи хранения или обновлять их свойства. Используйте принцип наименьших привилегий, чтобы предоставлять пользователям минимальный набор разрешений, необходимый для выполнения их задач. Дополнительные сведения об управлении доступом с помощью Azure RBAC см. в разделе Рекомендации по использованию Azure RBAC.
Примечание.
Роли администратора классической подписки "администратор службы" и "соадминистратор" включают в себя эквивалент роли владельца Azure Resource Manager. Роль владельца включает в себя все действия, поэтому пользователь, которому назначена одна из этих административных ролей, также может создавать учетные записи хранения и управлять ими. Дополнительные сведения см. в статье о ролях Azure, ролях Microsoft Entra и классических ролях администратора подписки.
Отключение авторизации общего ключа
Используя учетную запись с необходимыми разрешениями, отключите авторизацию общего ключа в портал Azure с помощью PowerShell или с помощью Azure CLI.
Чтобы запретить авторизацию с помощью общего ключа для учетной записи хранения на портале Azure, выполните следующие действия.
После запрета авторизации с использованием общего ключа выполнение запроса к учетной записи хранения с авторизацией по общему ключу будет завершаться ошибкой с кодом 403 (запрещено). Служба хранилища Azure возвращает ошибку, указывающую, что для учетной записи хранения не разрешена авторизация с использованием ключей.
Свойство AllowSharedKeyAccess поддерживается только для учетных записей хранения, использующих модель развертывания с помощью Azure Resource Manager. Сведения о том, какие учетные записи хранения используют модель развертывания Azure Resource Manager, см. в разделе Типы учетных записей хранения.
Проверка запрета доступа по общему ключу
Чтобы убедиться, что авторизация общего ключа больше не разрешена, можно запросить параметры учетной записи хранилища Azure с помощью следующей команды. Замените значения заполнителей в скобках своими собственными значениями.
az storage account show \
--name <storage-account-name> \
--resource-group <resource-group-name> \
--query "allowSharedKeyAccess"
Команда возвращает значение false , если авторизация общего ключа запрещена для учетной записи хранения.
Примечание.
Анонимные запросы не авторизованы, но могут быть выполнены, если вы настроили учетную запись хранения и контейнер для доступа на анонимное чтение. Дополнительные сведения см. в разделе "Настройка анонимного доступа на чтение" для контейнеров и блобов.
Отслеживать политику Azure на соответствие
После запрета доступа к общему ключу в нужных учетных записях хранения продолжайте отслеживать политику, созданную ранее для обеспечения постоянного соответствия. В зависимости от результатов мониторинга при необходимости выполните соответствующие действия, включая изменение области политики, запрет доступа к общему ключу для дополнительных учетных записей или разрешение учетных записей, в которых требуется больше времени для исправления.
Обновите Политика Azure, чтобы запретить доступ к общему ключу
Чтобы начать применять назначение политики Azure, которое вы ранее создали для политики Учетные записи хранилища должны предотвращать доступ по общему ключу, измените эффект назначения политики на Отклонить, чтобы предотвратить разрешение доступа по общему ключу в учетных записях хранилища. Чтобы изменить эффект политики, выполните следующие действия.
На панели мониторинга Политика Azure найдите и выберите ранее созданное назначение политики.
Выберите Изменить назначение.
Перейдите на вкладку "Параметры ".
Снимите флажок "Только показать параметры, которые нуждаются в вводе или проверке ".
В раскрывающемся списке Эффект измените Аудит на Запрет, а затем нажмите Просмотр и сохранение.
На вкладке "Рецензирование и сохранение " просмотрите изменения, а затем нажмите кнопку "Сохранить".
Примечание.
Чтобы изменения политики вступают в силу, может потребоваться до 30 минут.