Параметры диагностики в Azure — Terraform

#azure #terraform

Вопрос:

Я хочу настроить аудит базы данных SQL, чтобы я видел аудит сервера и базы данных, как показано ниже :

введите описание изображения здесь

таким образом, это показывает, что существует аудит на SQL-сервере, а также в базе данных SQL. Я могу сделать это довольно легко в terraform, указав /master, и я могу выполнить аудит сервера — вот так :

 #---- Diagnostic Logging ---- resource "azurerm_monitor_diagnostic_setting" "main" {  name = "Diagnostic Settings - Master"  target_resource_id = "${azurerm_mssql_server.main.id}/databases/master"  log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id     log {  category = "SQLSecurityAuditEvents"  enabled = true   retention_policy {  enabled = false  }  }   metric {  category = "AllMetrics"   retention_policy {  enabled = false  }  }   lifecycle {  ignore_changes = [log, metric]  } }  

и этот раздел применяет его к БД /master (серверу).

 resource "azurerm_mssql_server_extended_auditing_policy" "main" {  server_id = azurerm_mssql_server.main.id  log_monitoring_enabled = true }  

хотя мне это нужно на сервере, мне это также нужно в двух базах данных, которые находятся на сервере. Любая помощь в этом, потому что я, кажется, не могу разобраться в этом.

Комментарии:

1. Я не уверен, что понимаю ваш вопрос. Как указано в синем поле вверху снимка экрана, включение ведения журнала на уровне сервера автоматически включит ведение журнала для всех баз данных на этом же сервере. Вам не нужно указывать его в своем файле tf.

2. справедливо — сеть, которую я пытался скопировать, была неправильной… хотя при необходимости вы можете создать политику анализа журналов для уровня БД.

3. Безусловно, все дело в вашей стратегии ведения журнала. Но как только вы включите его на уровне сервера, он будет преобладать в конфигурации ведения журнала БД — это полезно знать 🙂

Ответ №1:

Нет необходимости создавать уровень БД, но если вам это потребуется, тогда. вы можете сделать это, изменив эту строку на имя вашей бд.

 target_resource_id = "${azurerm_mssql_server.main.id}/databases/master"  

мастер указывает на ваш уровень сервера, но если вам нужна политика на уровне БД, измените ее на имя вашей БД.