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

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

Что заносится в журнал:

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

Необходимые условия

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

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

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

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

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

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

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

az account list

az account set --subscription "<subscription-id>"

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

Get-AzSubscription

Set-AzContext -SubscriptionId "<subscription-id>"

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

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

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

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

az keyvault show --name "<vault-name>"

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

Get-AzKeyVault -VaultName "<vault-name>"

Идентификатор ресурса для хранилища ключей имеет следующий формат: "/subscriptions/your-subscription-ID/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/your-unique-keyvault-name. Запишите его для следующего шага.

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

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

Azure CLI (Интерфейс командной строки для Azure)

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

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

Сначала выведите все блобы в контейнере. С помощью Azure CLI используйте команду az storage blob list .

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

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

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

Так как вы можете использовать одну и ту же учетную запись хранения для сбора журналов нескольких ресурсов, полный идентификатор ресурса в имени объекта 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 "<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>/*':

    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

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

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