Azure Key Vault 감사 로그 수집 점검

Key Vault의 AuditEvent 로그를 필요한 대상으로 보내고 실제 접근 기록을 확인하세요.

설명

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 로그를 기존 저장 계정으로 보냅니다. 설정 후 실제 기록과 저장소의 보존·접근 정책을 확인하세요.

참조