Key Vault günlüğünü etkinleştirme

Bir veya daha fazla anahtar kasası oluşturduktan sonra, büyük olasılıkla anahtar kasalarınıza nasıl ve ne zaman erişilir ve kim tarafından erişilir izlemek istersiniz. Özelliğin tüm ayrıntıları için bkz. Azure Key Vault günlüğü.

Günlüğe kaydedilenler:

  • Erişim izinlerinin, sistem hatalarının veya hatalı isteklerin sonucu olarak başarısız istekler de dahil olmak üzere tüm kimliği doğrulanmış REST API istekleri.
  • Oluşturma, silme, anahtar kasası erişim ilkelerini ayarlama ve etiketler gibi anahtar kasası özniteliklerini güncelleştirme dahil olmak üzere anahtar kasasının kendisi üzerindeki işlemler.
  • Anahtar kasasındaki anahtarlar ve gizli diziler üzerindeki işlemler:
    • Bu anahtarları veya gizli dizileri oluşturma, değiştirme veya silme.
    • İmzalama, doğrulama, şifreleme, şifre çözme, anahtarları sarmalama ve açma, gizli dizileri alma ve anahtarları ve gizli dizileri (ve sürümlerini) listeleme.
  • Bir 401 yanıtına neden olan kimliği doğrulanmamış istekler. Örnek olarak taşıyıcı belirteci olmayan, hatalı biçimlendirilmiş veya süresi dolmuş ya da geçersiz belirteci olan istekler verilebilir.
  • Şu koşullar için bildirim olaylarını Azure Event Grid: süresi doldu, sona ermek üzere ve kasa erişim ilkesi değiştirildi (yeni sürüm olayı günlüğe kaydedilmez). Anahtar kasasında oluşturulmuş bir olay aboneliği olsa bile olaylar günlüğe kaydedilir. Daha fazla bilgi için bkz. Event Grid kaynağı olarak Azure Key Vault.

Önkoşullar

Bu öğreticiyi tamamlamak için bir Azure anahtar kasası gerekir. Aşağıdaki yöntemlerden birini kullanarak yeni bir anahtar kasası oluşturabilirsiniz:

Günlükleriniz için bir hedef de gerekir. Hedef, mevcut veya yeni bir Azure depolama hesabı ve/veya Log Analytics çalışma alanı olabilir.

Aşağıdaki yöntemlerden birini kullanarak yeni bir Azure depolama hesabı oluşturabilirsiniz:

Aşağıdaki yöntemlerden birini kullanarak yeni bir Log Analytics çalışma alanı oluşturabilirsiniz:

Key Vault aboneliğinize bağlanma

Anahtar günlüğünü ayarlamanın ilk adımı, hesabınızla ilişkilendirilmiş birden çok aboneliğiniz varsa anahtar kasanızı içeren aboneliğe bağlanmaktır.

Azure CLI ile az account list komutunu kullanarak tüm aboneliklerinizi görüntüleyebilirsiniz. Ardından az account set komutunu kullanarak birine bağlanırsınız:

az account list

az account set --subscription "<subscriptionID>"

Azure PowerShell ile ilk olarak Get-AzSubscription cmdlet'ini kullanarak aboneliklerinizi listeleyebilirsiniz. Ardından Set-AzContext cmdlet'ini kullanarak birine bağlanırsınız:

Get-AzSubscription

Set-AzContext -SubscriptionId "<subscriptionID>"

Kaynak kimliklerini alma

Bir anahtar kasasında günlüğe kaydetmeyi etkinleştirmek için anahtar kasasının ve hedefin kaynak kimliğine (Azure Depolama veya Log Analytics hesabı) ihtiyacınız vardır.

Anahtar kasanızın adını anımsayamıyorsanız, bulmak için Azure CLI az keyvault list komutunu veya Get-AzKeyVault cmdlet'ini Azure PowerShell kullanabilirsiniz.

Kaynak kimliğini bulmak için anahtar kasanızın adını kullanın. Azure CLI ile az keyvault show komutunu kullanın.

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

Azure PowerShell ile Get-AzKeyVault cmdlet'ini kullanın.

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

Anahtar kasanızın kaynak kimliği şu biçimdedir: "/subscriptions/your-subscription-ID/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/your-unique-keyvault-name. Sonraki adım için not edin.

Günlü kaydını etkinleştir

Azure CLI, Azure PowerShell veya Azure portal kullanarak Key Vault için günlüğe kaydetmeyi etkinleştirebilirsiniz.

Azure CLI

Azure CLI az monitor diagnostic-settings create komutunu, depolama hesabı kimliğini ve anahtar kasası kaynak kimliğini aşağıdaki gibi kullanın:

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

İsteğe bağlı olarak, eski günlüklerin belirli bir süre sonra otomatik olarak silinmesi için günlükleriniz için bir bekletme ilkesi ayarlayabilirsiniz. Örneğin, 90 günden eski günlükleri otomatik olarak silecek bir bekletme ilkesi ayarlayabilirsiniz.

Azure CLI ile az monitor diagnostic-settings update komutunu kullanın.

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

Günlüklerinize erişme

Key Vault günlükleriniz, sağladığınız depolama hesabında insights-logs-auditevent kapsayıcısında bulunur. Günlükleri görüntülemek için blobları indirmeniz gerekir.

İlk olarak, kapsayıcıdaki tüm blobları listeleyin. Azure CLI ile az storage blob list komutunu kullanın.

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

Azure PowerShell ile Get-AzStorageBlob kullanın. Bu kapsayıcıdaki tüm blobları listelemek için şunu girin:

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

Azure CLI komutunun veya Azure PowerShell cmdlet'inin çıkışından blobların adlarının şu biçimde olduğunu görebilirsiniz: resourceId=<ARM resource ID>/y=<year>/m=<month>/d=<day of month>/h=<hour>/m=<minute>/filename.json. Tarih ve saat değerleri Eşgüdümlü Evrensel Saat kullanır.

Birden çok kaynağın günlüklerini toplamak için aynı depolama hesabını kullanabileceğiniz için blob adındaki tam kaynak kimliği yalnızca ihtiyacınız olan bloblara erişmek veya bunları indirmek için kullanışlıdır.

Ancak önce tüm blobları indirin. Azure CLI ile az storage blob download komutunu kullanın, blobların adlarını ve sonuçları kaydetmek istediğiniz dosyanın yolunu geçirin.

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 ile Blobların listesini almak için Get-AzStorageBlob cmdlet'ini kullanın. Ardından günlükleri seçtiğiniz yola indirmek için bu listeyi Get-AzStorageBlobContent cmdlet'ine aktarın.

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

PowerShell'de bu ikinci cmdlet'i çalıştırdığınızda, blob adlarındaki sınırlayıcı hedef / klasörün altında tam bir klasör yapısı oluşturur. Blobları dosya olarak indirip depolamak için bu yapıyı kullanacaksınız.

Blobları seçmeli olarak indirmek için jokerleri kullanın. Örnek:

  • Birden çok anahtar kasanız varsa ve yalnızca CONTOSOKEYVAULT3 adlı bir anahtar kasası için günlük indirmek isterseniz:

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/VAULTS/CONTOSOKEYVAULT3
    
  • Birden çok kaynak grubunuz varsa ve yalnızca bir kaynak grubu için günlük indirmek isterseniz -Blob '*/RESOURCEGROUPS/<resource group name>/*' kullanın:

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/RESOURCEGROUPS/CONTOSORESOURCEGROUP3/*'
    
  • Ocak 2019 ayına ait tüm günlükleri indirmek istiyorsanız kullanın -Blob '*/year=2019/m=01/*':

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

Azure İzleyici günlüklerini kullanma

Key Vault günlüklerini gözden geçirmek için Azure İzleyici günlüklerindeki Key Vault AuditEvent çözümünü kullanabilirsiniz. Azure İzleyici günlüklerinde günlük sorgularını kullanarak analiz gerçekleştirebilir ve ihtiyacınız olan verileri elde edebilirsiniz. Daha fazla bilgi için bkz. İzleme Key Vault.

Sonraki adımlar