Майкрософт. Sql-серверы/уязвимостьОценки

Определение ресурса Bicep

Тип ресурса server/vulnerabilityAssessments можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Создать Майкрософт. Ресурс Sql/servers/vulnerabilityAssessments — добавьте следующий Bicep в свой шаблон.

resource symbolicname 'Microsoft.Sql/servers/vulnerabilityAssessments@2025-02-01-preview' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    recurringScans: {
      emails: [
        'string'
      ]
      emailSubscriptionAdmins: bool
      isEnabled: bool
    }
    storageAccountAccessKey: 'string'
    storageContainerPath: 'string'
    storageContainerSasKey: 'string'
  }
}

Значения свойств

Майкрософт. Sql/servers/vulnerabilityAssessments

Name Description Value
name имя ресурса. "default" (обязательно)
parent В Bicep можно указать родительский ресурс для дочернего ресурса. Это свойство необходимо добавить, только если дочерний ресурс объявлен за пределами родительского ресурса.

Дополнительные сведения см. в разделе Дочерний ресурс за пределами родительского ресурса.
Символьное имя ресурса типа: серверы
properties Свойства ресурса. ServerVulnerabilityAssessmentProperties

ServerVulnerabilityAssessmentProperties

Name Description Value
recurringScans Параметры повторяющихся проверок VulnerabilityAssessmentRecurringScansProperties
storageAccountAccessKey Указывает ключ идентификатора учетной записи хранения для результатов проверки уязвимостей. Если параметр StorageContainerSasKey не указан, требуется storageAccountAccessKey. Применяется только в том случае, если учетная запись хранения не находится за виртуальной сетью или брандмауэром. string
storageContainerPath Путь к контейнеру хранилища BLOB-объектов для хранения результатов сканирования (например, https://myStorage.blob.core.windows.net/VaScans/). строка (обязательно)
storageContainerSasKey Подписанный URL-адрес (КЛЮЧ SAS), имеющий доступ на запись к контейнеру BLOB-объектов, указанному в параметре storageContainerPath. Если параметр storageAccountAccessKey не указан, требуется StorageContainerSasKey. Применяется только в том случае, если учетная запись хранения не находится за виртуальной сетью или брандмауэром. string

VulnerabilityAssessmentRecurringScansProperties

Name Description Value
emails Задает массив адресов электронной почты, на которые отправляется уведомление сканирования. string[]
emailSubscriptionAdmins Указывает, что уведомление о проверке расписания будет отправлено администраторам подписки. bool
isEnabled Состояние повторяющихся проверок. bool

Определение ресурса шаблона ARM

Тип ресурса server/vulnerabilityAssessments можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Создать Майкрософт. Ресурс Sql/servers/vulnerabilityAssessments — добавьте следующий JSON в ваш шаблон.

{
  "type": "Microsoft.Sql/servers/vulnerabilityAssessments",
  "apiVersion": "2025-02-01-preview",
  "name": "string",
  "properties": {
    "recurringScans": {
      "emails": [ "string" ],
      "emailSubscriptionAdmins": "bool",
      "isEnabled": "bool"
    },
    "storageAccountAccessKey": "string",
    "storageContainerPath": "string",
    "storageContainerSasKey": "string"
  }
}

Значения свойств

Майкрософт. Sql/servers/vulnerabilityAssessments

Name Description Value
apiVersion Версия API «2025-02-01-превью»
name имя ресурса. "default" (обязательно)
properties Свойства ресурса. ServerVulnerabilityAssessmentProperties
type Тип ресурса 'Майкрософт. Sql/servers/vulnerabilityAssessments'

ServerVulnerabilityAssessmentProperties

Name Description Value
recurringScans Параметры повторяющихся проверок VulnerabilityAssessmentRecurringScansProperties
storageAccountAccessKey Указывает ключ идентификатора учетной записи хранения для результатов проверки уязвимостей. Если параметр StorageContainerSasKey не указан, требуется storageAccountAccessKey. Применяется только в том случае, если учетная запись хранения не находится за виртуальной сетью или брандмауэром. string
storageContainerPath Путь к контейнеру хранилища BLOB-объектов для хранения результатов сканирования (например, https://myStorage.blob.core.windows.net/VaScans/). строка (обязательно)
storageContainerSasKey Подписанный URL-адрес (КЛЮЧ SAS), имеющий доступ на запись к контейнеру BLOB-объектов, указанному в параметре storageContainerPath. Если параметр storageAccountAccessKey не указан, требуется StorageContainerSasKey. Применяется только в том случае, если учетная запись хранения не находится за виртуальной сетью или брандмауэром. string

VulnerabilityAssessmentRecurringScansProperties

Name Description Value
emails Задает массив адресов электронной почты, на которые отправляется уведомление сканирования. string[]
emailSubscriptionAdmins Указывает, что уведомление о проверке расписания будет отправлено администраторам подписки. bool
isEnabled Состояние повторяющихся проверок. bool

Примеры использования

Определение ресурса Terraform (поставщик AzAPI)

Тип ресурса server/vulnerabilityAssessments можно развернуть с помощью операций, предназначенных для следующих операций:

  • Группы ресурсов

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Создать Майкрософт. Sql/servers/vulnerabilityAssessments resource — добавьте следующий Terraform в ваш шаблон.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/servers/vulnerabilityAssessments@2025-02-01-preview"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      recurringScans = {
        emails = [
          "string"
        ]
        emailSubscriptionAdmins = bool
        isEnabled = bool
      }
      storageAccountAccessKey = "string"
      storageContainerPath = "string"
      storageContainerSasKey = "string"
    }
  }
}

Значения свойств

Майкрософт. Sql/servers/vulnerabilityAssessments

Name Description Value
name имя ресурса. "default" (обязательно)
parent_id Идентификатор ресурса, который является родительским для этого ресурса. Идентификатор ресурса типа: серверы
properties Свойства ресурса. ServerVulnerabilityAssessmentProperties
type Тип ресурса «Майкрософт. Sql/servers/vulnerabilityAssessments@2025-02-01-preview"

ServerVulnerabilityAssessmentProperties

Name Description Value
recurringScans Параметры повторяющихся проверок VulnerabilityAssessmentRecurringScansProperties
storageAccountAccessKey Указывает ключ идентификатора учетной записи хранения для результатов проверки уязвимостей. Если параметр StorageContainerSasKey не указан, требуется storageAccountAccessKey. Применяется только в том случае, если учетная запись хранения не находится за виртуальной сетью или брандмауэром. string
storageContainerPath Путь к контейнеру хранилища BLOB-объектов для хранения результатов сканирования (например, https://myStorage.blob.core.windows.net/VaScans/). строка (обязательно)
storageContainerSasKey Подписанный URL-адрес (КЛЮЧ SAS), имеющий доступ на запись к контейнеру BLOB-объектов, указанному в параметре storageContainerPath. Если параметр storageAccountAccessKey не указан, требуется StorageContainerSasKey. Применяется только в том случае, если учетная запись хранения не находится за виртуальной сетью или брандмауэром. string

VulnerabilityAssessmentRecurringScansProperties

Name Description Value
emails Задает массив адресов электронной почты, на которые отправляется уведомление сканирования. string[]
emailSubscriptionAdmins Указывает, что уведомление о проверке расписания будет отправлено администраторам подписки. bool
isEnabled Состояние повторяющихся проверок. bool

Примеры использования

Примеры Terraform

Базовый пример развертывания оценки уязвимостей для MS SQL Server.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "centralus"
}

variable "administrator_login_password" {
  type        = string
  sensitive   = true
  description = "The administrator login password for the SQL server"
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "server" {
  type      = "Microsoft.Sql/servers@2023-08-01-preview"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      administratorLogin            = "mradministrator"
      administratorLoginPassword    = var.administrator_login_password
      minimalTlsVersion             = "1.2"
      publicNetworkAccess           = "Enabled"
      restrictOutboundNetworkAccess = "Disabled"
      version                       = "12.0"
    }
  }
}

resource "azapi_resource" "storageAccount" {
  type      = "Microsoft.Storage/storageAccounts@2023-05-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = "${var.resource_name}sa"
  location  = var.location
  body = {
    kind = "StorageV2"
    properties = {
      accessTier                   = "Hot"
      allowBlobPublicAccess        = true
      allowCrossTenantReplication  = false
      allowSharedKeyAccess         = true
      defaultToOAuthAuthentication = false
      dnsEndpointType              = "Standard"
      encryption = {
        keySource = "Microsoft.Storage"
        services = {
          queue = {
            keyType = "Service"
          }
          table = {
            keyType = "Service"
          }
        }
      }
      isHnsEnabled       = false
      isLocalUserEnabled = true
      isNfsV3Enabled     = false
      isSftpEnabled      = false
      minimumTlsVersion  = "TLS1_2"
      networkAcls = {
        bypass              = "AzureServices"
        defaultAction       = "Allow"
        ipRules             = []
        resourceAccessRules = []
        virtualNetworkRules = []
      }
      publicNetworkAccess      = "Enabled"
      supportsHttpsTrafficOnly = true
    }
    sku = {
      name = "Standard_GRS"
    }
  }
}

resource "azapi_resource_action" "storageAccountKeys" {
  type                   = "Microsoft.Storage/storageAccounts@2023-05-01"
  resource_id            = azapi_resource.storageAccount.id
  action                 = "listKeys"
  response_export_values = ["keys"]
}

resource "azapi_resource" "storageContainer" {
  type      = "Microsoft.Storage/storageAccounts/blobServices/containers@2023-05-01"
  parent_id = "${azapi_resource.storageAccount.id}/blobServices/default"
  name      = "vulnerability-assessment"
  body = {
    properties = {}
  }
}

resource "azapi_resource" "securityAlertPolicy" {
  type      = "Microsoft.Sql/servers/securityAlertPolicies@2023-08-01-preview"
  parent_id = azapi_resource.server.id
  name      = "default"
  body = {
    properties = {
      state = "Enabled"
    }
  }
}

resource "azapi_resource" "vulnerabilityAssessment" {
  type      = "Microsoft.Sql/servers/vulnerabilityAssessments@2023-08-01-preview"
  parent_id = azapi_resource.server.id
  name      = "default"
  body = {
    properties = {
      recurringScans = {
        emailSubscriptionAdmins = false
        emails                  = []
        isEnabled               = false
      }
      storageAccountAccessKey = azapi_resource_action.storageAccountKeys.output.keys[0].value
      storageContainerPath    = "${azapi_resource.storageAccount.output.properties.primaryEndpoints.blob}${azapi_resource.storageContainer.name}/"
    }
  }
  depends_on = [azapi_resource.securityAlertPolicy]
}