Azure SQLサーバーの監査ポリシー設定の確認

必要なデータベースの活動を監査ログに記録してください。

説明

Azure SQLのサーバーレベルの監査ポリシーは、そのサーバー内のデータベースの活動を記録します。実際の記録範囲は、有効なポリシー、選択したイベント、ログの送信先によって異なります。

想定される影響

必要な監査記録がないと、アカウントの活動や変更履歴を調査する証拠が不足するおそれがあります。

対処方法

azurerm_mssql_server_extended_auditing_policyを対象サーバーに関連付け、保存先と保持期間を設定してください。必要なイベントが実際に保存されることを確認してください。

例

以下はBlob Storageで90日間保持する例です。Azure Monitorにも送るにはmasterデータベースの診断設定が必要です。例示したパスワードは本番で使用しないでください。

変更前

hcl
resource "azurerm_mssql_server" "example" {
  name                         = "mssqlserver"
  resource_group_name          = azurerm_resource_group.example.name
  location                     = azurerm_resource_group.example.location
  version                      = "12.0"
  administrator_login          = "mradministrator"
  administrator_login_password = "thisIsDog11"
}

resource "azurerm_mssql_database" "example" {
  name      = "example-db"
  server_id = azurerm_mssql_server.example.id
}

変更後

hcl
resource "azurerm_mssql_server" "example" {
  name                         = "mssqlserver"
  resource_group_name          = azurerm_resource_group.example.name
  location                     = azurerm_resource_group.example.location
  version                      = "12.0"
  administrator_login          = "mradministrator"
  administrator_login_password = "thisIsDog11"
}

resource "azurerm_mssql_server_extended_auditing_policy" "example" {
  server_id                               = azurerm_mssql_server.example.id
  blob_storage_endpoint                        = azurerm_storage_account.example.primary_blob_endpoint
  storage_account_access_key              = azurerm_storage_account.example.primary_access_key
  storage_account_access_key_is_secondary = false
  retention_in_days                       = 90
  log_monitoring_enabled                  = true
}

resource "azurerm_mssql_database" "example" {
  name      = "example-db"
  server_id = azurerm_mssql_server.example.id
}

参考資料