Настройка минимально требуемой версии протокола TLS для запросов к учетной записи хранения

Для шифрования данных, пересылаемых между клиентским приложением и учетной записью службы хранилища Microsoft Azure, используется протокол TLS. TLS — это стандартный протокол шифрования, обеспечивающий конфиденциальность и целостность данных, пересылаемых между клиентами и службами через Интернет. Дополнительные сведения см. в статье Протокол TLS.

В настоящее время служба хранилища Azure поддерживает три версии протокола TLS: 1.0, 1.1 и 1.2. Для общедоступных конечных точек HTTPS в службе хранилища Microsoft Azure используется версия TLS 1.2, однако версии TLS 1.0 и TLS 1.1 пока поддерживаются для обеспечения обратной совместимости.

Совет

служба хранилища Azure использует реализацию SSL Windows, которая не основана на OpenSSL и поэтому не предоставляется связанным уязвимостям OpenSSL.

Учетные записи службы хранилища Microsoft Azure позволяют клиентам отправлять и получать данные с использованием самой старой версии TLS, TLS 1.0 и более поздних версий. Чтобы обеспечить более строгие меры безопасности, можно настроить учетную запись хранения таким образом, чтобы клиенты отправляли и получали данные с помощью более новой версии TLS. Если для учетной записи хранения требуется минимальная версия TLS, все запросы, созданные с использованием более старой версии, будут завершаться ошибкой.

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

Сведения о том, как указать определенную версию TLS при отправке запроса из клиентского приложения, см. в разделе Настройка протокола TLS для клиентского приложения.

Примечание.

Набор шифров, используемый при отправке и получении данных из учетной записи хранения, зависит от используемой версии TLS. Невозможно настроить учетную запись хранения для блокировки использования определенных шифров, отличных от необходимости минимальной версии TLS. Если требуется возможность разрешить только определенные наборы шифров при подключении к учетной записи хранения, рассмотрите возможность использования Шлюз приложений Azure. Дополнительные сведения об использовании Шлюз приложений для этой цели см. в разделе Настройка версий политик TLS и наборов шифров в Шлюз приложений Azure.

Определение версии TLS, используемой клиентскими приложениями

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

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

Функция "Журнал службы хранилища Microsoft Azure" в Azure Monitor поддерживает использование запросов журналов для анализа. Для запроса журналов можно использовать рабочую область Azure Log Analytics. Дополнительные сведения о запросах журналов см. в разделе Руководство: начало работы с запросами Log Analytics.

Чтобы регистрировать в журнале данные службы хранилища Azure с помощью Azure Monitor и анализировать их с помощью Azure Log Analytics, необходимо сначала создать параметр диагностики, который указывает, данные каких типов запросов для каких служб хранилища следует регистрировать в журнале. Чтобы создать параметр диагностики на портале Azure, выполните следующие действия.

  1. Создайте новую рабочую область Log Analytics в подписке, которая содержит вашу учетную запись хранения Microsoft Azure. После настройки ведения журнала для вашей учетной записи хранения журналы станут доступны в рабочей области Log Analytics. Дополнительные сведения см. в статье Create a Log Analytics workspace in the Azure portal (Создание рабочей области Log Analytics на портале Azure).

  2. Войдите в свою учетную запись хранения на портале Azure.

  3. В разделе "Мониторинг" выберите Параметры диагностики.

  4. Выберите службу хранилища Microsoft Azure, для которой требуется регистрировать запросы. Например, выберите BLOB-объект для регистрации в журнале запросов в хранилище BLOB-объектов.

  5. Выберите Добавить параметр диагностики.

  6. Укажите имя для параметра диагностики.

  7. В разделе Сведения о категории раздела Журнал выберите типы запросов для регистрации. В журнале можно регистрировать запросы на чтение, запись и удаление. Например, при выборе StorageRead и StorageWrite будут регистрироваться запросы на чтение и запись к выбранной службе.

  8. В разделе Destination details (Сведения о назначении) установите флажокSend to Log Analytics (Отправлять в Log Analytics). Выберите подписку и созданную ранее рабочую область Log Analytics, как показано на следующем рисунке.

    Снимок экрана: создание параметра диагностики для регистрации запросов в журнале

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

Ссылка на поля, доступные в журналах служба хранилища Azure в Azure Monitor, см. в журналах ресурсов.

Получение данных о зарегистрированных запросах по версии TLS

Журналы службы хранилища Microsoft Azure в Azure Monitor регистрируют сведения о версии TLS, используемой для отправки запроса в учетную запись хранения. Используйте свойство TlsVersion, чтобы проверить версию TLS зарегистрированного запроса.

Чтобы определить, сколько запросов было выполнено в хранилище BLOB-объектов с использованием разных версий TLS за последние семь дней, откройте рабочую область Log Analytics. Затем вставьте следующий запрос в поле создания запроса к журналу и запустите его. Не забудьте заменить значения заполнителей в скобках собственными значениями.

StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>"
| summarize count() by TlsVersion

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

Снимок экрана, на котором показаны результаты запроса log Analytics для возврата версии TLS

Получение данных о зарегистрированных запросах по IP-адресу вызывающего и заголовку агента пользователя

Журналы службы хранилища Microsoft Azure в Azure Monitor также включают IP-адрес вызывающей стороны и заголовок агента пользователя. Эти данные позволяют узнать, какие клиентские приложения обращаются к учетной записи хранения. Вы можете проанализировать эти данные, чтобы решить, следует ли обновить клиентские приложения для использования более новой версии протокола TLS и можно ли не выполнять запрос клиента, если для его отправки не используется с минимальная версия TLS.

Чтобы определить, какие клиенты за последние семь дней отправляли запросы с использованием версии TLS старше, чем TLS 1.2, вставьте следующий запрос в новый запрос к журналу и выполните его. Не забудьте заменить значения заполнителей в скобках собственными значениями.

StorageBlobLogs
| where TimeGenerated > ago(7d) and AccountName == "<account-name>" and TlsVersion != "TLS 1.2"
| project TlsVersion, CallerIpAddress, UserAgentHeader

Введение минимальной версии TLS для устранения угроз безопасности

Если вы уверены, что трафик от клиентов, использующих более старые версии TLS, незначителен либо можно без ущерба отклонять запросы, созданные с помощью устаревших версий протокола TLS, можно ввести принудительное использование минимальной версии TLS в учетной записи хранения. Требование использовать минимальную версию протокола TLS для выполнения запросов к учетной записи хранения, является частью стратегии по снижению угроз безопасности для данных.

Внимание

Если вы используете службу, которая подключается к служба хранилища Azure, убедитесь, что служба использует соответствующую версию TLS для отправки запросов в служба хранилища Azure, прежде чем задать необходимую минимальную версию для учетной записи хранения.

Настройка минимальной версии TLS для учетной записи хранения

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

Значение по умолчанию свойства MinimumTlsVersion отличается в зависимости от способа, каким оно было задано. При создании учетной записи хранения на портале Microsoft Azure по умолчанию в качестве минимальной устанавливается версия TLS 1.2. При создании учетной записи хранения с помощью PowerShell, Azure CLI или шаблона ARM свойство MinimumTlsVersion не задается по умолчанию и не возвращает значение, пока вы явно не зададите его.

Если свойство MinimumTlsVersion не задано, его значение может отображаться как NULL или пустая строка (в зависимости от контекста). Учетная запись хранения разрешит отправку запросов с использованием TLS версии 1.0 или более поздней, если свойство не задано.

При создании учетной записи хранения на портале Microsoft Azure по умолчанию в качестве минимальной устанавливается версия TLS 1.2.

Чтобы настроить минимальную версию TLS для существующей учетной записи хранения на портале Microsoft Azure, выполните следующие действия.

  1. Войдите в свою учетную запись хранения на портале Azure.

  2. В разделе Параметры выберите пункт Конфигурация.

  3. В разделе Минимальная версия TLS используйте раскрывающийся список, чтобы выбрать минимальную версию TLS, необходимую для доступа к данным в этой учетной записи хранения.

    Снимок экрана, на котором показано, как настроить минимальную версию TLS на портале Microsoft Azure

Примечание.

После обновления минимальной версии TLS для учетной записи хранения может потребоваться до 30 секунд, прежде чем изменение будет распространено в системе.

Для настройки минимальной версии TLS требуется поставщик ресурсов службы хранилища Microsoft Azure версии 2019-04-01 или более поздней. Дополнительные сведения см. в разделе REST API поставщика ресурсов службы хранилища Microsoft Azure.

Проверка минимальной требуемой версии TLS для нескольких учетных записей

Чтобы проверить минимальную необходимую версию протокола TLS в наборе учетных записей хранения с оптимальной производительностью, используйте песочницу Graph для ресурсов Azure на портале Microsoft Azure. Дополнительные сведения об использовании песочницы Graph для ресурсов см. в статье Краткое руководство: выполнение первого запроса по Azure Resource Graph с помощью песочницы Graph.

Выполнение следующего запроса в песочнице Azure Resource Graph возвращает список учетных записей хранения и отображает минимальную версию TLS для каждой учетной записи:

resources
| where type =~ 'Microsoft.Storage/storageAccounts'
| extend minimumTlsVersion = parse_json(properties).minimumTlsVersion
| project subscriptionId, resourceGroup, name, minimumTlsVersion

Проверка использования минимальной версии TLS в клиенте

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

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

Примечание.

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

Использование Политики Azure для аудита соответствия

При наличии большого количества учетных записей хранения может потребоваться проведение аудита, чтобы убедиться, что для всех учетных записей настроена минимальная версия TLS, необходимая вашей организации. Чтобы выполнить аудит набора учетных записей хранения на предмет их соответствия требованиям, используйте Политику Azure. Политика Azure — это служба, которую можно использовать для создания политик для применения правил к ресурсам Azure, их назначения и управления ими. Использование службы "Политика Azure" обеспечивает соответствие ресурсов корпоративным стандартам и соглашениям об уровне обслуживания. Дополнительные сведения см. в статье Что такое служба "Политика Azure"?.

Создание политики с использованием эффекта "Аудит"

Политика Azure поддерживает эффекты, которые определяют действия при оценке правила политики для ресурса. При использовании эффекта аудита создается предупреждение, если ресурс не соответствует требованиям. Выполнение запроса при этом не останавливается. Дополнительные сведения об эффектах см. в статье Общие сведения об эффектах Политики Azure.

Чтобы создать политику с эффектом аудита для минимальной версии TLS на портале Microsoft Azure, выполните следующие действия.

  1. На портале Microsoft Azure перейдите к службе "Политика Azure".

  2. В разделе Разработка выберите Определения.

  3. Выберите Добавить определение политики, чтобы создать новое определение политики.

  4. В поле Расположение определения нажмите кнопку Дополнительно, чтобы указать, где находится ресурс политики аудита.

  5. Укажите имя политики Azure. При необходимости можно добавить описание и категорию.

  6. В разделе Правило политики добавьте следующее определение Политики Azure в раздел policyrule.

    {
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "anyOf": [
                  {
                    "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                    "notEquals": "TLS1_2"
                  },
                  {
                    "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                    "exists": "false"
                  }
                ]
            }
          ]
        },
        "then": {
          "effect": "audit"
        }
      }
    }
    
  7. Сохраните политику.

Назначение политики

Затем назначьте политику для ресурса. Область политики соответствует этому ресурсу и всем ресурсам на нижележащих уровнях. Дополнительные сведения о назначении политики см. в разделе Структура назначения Политики Azure.

Чтобы назначить политику на портале Microsoft Azure, выполните следующие действия.

  1. На портале Microsoft Azure перейдите к службе "Политика Azure".
  2. В разделе Разработка выберите Назначения.
  3. Выберите Назначить политику, чтобы создать новое назначение политики.
  4. В поле Область выберите область назначения политики.
  5. В поле Определение Политики Azure нажмите кнопку Дополнительно, а затем выберите из списка политику, определенную в предыдущем разделе.
  6. Введите имя для назначения политики. Описание является необязательным.
  7. Оставьте для параметра Применение политик значение Включено. Этот параметр не влияет на политику аудита.
  8. Щелкните Просмотреть и создать, чтобы создать назначение.

Просмотр отчета о соответствии

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

После создания назначения политики может пройти несколько минут, прежде чем отчет о соответствии станет доступен.

Чтобы просмотреть отчет о соответствии на портале Microsoft Azure, выполните следующие действия.

  1. На портале Microsoft Azure перейдите к службе "Политика Azure".

  2. Выберите Соответствие.

  3. Отфильтруйте результаты по имени назначения политики, созданной на предыдущем этапе. В отчете указано, сколько ресурсов не соответствует политике.

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

    Снимок экрана с отчетом о соответствии для политики аудита минимальной версии TLS

Использование Политики Azure для принудительного применения минимальной версии TLS

Политика Azure поддерживает управление облаком, гарантируя, что ресурсы Azure соответствуют требованиям и стандартам. Чтобы применить требования к минимальной версии TLS для учетных записей хранения в организации, можно создать политику, которая запрещает создание новой учетной записи хранения, устанавливающей минимальные требования к TLS ниже определенных политикой. Эта политика также предотвратит все изменения конфигурации существующей учетной записи, если значение минимальной версии TLS для этой учетной записи не соответствует политике.

Политика принудительного применения использует эффект запрета, чтобы предотвратить получение запроса на создание или изменение учетной записи хранения таким образом, чтобы минимальная версия TLS больше не соответствовала стандартам организации. Дополнительные сведения об эффектах см. в статье Общие сведения об эффектах Политики Azure.

Чтобы создать политику с эффектом запрета для минимальной версии TLS, которая меньше, чем версии 1.2, выполните действия, описанные в разделе Использование Политики Azure для аудита соответствия, но предоставьте следующий код JSON в раздел policyRule определения политики:

{
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Storage/storageAccounts"
        },
        {
            "anyOf": [
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "notEquals": "TLS1_2"
              },
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "exists": "false"
              }
            ]
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  }
}

После того как политика с действием запрета будет создана и назначена области, пользователи не смогут создавать учетные записи хранения с минимальной версией TLS старше 1.2. Кроме того, пользователи не смогут вносить изменения в конфигурацию существующей учетной записи хранения, которая в настоящее время требует использовать минимальную версии TLS старше 1.2. Попытка сделать это приведет к ошибке. Чтобы продолжить создание или настройку учетной записи, необходимо задать значение 1.2 для минимальной версии TLS в учетной записи хранения.

На следующем рисунке показано сообщение об ошибке, возникающей при попытке создать учетную запись хранения с минимальной версией TLS, установленной для TLS 1.0 (по умолчанию для новой учетной записи), если политика с эффектом "Запрет" требует, чтобы минимальная версия TLS была задана как TLS 1.2.

Снимок экрана, на котором показана ошибка, возникающая при создании учетной записи хранения с нарушением политики

Разрешения, необходимые для принудительного использования минимальной версии TLS

Чтобы задать свойство MinimumTlsVersion для учетной записи хранения, пользователь должен иметь разрешения на создание учетных записей хранения и управление ими. Роли управления доступом на основе ролей Azure (Azure RBAC), предоставляющие эти разрешения, включают в себя действия Microsoft.Storage/storageAccounts/write или Microsoft.Storage/storageAccounts/*. Встроенные роли с этим действием:

Эти роли не предоставляют доступ к данным в учетной записи хранения с помощью идентификатора Microsoft Entra. Однако они включают в себя разрешение Microsoft. Storage/storageAccounts/listkeys/Action, которое предоставляет доступ к ключам доступа учетной записи. Пользователь с этим разрешением может использовать ключи доступа учетной записи для доступа ко всем данным в учетной записи хранения.

Чтобы разрешить пользователю требовать минимальную версию TLS для учетной записи хранения, назначение ролей должно быть ограничено уровнем учетной записи хранения или выше. Дополнительные сведения об области роли см. в разделе Общие сведения об области для Azure RBAC.

Рекомендуется назначать эти роли только тем пользователям, которым необходима возможность создавать учетные записи хранения или обновлять их свойства. Используйте принцип наименьших привилегий, чтобы предоставлять пользователям минимальный набор разрешений, необходимый для выполнения их задач. Дополнительные сведения об управлении доступом с помощью Azure RBAC см. в разделе Рекомендации по использованию Azure RBAC.

Примечание.

Роли администратора классической подписки "администратор службы" и "соадминистратор" включают в себя эквивалент роли владельца Azure Resource Manager. Роль владельца включает в себя все действия, поэтому пользователь, которому назначена одна из этих административных ролей, также может создавать учетные записи хранения и управлять ими. Дополнительные сведения см. в статье о ролях Azure, ролях Microsoft Entra и классических ролях администратора подписки.

Рекомендации по сети

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

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