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 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.
  • Anahtar kasasının kendisi üzerinde oluşturma, silme, anahtar kasası erişim ilkelerini ayarlama ve etiketler gibi anahtar kasası özniteliklerini güncelleştirme gibi işlemler.
  • Anahtar kasasındaki anahtarlar ve gizli bilgiler üzerindeki işlemler, örneğin:
    • Bu anahtarları veya sırları oluşturma, değiştirme veya silme.
    • Anahtarları imzalama, doğrulama, şifreleme, şifre çözme, anahtarları sarma ve çözme, şifreleri alma ve anahtarları ve şifreleri (ve bunların sürümlerini) listeleme.
  • 401 yanıtıyla sonuçlanan kimliği doğrulanmamış istekler. Örnek olarak taşıyıcı belirteci olmayan, hatalı biçimlendirilmiş veya süresi dolmuş veya geçersiz belirteci olan istekler verilebilir.
  • Aşağıdaki koşullar için Azure Event Grid bildirim olayları: süresi dolmuş, süresi dolmaya yakın ve kasa erişim politikası değiştirilmiş (yeni sürüm olayı günlüğe kaydedilmez). Anahtar kasasında bir olay aboneliği oluşturulmuş 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ına ihtiyacınız var. Aşağıdaki yöntemlerden birini kullanarak yeni bir anahtar kasası oluşturabilirsiniz:

Günlüklerinizin kaydedilecek bir yere de ihtiyacı vardır. 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 "<subscription-id>"

Azure PowerShell ile önce 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 "<subscription-id>"

Kaynak kimliklerini edin

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 Azure PowerShell Get-AzKeyVault cmdlet'ini kullanabilirsiniz.

Anahtar kasanızın adını kullanarak kaynak ID'sini bulun. Azure CLI ile az keyvault show komutunu kullanın.

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

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

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

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

Log kaydını etkinleştir

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

Azure Komut Satırı Arayüzü (Azure CLI)

Azure CLI az monitor diagnostic-settings create komutunu, depolama hesabı kimliğini ve key vault 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 "<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 çıktısı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.

Ama ö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 "<storage-account-name>"

Azure PowerShell ile Blobların listesini almak için Get-AzStorageBlob cmdlet'ini kullanın. Ardından bu listeyi Get-AzStorageBlobContent cmdlet'ine aktararak günlükleri seçtiğiniz yola indirin.

$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 joker karakterler kullanın. Örneğin:

  • Birden çok anahtar kasanız varsa ve CONTOSOKEYVAULT3 adlı tek bir anahtar kasasının günlüklerini indirmek istiyorsanız:

    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ükleri indirmek istiyorsanız kullanın -Blob '*/RESOURCEGROUPS/<resource-group>/*':

    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. Key Vault'un izlenmesi.

Sonraki Adımlar