説明
Key Vaultは、キー、シークレット、証明書への重要なアクセスを扱います。必要な監査ログを収集していないと、誰がどの操作を行ったかを一元的に追跡しにくくなり、インシデントの原因と影響範囲の特定に時間がかかる場合があります。
診断設定のAuditEventカテゴリでログをエクスポートし、実際の収集を確認してください。ログ収集はアクセス制御の代わりにはならず、ログ保存先にも適切な保護が必要です。
想定される影響
- シークレット取得やキー使用に関する操作記録を調べにくくなる場合があります。
- 監査資料が不足し、インシデント調査や影響範囲の特定が遅れるおそれがあります。
対処方法
- Key Vaultの
azurerm_monitor_diagnostic_settingでAuditEventを選択し、Storage Account、Log Analytics、Event Hubsのいずれかを送信先に指定してください。 - 実際のKey Vault操作でログの配信をテストし、必要なイベントが含まれることを確認してください。
- 保存先の保持期間とアクセス権限を管理し、異常なアクセスの監視とアラートを構成してください。
例
参照先リソースを省略したロギングの比較です。キーの権限、ネットワーク制御、削除保護は別途確認する必要があります。
変更前
hcl
resource "azurerm_key_vault" "example" {
name = "testvault"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
enabled_for_disk_encryption = true
tenant_id = data.azurerm_client_config.current.tenant_id
soft_delete_retention_days = 7
purge_protection_enabled = false
sku_name = "standard"
}
この抜粋には監査ログのエクスポートがありません。他の既存の診断設定で必要な記録を収集しているかも確認してください。
変更後
hcl
resource "azurerm_key_vault" "example" {
name = "testvault"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
enabled_for_disk_encryption = true
tenant_id = data.azurerm_client_config.current.tenant_id
soft_delete_retention_days = 7
purge_protection_enabled = false
sku_name = "standard"
}
resource "azurerm_monitor_diagnostic_setting" "example" {
name = "keyvault-diagnostics"
target_resource_id = azurerm_key_vault.example.id
storage_account_id = data.azurerm_storage_account.example.id
enabled_log {
category = "AuditEvent"
}
}
AuditEventログを既存のストレージアカウントへ送信します。設定後に実際の記録と、保存先の保持・アクセスポリシーを確認してください。