Включение журналирования Azure Key Vault

Создав одно или несколько хранилищ ключей вы, вероятно, захотите отслеживать, кто, как и когда осуществлял доступ к этим хранилищам. Полные сведения о функции см. в разделе Ведение журнала Key Vault.

Какие данные регистрируются в журнале:

  • все прошедшие проверку подлинности запросы REST API, включая запросы, ставшие неудачными из-за определенных разрешений на доступ, системных ошибок или неправильных запросов;
  • операции с хранилищем ключей, включая создание, удаление и настройку политик доступа к нему, а также обновление таких его атрибутов, как теги;
  • Операции с ключами и секретами в хранилище ключей, включая:
    • создание, изменение или удаление ключей или секретов;
    • подписывание, проверка, шифрование, расшифровка, упаковка и распаковка ключей, получение секретов и вывод списка ключей и секретов (и их версий);
  • непроверенные запросы, которые приводят к появлению ответа 401 Примерами являются запросы, которые не имеют маркера носителя, имеют неправильный или истекший срок действия или имеют недопустимый маркер.
  • События уведомления службы "Сетка событий Azure" для следующих условий: срок действия истек, срок действия приближается и изменена политика доступа к хранилищу (событие новой версии не регистрируется). События регистрируются даже при наличии подписки на события, созданной в хранилище ключей. Дополнительные сведения см. в разделе Azure Key Vault как источник сетки событий.

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

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

Вам также потребуется назначение для журналов. Назначение может быть существующей или новой учетной записью хранения Azure и (или) рабочей областью Log Analytics.

Вы можете создать новую учетную запись хранения Azure с помощью одного из следующих методов:

Вы можете создать рабочую область Log Analytics с помощью одного из следующих методов:

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

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

С Azure CLI можно просмотреть все подписки с помощью команды az account list. Затем подключитесь к одной из них с помощью команды az account set:

az account list

az account set --subscription "<subscriptionID>"

С Azure PowerShell можно сначала вывести список подписок с помощью командлета Get-AzSubscription. Затем подключитесь к одной из них с помощью командлета Set-AzContext:

Get-AzSubscription

Set-AzContext -SubscriptionId "<subscriptionID>"

Получение идентификаторов ресурсов

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

Если вы не можете вспомнить имя хранилища ключей, можно использовать команду Azure CLI az keyvault list или командлет Get-AzKeyVault Azure PowerShell Get-AzKeyVault , чтобы найти его.

Используйте имя хранилища ключей, чтобы найти его идентификатор ресурса. В Azure CLI используйте команду az keyvault show.

az keyvault show --name "<your-unique-keyvault-name>"

В Azure PowerShell используйте командлет Get-AzKeyVault.

Get-AzKeyVault -VaultName "<your-unique-keyvault-name>"

Идентификатор ресурса для хранилища ключей будет иметь формат: /subscriptions/идентификатор-подписки/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/уникальное-имя-хранилища-ключей. Запишите его, так как он потребуется при выполнении следующего действия.

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

Можно включить ведение журнала для Key Vault с помощью Azure CLI, Azure PowerShell или через портал Azure.

Azure CLI

Используйте команду Azure CLI az monitor diagnostic-settings create вместе с идентификатором учетной записи хранения и идентификатором ресурса хранилища ключей, как указано ниже.

az monitor diagnostic-settings create --storage-account "<storage-account-id>" --resource "<key-vault-resource-id>" --name "Key vault logs" --logs '[{"category": "AuditEvent","enabled": true}]' --metrics '[{"category": "AllMetrics","enabled": true}]'

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

В Azure CLI используйте команду az monitor diagnostic-settings update.

az monitor diagnostic-settings update --name "Key vault retention policy" --resource "<key-vault-resource-id>" --set retentionPolicy.days=90

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

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

Сначала получите список всех BLOB-объектов в контейнере. В Azure CLI используйте команду az storage blob list.

az storage blob list --account-name "<your-unique-storage-account-name>" --container-name "insights-logs-auditevent"

В Azure PowerShell воспользуйтесь командой Get-AzStorageBlob. Чтобы получить список всех больших двоичных объектов (BLOB-объектов) в этом контейнере, введите следующее:

Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context

Как видно из выходных данных команды Azure CLI или командлета Azure PowerShell, имена BLOB-объектов имеют следующий формат: resourceId=<ARM resource ID>/y=<year>/m=<month>/d=<day of month>/h=<hour>/m=<minute>/filename.json. Значения даты и времени используют время в формате UTC.

Поскольку одну учетную запись можно использовать для сбора журналов нескольких ресурсов, для просмотра и скачивания нужных BLOB-объектов желательно указывать полный идентификатор ресурса в имени BLOB-объекта.

Но сначала загрузите все большие двоичные объекты. В Azure CLI используйте команду az storage blob download, передав ей имена BLOB-объектов и путь к файлу, в котором требуется сохранить результаты.

az storage blob download --container-name "insights-logs-auditevent" --file <path-to-file> --name "<blob-name>" --account-name "<your-unique-storage-account-name>"

С помощью Azure PowerShell используйте командлет Get-AzStorageBlob , чтобы получить список больших двоичных объектов. Затем передайте этот список в командлет Get-AzStorageBlobContent, чтобы скачать журналы по выбранному пути.

$blobs = Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context | Get-AzStorageBlobContent -Destination "<path-to-file>"

При выполнении этого второго командлета в PowerShell разделитель / в именах BLOB-объектов используется для создания полной структуры папок в папке назначения. Эта структура будет использоваться для скачивания и хранения больших двоичных объектов в виде файлов.

Для выборочной загрузки BLOB-объектов используйте подстановочные знаки. Например:

  • Если у вас есть несколько хранилищ ключей, но вы хотите загрузить журналы только для одного хранилища с именем CONTOSOKEYVAULT3.

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/VAULTS/CONTOSOKEYVAULT3
    
  • Если у вас есть несколько групп ресурсов, но вы хотите загрузить журналы только для одной из них, используйте -Blob '*/RESOURCEGROUPS/<resource group name>/*':

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/RESOURCEGROUPS/CONTOSORESOURCEGROUP3/*'
    
  • Если вы хотите скачать все журналы за январь 2019 г., используйте -Blob '*/year=2019/m=01/*':

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/year=2016/m=01/*'
    

Использование журналов Azure Monitor

Решение Key Vault в журналах Azure Monitor позволяет просматривать журналы AuditEvent для Key Vault. В журналах Azure Monitor запросы по журналам используются для анализа данных и получения необходимых сведений. Дополнительные сведения см. в статье Мониторинг Key Vault.

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

  • Основные сведения, в том числе информацию о том, как анализировать журналы Key Vault, см. в статье Ведение журнала Azure Key Vault.
  • Дополнительные данные об использовании Azure Monitor в хранилище ключей см. в статье Мониторинг Key Vault.