Udostępnij przez


Serwery Microsoft.Sql/oceny luk w zabezpieczeniach

Definicja zasobu Bicep

Typ zasobu serwery/luka w zabezpieczeniachAssessments można wdrożyć przy użyciu operacji docelowych:

Aby uzyskać listę zmienionych właściwości w każdej wersji interfejsu API, zobacz dziennika zmian.

Format zasobu

Aby utworzyć zasób Microsoft.Sql/servers/vulnerabilityAssessments, dodaj następujący kod Bicep do szablonu.

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

Wartości właściwości

Microsoft.Sql/servers/vulnerabilityAssessments

Name Description Value
name Nazwa zasobu "default" (wymagane)
nadrzędny W Bicep można określić zasób nadrzędny dla zasobu podrzędnego. Tę właściwość należy dodać tylko wtedy, gdy zasób podrzędny jest zadeklarowany poza zasobem nadrzędnym.

Aby uzyskać więcej informacji, zobacz Zasób podrzędny poza zasobem nadrzędnym.
Nazwa symboliczna zasobu typu: serwery
properties Właściwości zasobu. ServerVulnerabilityAssessmentProperties

ServerVulnerabilityAssessmentProperties

Name Description Value
recurringScans Ustawienia skanowania cyklicznego VulnerabilityAssessmentRecurringScansProperties
storageAccountAccessKey Określa klucz identyfikatora konta magazynu dla wyników skanowania oceny luk w zabezpieczeniach. Jeśli parametr "StorageContainerSasKey" nie jest określony, wymagany jest klucz storageAccountAccessKey. Dotyczy tylko wtedy, gdy konto magazynu nie znajduje się za siecią wirtualną lub zaporą ciąg
storageContainerPath Ścieżka kontenera magazynu obiektów blob do przechowywania wyników skanowania (np. https://myStorage.blob.core.windows.net/VaScans/). ciąg (wymagany)
storageContainerSasKey Sygnatura dostępu współdzielonego (klucz SAS), która ma dostęp do zapisu w kontenerze obiektów blob określonym w parametrze "storageContainerPath". Jeśli parametr "storageAccountAccessKey" nie jest określony, wymagany jest klucz StorageContainerSasKey. Dotyczy tylko wtedy, gdy konto magazynu nie znajduje się za siecią wirtualną lub zaporą ciąg

VulnerabilityAssessmentRecurringScansProperties

Name Description Value
emails Określa tablicę adresów e-mail, do których jest wysyłane powiadomienie skanowania. string[]
emailSubscriptionAdmins Określa, że powiadomienie o harmonogramie skanowania zostanie wysłane do administratorów subskrypcji. bool
isEnabled Stan skanowania cyklicznego. bool

Definicja zasobu szablonu usługi ARM

Typ zasobu serwery/luka w zabezpieczeniachAssessments można wdrożyć przy użyciu operacji docelowych:

Aby uzyskać listę zmienionych właściwości w każdej wersji interfejsu API, zobacz dziennika zmian.

Format zasobu

Aby utworzyć zasób Microsoft.Sql/servers/vulnerabilityAssessments, dodaj następujący kod JSON do szablonu.

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

Wartości właściwości

Microsoft.Sql/servers/vulnerabilityAssessments

Name Description Value
apiVersion Wersja interfejsu API '2024-11-01-preview'
name Nazwa zasobu "default" (wymagane)
properties Właściwości zasobu. ServerVulnerabilityAssessmentProperties
typ Typ zasobu 'Microsoft.Sql/servers/vulnerabilityAssessments'

ServerVulnerabilityAssessmentProperties

Name Description Value
recurringScans Ustawienia skanowania cyklicznego VulnerabilityAssessmentRecurringScansProperties
storageAccountAccessKey Określa klucz identyfikatora konta magazynu dla wyników skanowania oceny luk w zabezpieczeniach. Jeśli parametr "StorageContainerSasKey" nie jest określony, wymagany jest klucz storageAccountAccessKey. Dotyczy tylko wtedy, gdy konto magazynu nie znajduje się za siecią wirtualną lub zaporą ciąg
storageContainerPath Ścieżka kontenera magazynu obiektów blob do przechowywania wyników skanowania (np. https://myStorage.blob.core.windows.net/VaScans/). ciąg (wymagany)
storageContainerSasKey Sygnatura dostępu współdzielonego (klucz SAS), która ma dostęp do zapisu w kontenerze obiektów blob określonym w parametrze "storageContainerPath". Jeśli parametr "storageAccountAccessKey" nie jest określony, wymagany jest klucz StorageContainerSasKey. Dotyczy tylko wtedy, gdy konto magazynu nie znajduje się za siecią wirtualną lub zaporą ciąg

VulnerabilityAssessmentRecurringScansProperties

Name Description Value
emails Określa tablicę adresów e-mail, do których jest wysyłane powiadomienie skanowania. string[]
emailSubscriptionAdmins Określa, że powiadomienie o harmonogramie skanowania zostanie wysłane do administratorów subskrypcji. bool
isEnabled Stan skanowania cyklicznego. bool

Przykłady użycia

Definicja zasobu narzędzia Terraform (dostawcy AzAPI)

Typ zasobu serwery/luka w zabezpieczeniachAssessments można wdrożyć przy użyciu operacji docelowych:

  • Grupy zasobów

Aby uzyskać listę zmienionych właściwości w każdej wersji interfejsu API, zobacz dziennika zmian.

Format zasobu

Aby utworzyć zasób Microsoft.Sql/servers/vulnerabilityAssessments, dodaj następujący program Terraform do szablonu.

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

Wartości właściwości

Microsoft.Sql/servers/vulnerabilityAssessments

Name Description Value
name Nazwa zasobu "default" (wymagane)
parent_id Identyfikator zasobu, który jest elementem nadrzędnym dla tego zasobu. Identyfikator zasobu typu: serwerów
properties Właściwości zasobu. ServerVulnerabilityAssessmentProperties
typ Typ zasobu "Microsoft.Sql/servers/vulnerabilityAssessments@2024-11-01-preview"

ServerVulnerabilityAssessmentProperties

Name Description Value
recurringScans Ustawienia skanowania cyklicznego VulnerabilityAssessmentRecurringScansProperties
storageAccountAccessKey Określa klucz identyfikatora konta magazynu dla wyników skanowania oceny luk w zabezpieczeniach. Jeśli parametr "StorageContainerSasKey" nie jest określony, wymagany jest klucz storageAccountAccessKey. Dotyczy tylko wtedy, gdy konto magazynu nie znajduje się za siecią wirtualną lub zaporą ciąg
storageContainerPath Ścieżka kontenera magazynu obiektów blob do przechowywania wyników skanowania (np. https://myStorage.blob.core.windows.net/VaScans/). ciąg (wymagany)
storageContainerSasKey Sygnatura dostępu współdzielonego (klucz SAS), która ma dostęp do zapisu w kontenerze obiektów blob określonym w parametrze "storageContainerPath". Jeśli parametr "storageAccountAccessKey" nie jest określony, wymagany jest klucz StorageContainerSasKey. Dotyczy tylko wtedy, gdy konto magazynu nie znajduje się za siecią wirtualną lub zaporą ciąg

VulnerabilityAssessmentRecurringScansProperties

Name Description Value
emails Określa tablicę adresów e-mail, do których jest wysyłane powiadomienie skanowania. string[]
emailSubscriptionAdmins Określa, że powiadomienie o harmonogramie skanowania zostanie wysłane do administratorów subskrypcji. bool
isEnabled Stan skanowania cyklicznego. bool

Przykłady użycia

Przykłady programu Terraform

Podstawowy przykład wdrożenia Vulnerability Assessment dla serwera MS SQL.

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]
}