Aktivieren der Protokollierung in Key Vault

Nachdem Sie einen oder mehrere Schlüsseltresore erstellt haben, möchten Sie vermutlich überwachen, wie, wann und von wem auf die Schlüsseltresore zugegriffen wird. Ausführliche Informationen zum Feature finden Sie unter Azure Key Vault-Protokollierung.

Protokollierte Inhalte

  • Alle authentifizierten REST-API-Anforderungen, z. B. auch Anforderungen, die aufgrund von Zugriffsberechtigungen, Systemfehlern oder fehlerhaften Anforderungen nicht erfolgreich sind.
  • Vorgänge im Schlüsseltresor selbst, z. B. Erstellung, Löschung und Festlegung von Schlüsseltresor-Zugriffsrichtlinien und Aktualisierung von Schlüsseltresor-Attributen wie Tags.
  • Vorgänge mit Schlüsseln und Geheimnissen im Schlüsseltresor, einschließlich:
    • Erstellen, Ändern oder Löschen dieser Schlüssel oder Geheimnisse.
    • Signieren, Verifizieren, Verschlüsseln, Entschlüsseln, Ver- und Entpacken von Schlüsseln, Erhalten von Geheimnissen und Auflisten von Schlüsseln und Geheimnissen (und deren Versionen).
  • Bei nicht authentifizierten Anforderungen wird eine 401-Antwort zurückgegeben. Beispiele sind Anforderungen ohne Bearertoken, falsch formatierte oder abgelaufene Anforderungen oder Anforderungen, deren Token ungültig ist.
  • Azure Event Grid-Benachrichtigungsereignisse für die folgenden Bedingungen: abgelaufen, demnächst ablaufend und geänderte Tresorzugriffsrichtlinie (das Ereignis bei einer neuen Version wird nicht protokolliert). Ereignisse werden auch dann protokolliert, wenn im Schlüsseltresor ein Ereignisabonnement erstellt wurde. Weitere Informationen finden Sie unter Azure Key Vault als Event Grid-Quelle.

Voraussetzungen

Sie benötigen einen Azure-Schlüsseltresor, um dieses Lernprogramm auszuführen. Sie können einen neuen Schlüsseltresor mithilfe einer der folgenden Methoden erstellen:

Ferner benötigen Sie ein Ziel für Ihre Protokolle. Das Ziel kann ein vorhandenes oder neues Azure-Speicherkonto und/oder ein Log Analytics-Arbeitsbereich sein.

Sie können ein neues Azure-Speicherkonto mit einer der folgenden Methoden erstellen:

Sie können einen neuen Log Analytics-Arbeitsbereich mit einer der folgenden Methoden erstellen:

Herstellen einer Verbindung zu Ihrem Key Vault-Abonnement

Der erste Schritt beim Einrichten der Schlüsselprotokollierung besteht darin, eine Verbindung mit dem Abonnement herzustellen, das Ihren Schlüsseltresor enthält, falls Ihrem Konto mehrere Abonnements zugeordnet sind.

Mithilfe der Azure-Befehlszeilenschnittstelle können Sie alle Abonnements anzeigen, indem Sie den Befehl az account list ausführen. Stellen Sie dann mit dem Befehl az account set eine Verbindung mit einem Abonnement her:

az account list

az account set --subscription "<subscriptionID>"

In Azure PowerShell können Sie Ihre Abonnements zunächst auflisten, indem Sie das Cmdlet Get-AzSubscription ausführen. Dann können Sie mithilfe des Cmdlets Set-AzContext eine Verbindung mit einem Abonnement herstellen:

Get-AzSubscription

Set-AzContext -SubscriptionId "<subscriptionID>"

Abrufen von Ressourcen-IDs

Um die Protokollierung für einen Schlüsseltresor zu aktivieren, benötigen Sie die Ressourcen-ID des Schlüsseltresors sowie die des Ziels (Azure Storage- oder Log Analytics-Konto).

Wenn Sie sich an den Namen Ihres Schlüsseltresors nicht mehr erinnern, können Sie ihn mit dem Azure CLI-Befehl az keyvault list oder dem Azure PowerShell-Cmdlet Get-AzKeyVault herausfinden.

Verwenden Sie den Namen Ihres Schlüsseltresors, um nach seiner Ressourcen-ID zu suchen. Verwenden Sie bei Verwendung der Azure-Befehlszeilenschnittstelle den Befehl az keyvault show.

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

In Azure PowerShell verwenden Sie das Cmdlet Get-AzKeyVault.

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

Die Ressourcen-ID für Ihren Schlüsseltresor weist das folgende Format auf: /subscriptions/ /resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/ . Speichern Sie ihn für den nächsten Schritt.

Aktivieren der Protokollierung

Sie können die Protokollierung für Key Vault mithilfe der Azure-Befehlszeilenschnittstelle, mit Azure PowerShell oder im Azure-Portal aktivieren.

Azure CLI

Verwenden Sie den Azure CLI-Befehl az monitor diagnostic-settings create mit der Speicherkonto-ID und der Ressourcen-ID für den Schlüsseltresor wie folgt:

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}]'

Optional können Sie eine Aufbewahrungsrichtlinie für Ihre Protokolle festlegen, mit der ältere Protokolle nach einer angegeben Dauer automatisch gelöscht werden. Sie könnten beispielsweise eine Aufbewahrungsrichtlinie so festlegen, dass alle Protokolle, die älter als 90 Tage sind, automatisch gelöscht werden.

Verwenden Sie den Befehl az monitor diagnostic-settings update mithilfe der Azure CLI.

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

Zugreifen auf Ihre Protokolle

Ihre Key Vault-Protokolle befinden sich im Container insights-logs-auditevent in dem von Ihnen angegebenen Speicherkonto. Zur Anzeige der Protokolle müssen Sie Blobs herunterladen.

Rufen Sie zunächst alle Blobs im Container ab. Verwenden Sie in der Azure CLI den Befehl az storage blob list.

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

Verwenden Sie bei Azure PowerShell das Cmdlet Get-AzStorageBlob. Geben Sie Folgendes ein, um alle Blobs in diesem Container aufzulisten:

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

An der Ausgabe des Azure CLI-Befehls oder des Azure PowerShell-Cmdlets können Sie erkennen, dass die Blobnamen das folgende Format aufweisen: resourceId=<ARM resource ID>/y=<year>/m=<month>/d=<day of month>/h=<hour>/m=<minute>/filename.json. Für die Datums- und Zeitwerte wird die koordinierte Weltzeit (UTC) verwendet.

Da dasselbe Speicherkonto zum Erfassen von Protokollen für mehrere Ressourcen verwendet werden kann, ist die vollständige Ressourcen-ID im Blobnamen sehr hilfreich, um nur auf die benötigten Blobs zuzugreifen bzw. diese herunterzuladen.

Laden Sie zunächst alle Blobs herunter. Wenn Sie die Azure-Befehlszeilenschnittstelle verwenden, führen Sie den Befehl az storage blob download aus. Übergeben Sie dabei die Blobnamen sowie den Pfad zur Datei, in der die Ergebnisse gespeichert werden sollen.

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

In Azure PowerShell können Sie das Cmdlet Get-AzStorageBlob verwenden, um eine Liste der Blobs abzurufen. Übergeben Sie diese Liste dann über eine Pipeline an das Cmdlet Get-AzStorageBlobContent, um die Protokolle in den von Ihnen ausgewählten Pfad herunterzuladen.

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

Beim Ausführen dieses zweiten Cmdlet in PowerShell wird mit dem Trennzeichen / in den Blobnamen eine vollständige Ordnerstruktur unter dem Zielordner erstellt. Sie verwenden diese Struktur, um die Blobs herunterzuladen und als Dateien zu speichern.

Verwenden Sie Platzhalter, um Blobs selektiv herunterzuladen. Beispiel:

  • Bei Verwendung mehrerer Schlüsseltresore und einem Download von Protokollen nur für einen Schlüsseltresor mit dem Namen CONTOSOKEYVAULT3:

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/VAULTS/CONTOSOKEYVAULT3
    
  • Wenn Sie über mehrere Ressourcengruppen verfügen und nur Protokolle für eine Ressourcengruppe herunterladen möchten, verwenden Sie -Blob '*/RESOURCEGROUPS/<resource group name>/*':

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/RESOURCEGROUPS/CONTOSORESOURCEGROUP3/*'
    
  • Wenn Sie alle Protokolle für den Monat Januar 2019 herunterladen möchten, verwenden Sie -Blob '*/year=2019/m=01/*':

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

Verwenden von Azure Monitor-Protokollen

Sie können die Key Vault-Lösung in Azure Monitor verwenden, um AuditEvent-Protokolle von Key Vault zu überprüfen. In Azure Monitor-Protokollen verwenden Sie Protokollabfragen, um Daten zu analysieren und die benötigten Informationen zu erhalten. Weitere Informationen finden Sie unter Überwachen einer Key Vault-Instanz.

Nächste Schritte