Compartilhar via


Microsoft.Sql servers/vulnerabilityAssessments 2022-08-01-preview

Definição de recurso do Bicep

O tipo de recurso servers/vulnerabilityAssessments pode ser implantado com operações direcionadas:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato de recurso

Para criar um recurso Microsoft.Sql/servers/vulnerabilityAssessments, adicione o Bicep a seguir ao modelo.

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

Valores de propriedade

Microsoft.Sql/servers/vulnerabilityAssessments

Name Description Value
name O nome do recurso 'default' (obrigatório)
pai No Bicep, você pode especificar o recurso pai para um recurso filho. Você só precisa adicionar essa propriedade quando o recurso filho é declarado fora do recurso pai.

Para obter mais informações, consulte recurso filho fora do recurso pai.
Nome simbólico para o recurso do tipo: servidores
properties Propriedades do recurso. ServerVulnerabilityAssessmentProperties

ServerVulnerabilityAssessmentProperties

Name Description Value
recurringScans As configurações de verificações recorrentes VulnerabilityAssessmentRecurringScansProperties
storageAccountAccessKey Especifica a chave do identificador da conta de armazenamento para resultados da verificação de avaliação de vulnerabilidade. Se 'StorageContainerSasKey' não for especificado, storageAccountAccessKey será necessário. Aplica-se somente se a conta de armazenamento não estiver por trás de uma Vnet ou um firewall string

Constraints:
Valor confidencial. Passe como um parâmetro seguro.
storageContainerPath Um caminho de contêiner de armazenamento de blobs para manter os resultados da verificação (por exemplo https://myStorage.blob.core.windows.net/VaScans/). cadeia de caracteres (obrigatório)
storageContainerSasKey Uma assinatura de acesso compartilhado (Chave SAS) que tem acesso de gravação ao contêiner de blob especificado no parâmetro 'storageContainerPath'. Se 'storageAccountAccessKey' não for especificado, StorageContainerSasKey será necessário. Aplica-se somente se a conta de armazenamento não estiver por trás de uma Vnet ou um firewall string

Constraints:
Valor confidencial. Passe como um parâmetro seguro.

VulnerabilityAssessmentRecurringScansProperties

Name Description Value
emails Especifica uma matriz de endereços de email para os quais a notificação de verificação é enviada. string[]
emailSubscriptionAdmins Especifica que a notificação de verificação de agendamento será enviada aos administradores da assinatura. bool
isEnabled Estado de verificações recorrentes. bool

Definição de recurso de modelo do ARM

O tipo de recurso servers/vulnerabilityAssessments pode ser implantado com operações direcionadas:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato de recurso

Para criar um recurso Microsoft.Sql/servers/vulnerabilityAssessments, adicione o JSON a seguir ao seu modelo.

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

Valores de propriedade

Microsoft.Sql/servers/vulnerabilityAssessments

Name Description Value
apiVersion A versão da API '2022-08-01-preview'
name O nome do recurso 'default' (obrigatório)
properties Propriedades do recurso. ServerVulnerabilityAssessmentProperties
tipo O tipo de recurso 'Microsoft.Sql/servers/vulnerabilityAssessments'

ServerVulnerabilityAssessmentProperties

Name Description Value
recurringScans As configurações de verificações recorrentes VulnerabilityAssessmentRecurringScansProperties
storageAccountAccessKey Especifica a chave do identificador da conta de armazenamento para resultados da verificação de avaliação de vulnerabilidade. Se 'StorageContainerSasKey' não for especificado, storageAccountAccessKey será necessário. Aplica-se somente se a conta de armazenamento não estiver por trás de uma Vnet ou um firewall string

Constraints:
Valor confidencial. Passe como um parâmetro seguro.
storageContainerPath Um caminho de contêiner de armazenamento de blobs para manter os resultados da verificação (por exemplo https://myStorage.blob.core.windows.net/VaScans/). cadeia de caracteres (obrigatório)
storageContainerSasKey Uma assinatura de acesso compartilhado (Chave SAS) que tem acesso de gravação ao contêiner de blob especificado no parâmetro 'storageContainerPath'. Se 'storageAccountAccessKey' não for especificado, StorageContainerSasKey será necessário. Aplica-se somente se a conta de armazenamento não estiver por trás de uma Vnet ou um firewall string

Constraints:
Valor confidencial. Passe como um parâmetro seguro.

VulnerabilityAssessmentRecurringScansProperties

Name Description Value
emails Especifica uma matriz de endereços de email para os quais a notificação de verificação é enviada. string[]
emailSubscriptionAdmins Especifica que a notificação de verificação de agendamento será enviada aos administradores da assinatura. bool
isEnabled Estado de verificações recorrentes. bool

Exemplos de uso

Definição de recurso do Terraform (provedor de AzAPI)

O tipo de recurso servers/vulnerabilityAssessments pode ser implantado com operações direcionadas:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato de recurso

Para criar um recurso Microsoft.Sql/servers/vulnerabilityAssessments, adicione o Terraform a seguir ao seu modelo.

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

Valores de propriedade

Microsoft.Sql/servers/vulnerabilityAssessments

Name Description Value
name O nome do recurso 'default' (obrigatório)
parent_id A ID do recurso que é o pai desse recurso. ID do recurso do tipo: servidores
properties Propriedades do recurso. ServerVulnerabilityAssessmentProperties
tipo O tipo de recurso "Microsoft.Sql/servers/vulnerabilityAssessments@2022-08-01-preview"

ServerVulnerabilityAssessmentProperties

Name Description Value
recurringScans As configurações de verificações recorrentes VulnerabilityAssessmentRecurringScansProperties
storageAccountAccessKey Especifica a chave do identificador da conta de armazenamento para resultados da verificação de avaliação de vulnerabilidade. Se 'StorageContainerSasKey' não for especificado, storageAccountAccessKey será necessário. Aplica-se somente se a conta de armazenamento não estiver por trás de uma Vnet ou um firewall string

Constraints:
Valor confidencial. Passe como um parâmetro seguro.
storageContainerPath Um caminho de contêiner de armazenamento de blobs para manter os resultados da verificação (por exemplo https://myStorage.blob.core.windows.net/VaScans/). cadeia de caracteres (obrigatório)
storageContainerSasKey Uma assinatura de acesso compartilhado (Chave SAS) que tem acesso de gravação ao contêiner de blob especificado no parâmetro 'storageContainerPath'. Se 'storageAccountAccessKey' não for especificado, StorageContainerSasKey será necessário. Aplica-se somente se a conta de armazenamento não estiver por trás de uma Vnet ou um firewall string

Constraints:
Valor confidencial. Passe como um parâmetro seguro.

VulnerabilityAssessmentRecurringScansProperties

Name Description Value
emails Especifica uma matriz de endereços de email para os quais a notificação de verificação é enviada. string[]
emailSubscriptionAdmins Especifica que a notificação de verificação de agendamento será enviada aos administradores da assinatura. bool
isEnabled Estado de verificações recorrentes. bool

Exemplos de uso

Exemplos do Terraform

Um exemplo básico de implantação da Avaliação de Vulnerabilidade para um 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]
}