Aktivera Key Vault loggning

När du har skapat ett eller flera nyckelvalv vill du förmodligen övervaka hur och när dina nyckelvalv används och av vem. Fullständig information om funktionen finns i Azure Key Vault loggning.

Vad loggas:

  • Alla autentiserade REST API-begäranden, inklusive misslyckade begäranden till följd av åtkomstbehörigheter, systemfel eller felaktiga begäranden.
  • Åtgärder i själva nyckelvalvet, inklusive skapande, borttagning, inställning av åtkomstprinciper för nyckelvalv och uppdatering av nyckelvalvsattribut, till exempel taggar.
  • Åtgärder för nycklar och hemligheter i nyckelvalvet, inklusive:
    • Skapa, ändra eller ta bort dessa nycklar eller hemligheter.
    • Signera, verifiera, kryptera, dekryptera, omsluta och ta bort nycklar, hämta hemligheter och lista nycklar och hemligheter (och deras versioner).
  • Oautentiserade förfrågningar som resulterar i ett 401-svar. Exempel är begäranden som inte har en ägartoken, som är felaktiga eller förfallna eller som har en ogiltig token.
  • Azure Event Grid meddelandehändelser för följande villkor: förfallodatum, nära utgångsdatum och ändrad åtkomstprincip för valv (den nya versionshändelsen loggas inte). Händelser loggas även om en händelseprenumeration har skapats i nyckelvalvet. Mer information finns i Azure Key Vault som Event Grid-källa.

Förutsättningar

För att kunna slutföra den här självstudiekursen behöver du följande:

  • Ett befintligt nyckelvalv som du har använt.
  • Azure Cloud Shell – Bash-miljö.
  • Tillräckligt med utrymme i Azure för Key Vault-loggarna.

I den här artikeln formateras kommandon för Cloud Shell med Bash som miljö.

Anslut till din Key Vault-prenumeration

Det första steget i att konfigurera nyckelloggning är att ansluta till prenumerationen som innehåller ditt nyckelvalv. Detta är särskilt viktigt om du har flera prenumerationer associerade med ditt konto.

Med Azure CLI kan du visa alla dina prenumerationer med kommandot az account list . Sedan ansluter du till en med kommandot az account set :

az account list

az account set --subscription "<subscriptionID>"

Med Azure PowerShell kan du först lista dina prenumerationer med hjälp av cmdleten Get-AzSubscription. Sedan ansluter du till en med hjälp av cmdleten Set-AzContext :

Get-AzSubscription

Set-AzContext -SubscriptionId "<subscriptionID>"

Skapa ett lagringskonto för dina loggar

Även om du kan använda ett befintligt lagringskonto för dina loggar skapar du här ett nytt lagringskonto som är dedikerat till Key Vault loggar.

För att underlätta hanteringen använder du även samma resursgrupp som den som innehåller nyckelvalvet. I azure CLI-snabbstarten och Azure PowerShell snabbstarten heter den här resursgruppen myResourceGroup och platsen är eastus. Ersätt dessa värden med dina egna, om tillämpligt.

Du måste också ange ett lagringskontonamn. Storage kontonamn måste vara unika, mellan 3 och 24 tecken långa och endast använda siffror och gemener. Slutligen skapar du ett lagringskonto för Standard_LRS SKU:n.

Med Azure CLI använder du kommandot az storage account create .

az storage account create --name "<your-unique-storage-account-name>" -g "myResourceGroup" --sku "Standard_LRS"

Med Azure PowerShell använder du cmdleten New-AzStorageAccount. Du måste ange den plats som motsvarar resursgruppen.

 New-AzStorageAccount -ResourceGroupName myResourceGroup -Name "<your-unique-storage-account-name>" -Type "Standard_LRS" -Location "eastus"

Observera i båda fallen ID:t för lagringskontot. Azure CLI-åtgärden returnerar ID:t i utdata. Om du vill hämta ID:t med Azure PowerShell använder du Get-AzStorageAccount och tilldelar utdata till variabeln $sa. Du kan sedan se lagringskontot med $sa.id. (Egenskapen $sa.Context används också senare i den här artikeln.)

$sa = Get-AzStorageAccount -Name "<your-unique-storage-account-name>" -ResourceGroup "myResourceGroup"
$sa.id

ID:t för lagringskontot har följande format: "/subscriptions/your-subscription-ID/resourceGroups/myResourceGroup/providers/Microsoft. Storage/storageAccounts/your-unique-storage-account-name".

Anteckning

Om du bestämmer dig för att använda ett befintligt lagringskonto måste det använda samma prenumeration som ditt nyckelvalv. Den måste använda Distributionsmodellen för Azure Resource Manager i stället för den klassiska distributionsmodellen.

Hämta ditt resurs-ID för nyckelvalvet

I CLI-snabbstarten och PowerShell-snabbstarten skapade du en nyckel med ett unikt namn. Använd det namnet igen i följande steg. Om du inte kommer ihåg namnet på ditt nyckelvalv kan du använda kommandot Azure CLI az keyvault list eller cmdleten Azure PowerShell Get-AzKeyVault för att visa dem.

Använd namnet på ditt nyckelvalv för att hitta dess resurs-ID. Med Azure CLI använder du kommandot az keyvault show .

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

Använd cmdleten Get-AzKeyVault med Azure PowerShell.

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

Resurs-ID:t för ditt nyckelvalv har följande format: "/subscriptions/your-subscription-ID/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/your-unique-keyvault-name. Observera det för nästa steg.

Aktivera loggning

Du kan aktivera loggning för Key Vault med hjälp av Azure CLI, Azure PowerShell eller Azure Portal.

Azure CLI

Använd kommandot Azure CLI az monitor diagnostic-settings create , lagringskontots ID och resurs-ID:t för nyckelvalvet enligt följande:

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

Du kan också ange en kvarhållningsprincip för dina loggar så att äldre loggar tas bort automatiskt efter en angiven tidsperiod. Du kan till exempel ange en kvarhållningsprincip som automatiskt tar bort loggar som är äldre än 90 dagar.

Med Azure CLI använder du kommandot az monitor diagnostic-settings update .

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

Komma åt loggarna

Dina Key Vault loggar finns i containern insights-logs-auditevent i lagringskontot som du angav. Om du vill visa loggarna måste du ladda ned blobar.

Börja med att lista alla blobar i containern. Med Azure CLI använder du kommandot az storage blob list .

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

Använd Get-AzStorageBlob med Azure PowerShell. Om du vill visa en lista över alla blobar i den här containern anger du:

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

Från utdata från antingen Azure CLI-kommandot eller cmdleten Azure PowerShell kan du se att namnen på blobarna har följande format: resourceId=<ARM resource ID>/y=<year>/m=<month>/d=<day of month>/h=<hour>/m=<minute>/filename.json. Datum- och tidsvärdena använder Coordinated Universal Time.

Eftersom du kan använda samma lagringskonto för att samla in loggar för flera resurser är det fullständiga resurs-ID:t i blobnamnet användbart för att komma åt eller ladda ned bara de blobar som du behöver.

Men först laddar du ned alla blobar. Med Azure CLI använder du kommandot az storage blob download , skickar namnen på blobarna och sökvägen till filen där du vill spara resultatet.

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

Med Azure PowerShell använder du cmdleten Gt-AzStorageBlobs för att hämta en lista över blobarna. Skicka sedan listan till cmdleten Get-AzStorageBlobContent för att ladda ned loggarna till den valda sökvägen.

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

När du kör den här andra cmdleten i PowerShell skapar / avgränsare i blobnamnen en fullständig mappstruktur under målmappen. Du använder den här strukturen för att ladda ned och lagra blobarna som filer.

Om du vill ladda ned blobbarna selektivt använder du jokertecken. Ett exempel:

  • Om du har flera nyckelvalv och bara vill hämta loggar för ett av dem, mer specifikt nyckelvalvet CONTOSOKEYVAULT3:

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/VAULTS/CONTOSOKEYVAULT3
    
  • Om du har flera resursgrupper och bara vill hämta loggar för en av dem använder du -Blob '*/RESOURCEGROUPS/<resource group name>/*':

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/RESOURCEGROUPS/CONTOSORESOURCEGROUP3/*'
    
  • Om du vill ladda ned alla loggar för januari 2019 använder du -Blob '*/year=2019/m=01/*':

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

Använda Azure Monitor-loggar

Du kan använda Key Vault-lösningen i Azure Monitor-loggar för att granska Key Vault AuditEvent loggar. I Azure Monitor-loggarna använder du loggfrågor till att analysera data och hämta den information du behöver. Mer information finns i Övervakning Key Vault.

Nästa steg