Ведение журнала в службе "Управляемое устройство HSM"

После создания одного или нескольких управляемых виртуальных машин HSM вы, скорее всего, захотите отслеживать способ и время доступа к устройствам HSM и тем, кто. Это можно сделать с помощью функции ведения журнала, которая сохраняет информацию в указанной учетной записи хранения Azure. Для указанной вами учетной записи автоматически создается контейнер с именем insights-logs-auditevent. Одну и ту же учетную запись можно использовать для сбора журналов нескольких управляемых устройств HSM.

Регистрируемые в журналах сведения становятся доступны не позднее чем через 10 минут после выполнения операции с управляемым устройством HSM. В большинстве случаев это будет еще быстрее. Способ управления журналами в своей учетной записи хранения вы выбираете сами.

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

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

Примечание.

В этом руководстве нет инструкций по созданию управляемых устройств HSM и ключей. В этой статье приведены инструкции по обновлению журнала ведения диагностики с помощью Azure CLI.

Необходимые компоненты

Чтобы выполнить действия, описанные в этой статье, вам потребуется следующее:

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Снимок экрана: пример открытия Azure Cloud Shell с помощью кнопки
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Кнопка запуска Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Снимок экрана: кнопка

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

Подключение к подписке Azure

Для настройки ведения журнала ключей первым делом подключите Azure CLI к нужному управляемому устройству HSM.

az login

Дополнительные сведения о параметрах входа с помощью интерфейса командной строки см. в статье Вход с помощью Azure CLI.

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

Определение управляемого устройства HSM и учетной записи хранения

hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name ContosoMHSMLogs --query id -o tsv)

Включение ведения журналов

Чтобы включить ведение журнала для управляемого устройства HSM, выполните команду az monitor diagnostic-settings create с теми переменными, которые мы создали для новой учетной записи хранения и службы "Управляемое устройство HSM". Мы также установим для флага -Enabled значение $true и зададим категорию AuditEvent (единственная доступная категория для ведения журнала службы "Управляемое устройство HSM").

Эти выходные данные подтверждают, что для службы "Управляемое устройство HSM" включено ведение журнала и данные сохраняются в указанной учетной записи хранения.

При желании вы можете задать для журналов политику хранения, например для автоматического удаления старых журналов. Например, для политики хранения можно присвоить флагу -RetentionEnabled значение $true, а параметру -RetentionInDays — значение 90, чтобы автоматически удалять журналы, которые хранятся более 90 дней.

az monitor diagnostic-settings create --name ContosoMHSM-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource

Регистрируются следующие данные:

  • Все запросы REST API, прошедшие проверку подлинности, включая неудачные запросы в результате разрешений доступа, системных ошибок, блоков брандмауэра или плохих запросов.
  • управляемые операции на плоскости данных с самим управляемым ресурсом HSM, включая создание, удаление и обновление атрибутов, например тегов;
  • операции, связанные с доменом безопасности, включая инициализацию со скачиванием, инициализацию с восстановлением и загрузку;
  • операции полного резервного копирования, полного и выборочного восстановления HSM;
  • операции управления ролями, такие как создание, просмотр и удаление назначений ролей, создание, просмотр и удаление определений пользовательских ролей;
  • Операции с ключами, в том числе:
    • создание, изменение или удаление ключей;
    • подписывание, проверка, шифрование и расшифровка, упаковка и распаковка, получение списка ключей;
    • резервное копирование, восстановление и безвозвратное удаление ключей.
    • Выпуск ключа
  • Недопустимые пути, которые приводят к ответу 404.

Доступ к журналам

Журналы службы "Управляемое устройство HSM" сохраняются в контейнере insights-logs-auditevent в указанной вами учетной записи хранения. Чтобы просмотреть эти журналы, скачайте большие двоичные объекты. Сведения о службе хранилища Azure см. в статье Создание, скачивание и составление списка больших двоичных объектов с помощью Azure CLI.

Отдельные BLOB-объекты хранятся как текст в формате JSON. Давайте рассмотрим пример записи журнала. Ниже приводится пример записи в журнале, созданной при запросе к управляемому устройству HSM на создание полной резервной копии.

[
  {
    "TenantId": "{tenant-id}",
    "time": "2020-08-31T19:52:39.763Z",
    "resourceId": "/SUBSCRIPTIONS/{subscription-id}/RESOURCEGROUPS/CONTOSORESOURCEGROUP/PROVIDERS/MICROSOFT.KEYVAULT/MANAGEDHSMS/CONTOSOMHSM",
    "operationName": "BackupCreate",
    "operationVersion": "7.0",
    "category": "AuditEvent",
    "resultType": "Success",
    "properties": {
        "PoolType": "M-HSM",
        "sku_Family": "B",
        "sku_Name": "Standard_B1"
    },
    "durationMs": 488,
    "callerIpAddress": "X.X.X.X",
    "identity": "{\"claim\":{\"appid\":\"{application-id}\",\"http_schemas_microsoft_com_identity\":{\"claims\":{\"objectidentifier\":\"{object-id}\"}},\"http_schemas_xmlsoap_org_ws_2005_05_identity\":{\"claims\":{\"upn\":\"admin@contoso.com\"}}}}",
    "clientInfo": "azsdk-python-core/1.7.0 Python/3.8.2 (Linux-4.19.84-microsoft-standard-x86_64-with-glibc2.29) azsdk-python-azure-keyvault/7.2",
    "correlationId": "8806614c-ebc3-11ea-9e9b-00155db778ad",
    "subnetId": "(unknown)",
    "httpStatusCode": 202,
    "PoolName": "mhsmdemo",
    "requestUri": "https://ContosoMHSM.managedhsm.azure.net/backup",
    "resourceGroup": "ContosoResourceGroup",
    "resourceProvider": "MICROSOFT.KEYVAULT",
    "resource": "ContosoMHSM",
    "resourceType": "managedHSMs"
  }
]

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