Настройка минимально требуемой версии протокола 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 пока поддерживаются для обеспечения обратной совместимости.

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

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

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

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

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

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

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

Чтобы записывать данные службы хранилища Microsoft Azure с помощью Azure Monitor и анализировать их с помощью Log Analytics Azure, необходимо создать параметр диагностики, который указывает, какие типы запросов для каких служб хранилища будут записываться в журнал. Журналы службы хранилища Azure в Azure Monitor предоставляются в общедоступной предварительной версии. Они также доступны для предварительного тестирования во всех регионах общедоступного облака. В этой предварительной версии доступны журналы для больших двоичных объектов (включая Azure Data Lake Storage 2-го поколения), файлов, очередей и таблиц. Чтобы создать параметр диагностики на портале Microsoft Azure, выполните следующие действия.

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

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

  3. В разделе мониторинга выберите Diagnostic settings (preview) (Параметры диагностики (предварительная версия)).

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

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

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

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

  8. В области Сведения о месте назначения выберите Отправить в Log Analytics. Выберите подписку и созданную ранее рабочую область Log Analytics, как показано на следующем рисунке.

    Screenshot showing how to create a diagnostic setting for logging requests

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

Ссылки на поля, доступные в журналах службы хранилища Microsoft 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:

Screenshot showing results of log analytics query to return TLS version

Получение данных о зарегистрированных запросах по 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 для выполнения запросов к учетной записи хранения, является частью стратегии по снижению угроз безопасности для данных.

Важно!

Если вы используете службу, которая подключается к службе хранилища Microsoft 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, необходимую для доступа к данным в этой учетной записи хранения.

    Screenshot showing how to configure minimum version of TLS in the Azure portal.

Примечание

После обновления минимальной версии 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. Вы можете детализировать отчет для получения дополнительных сведений, включая список учетных записей хранения, которые не соответствуют требованиям.

    Screenshot showing compliance report for audit policy for minimum TLS version

Использование Политики 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 1.0 (значение по умолчанию для новой учетной записи), если в политике с эффектом запрета указано, что минимальная версия TLS должна быть не ниже 1.2.

Screenshot showing the error that occurs when creating a storage account in violation of policy

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

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

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

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

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

Примечание

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

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

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

Дальнейшие действия