Compartilhar via


Servidores Microsoft.Sql/extendedAuditingSettings 2022-02-01-preview

Definição de recurso do Bicep

O tipo de recurso servers/extendedAuditingSettings 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/extendedAuditingSettings, adicione o Bicep a seguir ao modelo.

resource symbolicname 'Microsoft.Sql/servers/extendedAuditingSettings@2022-02-01-preview' = {
  parent: resourceSymbolicName
  name: 'default'
  properties: {
    auditActionsAndGroups: [
      'string'
    ]
    isAzureMonitorTargetEnabled: bool
    isDevopsAuditEnabled: bool
    isManagedIdentityInUse: bool
    isStorageSecondaryKeyInUse: bool
    predicateExpression: 'string'
    queueDelayMs: int
    retentionDays: int
    state: 'string'
    storageAccountAccessKey: 'string'
    storageAccountSubscriptionId: 'string'
    storageEndpoint: 'string'
  }
}

Valores da propriedade

Microsoft.Sql/servers/extendedAuditingSettings

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. ExtendedServerBlobAuditingPolicyProperties

ExtendedServerBlobAuditingPolicyProperties

Name Description Value
auditActionsAndGroups Especifica o Actions-Groups e as Ações a serem auditádas.

O conjunto recomendado de grupos de ações a ser usado é a seguinte combinação: isso auditará todas as consultas e procedimentos armazenados executados no banco de dados, bem como logons bem-sucedidos e com falha:

BATCH_COMPLETED_GROUP,
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP,
FAILED_DATABASE_AUTHENTICATION_GROUP.

Essa combinação acima também é o conjunto configurado por padrão ao habilitar a auditoria do portal do Azure.

Os grupos de ações com suporte para auditoria são (observação: escolha apenas grupos específicos que abrangem suas necessidades de auditoria. O uso de grupos desnecessários pode levar a grandes quantidades de registros de auditoria):

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP
BACKUP_RESTORE_GROUP
DATABASE_LOGOUT_GROUP
DATABASE_OBJECT_CHANGE_GROUP
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP
DATABASE_OPERATION_GROUP
DATABASE_PERMISSION_CHANGE_GROUP
DATABASE_PRINCIPAL_CHANGE_GROUP
DATABASE_PRINCIPAL_IMPERSONATION_GROUP
DATABASE_ROLE_MEMBER_CHANGE_GROUP
FAILED_DATABASE_AUTHENTICATION_GROUP
SCHEMA_OBJECT_ACCESS_GROUP
SCHEMA_OBJECT_CHANGE_GROUP
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP
USER_CHANGE_PASSWORD_GROUP
BATCH_STARTED_GROUP
BATCH_COMPLETED_GROUP
DBCC_GROUP
DATABASE_OWNERSHIP_CHANGE_GROUP
DATABASE_CHANGE_GROUP
LEDGER_OPERATION_GROUP

Esses são grupos que abrangem todas as instruções sql e procedimentos armazenados executados no banco de dados e não devem ser usados em combinação com outros grupos, pois isso resultará em logs de auditoria duplicados.

Para obter mais informações, consulte Database-Level Grupos de Ações de Auditoria.

Para a política de auditoria de banco de dados, ações específicas também podem ser especificadas (observe que ações não podem ser especificadas para a política de auditoria do servidor). As ações com suporte para auditoria são:
SELECT
UPDATE
INSERT
DELETE
EXECUTE
RECEIVE
REFERENCES

O formulário geral para definir uma ação a ser auditada é:
{ação} ON {objeto} POR {principal}

Observe que <objeto> no formato acima pode se referir a um objeto como uma tabela, exibição ou procedimento armazenado ou um banco de dados ou esquema inteiro. Para os últimos casos, os formulários DATABASE::{db_name} e SCHEMA::{schema_name} são usados, respectivamente.

Por exemplo:
SELECT em dbo.myTable por público
SELECT em DATABASE::myDatabase por público
SELECT em SCHEMA::mySchema por public

Para obter mais informações, consulte Database-Level Ações de Auditoria
string[]
isAzureMonitorTargetEnabled Especifica se os eventos de auditoria são enviados ao Azure Monitor.
Para enviar os eventos para o Azure Monitor, especifique 'State' como 'Enabled' e 'IsAzureMonitorTargetEnabled' como true.

Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'SQLSecurityAuditEvents' no banco de dados também devem ser criadas.
Observe que, para auditoria no nível do servidor, você deve usar o banco de dados 'mestre' como {databaseName}.

Formato de URI de Configurações de Diagnóstico:
PÔR https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Para obter mais informações, consulte API REST de Configurações de Diagnóstico
ou do PowerShell de configurações de diagnóstico de
bool
isDevopsAuditEnabled Especifica o estado da auditoria devops. Se o estado estiver habilitado, os logs devops serão enviados para o Azure Monitor.
Para enviar os eventos para o Azure Monitor, especifique 'State' como 'Enabled', 'IsAzureMonitorTargetEnabled' como true e 'IsDevopsAuditEnabled' como true

Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'DevOpsOperationsAudit' no banco de dados mestre também devem ser criadas.

Formato de URI de Configurações de Diagnóstico:
PÔR https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Para obter mais informações, consulte API REST de Configurações de Diagnóstico
ou do PowerShell de configurações de diagnóstico de
bool
isManagedIdentityInUse Especifica se a Identidade Gerenciada é usada para acessar o armazenamento de blobs bool
isStorageSecondaryKeyInUse Especifica se o valor storageAccountAccessKey é a chave secundária do armazenamento. bool
predicateExpression Especifica a condição de onde a cláusula ao criar uma auditoria. cadeia
queueDelayMs Especifica a quantidade de tempo em milissegundos que pode decorrer antes que as ações de auditoria sejam forçadas a serem processadas.
O valor mínimo padrão é 1000 (1 segundo). O máximo é 2.147.483.647.
int
retentionDays Especifica o número de dias a serem mantidos nos logs de auditoria na conta de armazenamento. int
estado Especifica o estado da auditoria. Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled serão necessários. 'Disabled'
'Enabled' (obrigatório)
storageAccountAccessKey Especifica a chave do identificador da conta de armazenamento de auditoria.
Se o estado estiver habilitado e o storageEndpoint for especificado, não especificar o storageAccountAccessKey usará a identidade gerenciada atribuída pelo sistema do SQL Server para acessar o armazenamento.
Pré-requisitos para usar a autenticação de identidade gerenciada:
1. Atribuir ao SQL Server uma identidade gerenciada atribuída pelo sistema no AAD (Azure Active Directory).
2. Conceda acesso à identidade do SQL Server à conta de armazenamento adicionando a função RBAC 'Colaborador de Dados de Blob de Armazenamento' à identidade do servidor.
Para obter mais informações, consulte Auditoria no armazenamento usando a autenticação de Identidade Gerenciada
string

Constraints:
Valor confidencial. Passe como um parâmetro seguro.
storageAccountSubscriptionId Especifica a ID da assinatura do armazenamento de blobs. string

Constraints:
Comprimento mínimo = 36
Comprimento máximo = 36
Padrão = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
storageEndpoint Especifica o ponto de extremidade de armazenamento de blobs (por exemplo, https://MyAccount.blob.core.windows.net). Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled será necessário. cadeia

Definição de recurso de modelo do ARM

O tipo de recurso servers/extendedAuditingSettings 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/extendedAuditingSettings, adicione o JSON a seguir ao seu modelo.

{
  "type": "Microsoft.Sql/servers/extendedAuditingSettings",
  "apiVersion": "2022-02-01-preview",
  "name": "string",
  "properties": {
    "auditActionsAndGroups": [ "string" ],
    "isAzureMonitorTargetEnabled": "bool",
    "isDevopsAuditEnabled": "bool",
    "isManagedIdentityInUse": "bool",
    "isStorageSecondaryKeyInUse": "bool",
    "predicateExpression": "string",
    "queueDelayMs": "int",
    "retentionDays": "int",
    "state": "string",
    "storageAccountAccessKey": "string",
    "storageAccountSubscriptionId": "string",
    "storageEndpoint": "string"
  }
}

Valores da propriedade

Microsoft.Sql/servers/extendedAuditingSettings

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

ExtendedServerBlobAuditingPolicyProperties

Name Description Value
auditActionsAndGroups Especifica o Actions-Groups e as Ações a serem auditádas.

O conjunto recomendado de grupos de ações a ser usado é a seguinte combinação: isso auditará todas as consultas e procedimentos armazenados executados no banco de dados, bem como logons bem-sucedidos e com falha:

BATCH_COMPLETED_GROUP,
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP,
FAILED_DATABASE_AUTHENTICATION_GROUP.

Essa combinação acima também é o conjunto configurado por padrão ao habilitar a auditoria do portal do Azure.

Os grupos de ações com suporte para auditoria são (observação: escolha apenas grupos específicos que abrangem suas necessidades de auditoria. O uso de grupos desnecessários pode levar a grandes quantidades de registros de auditoria):

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP
BACKUP_RESTORE_GROUP
DATABASE_LOGOUT_GROUP
DATABASE_OBJECT_CHANGE_GROUP
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP
DATABASE_OPERATION_GROUP
DATABASE_PERMISSION_CHANGE_GROUP
DATABASE_PRINCIPAL_CHANGE_GROUP
DATABASE_PRINCIPAL_IMPERSONATION_GROUP
DATABASE_ROLE_MEMBER_CHANGE_GROUP
FAILED_DATABASE_AUTHENTICATION_GROUP
SCHEMA_OBJECT_ACCESS_GROUP
SCHEMA_OBJECT_CHANGE_GROUP
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP
USER_CHANGE_PASSWORD_GROUP
BATCH_STARTED_GROUP
BATCH_COMPLETED_GROUP
DBCC_GROUP
DATABASE_OWNERSHIP_CHANGE_GROUP
DATABASE_CHANGE_GROUP
LEDGER_OPERATION_GROUP

Esses são grupos que abrangem todas as instruções sql e procedimentos armazenados executados no banco de dados e não devem ser usados em combinação com outros grupos, pois isso resultará em logs de auditoria duplicados.

Para obter mais informações, consulte Database-Level Grupos de Ações de Auditoria.

Para a política de auditoria de banco de dados, ações específicas também podem ser especificadas (observe que ações não podem ser especificadas para a política de auditoria do servidor). As ações com suporte para auditoria são:
SELECT
UPDATE
INSERT
DELETE
EXECUTE
RECEIVE
REFERENCES

O formulário geral para definir uma ação a ser auditada é:
{ação} ON {objeto} POR {principal}

Observe que <objeto> no formato acima pode se referir a um objeto como uma tabela, exibição ou procedimento armazenado ou um banco de dados ou esquema inteiro. Para os últimos casos, os formulários DATABASE::{db_name} e SCHEMA::{schema_name} são usados, respectivamente.

Por exemplo:
SELECT em dbo.myTable por público
SELECT em DATABASE::myDatabase por público
SELECT em SCHEMA::mySchema por public

Para obter mais informações, consulte Database-Level Ações de Auditoria
string[]
isAzureMonitorTargetEnabled Especifica se os eventos de auditoria são enviados ao Azure Monitor.
Para enviar os eventos para o Azure Monitor, especifique 'State' como 'Enabled' e 'IsAzureMonitorTargetEnabled' como true.

Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'SQLSecurityAuditEvents' no banco de dados também devem ser criadas.
Observe que, para auditoria no nível do servidor, você deve usar o banco de dados 'mestre' como {databaseName}.

Formato de URI de Configurações de Diagnóstico:
PÔR https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Para obter mais informações, consulte API REST de Configurações de Diagnóstico
ou do PowerShell de configurações de diagnóstico de
bool
isDevopsAuditEnabled Especifica o estado da auditoria devops. Se o estado estiver habilitado, os logs devops serão enviados para o Azure Monitor.
Para enviar os eventos para o Azure Monitor, especifique 'State' como 'Enabled', 'IsAzureMonitorTargetEnabled' como true e 'IsDevopsAuditEnabled' como true

Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'DevOpsOperationsAudit' no banco de dados mestre também devem ser criadas.

Formato de URI de Configurações de Diagnóstico:
PÔR https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Para obter mais informações, consulte API REST de Configurações de Diagnóstico
ou do PowerShell de configurações de diagnóstico de
bool
isManagedIdentityInUse Especifica se a Identidade Gerenciada é usada para acessar o armazenamento de blobs bool
isStorageSecondaryKeyInUse Especifica se o valor storageAccountAccessKey é a chave secundária do armazenamento. bool
predicateExpression Especifica a condição de onde a cláusula ao criar uma auditoria. cadeia
queueDelayMs Especifica a quantidade de tempo em milissegundos que pode decorrer antes que as ações de auditoria sejam forçadas a serem processadas.
O valor mínimo padrão é 1000 (1 segundo). O máximo é 2.147.483.647.
int
retentionDays Especifica o número de dias a serem mantidos nos logs de auditoria na conta de armazenamento. int
estado Especifica o estado da auditoria. Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled serão necessários. 'Disabled'
'Enabled' (obrigatório)
storageAccountAccessKey Especifica a chave do identificador da conta de armazenamento de auditoria.
Se o estado estiver habilitado e o storageEndpoint for especificado, não especificar o storageAccountAccessKey usará a identidade gerenciada atribuída pelo sistema do SQL Server para acessar o armazenamento.
Pré-requisitos para usar a autenticação de identidade gerenciada:
1. Atribuir ao SQL Server uma identidade gerenciada atribuída pelo sistema no AAD (Azure Active Directory).
2. Conceda acesso à identidade do SQL Server à conta de armazenamento adicionando a função RBAC 'Colaborador de Dados de Blob de Armazenamento' à identidade do servidor.
Para obter mais informações, consulte Auditoria no armazenamento usando a autenticação de Identidade Gerenciada
string

Constraints:
Valor confidencial. Passe como um parâmetro seguro.
storageAccountSubscriptionId Especifica a ID da assinatura do armazenamento de blobs. string

Constraints:
Comprimento mínimo = 36
Comprimento máximo = 36
Padrão = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
storageEndpoint Especifica o ponto de extremidade de armazenamento de blobs (por exemplo, https://MyAccount.blob.core.windows.net). Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled será necessário. cadeia

Exemplos de uso

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

O tipo de recurso servers/extendedAuditingSettings 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/extendedAuditingSettings, adicione o Terraform a seguir ao modelo.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/servers/extendedAuditingSettings@2022-02-01-preview"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      auditActionsAndGroups = [
        "string"
      ]
      isAzureMonitorTargetEnabled = bool
      isDevopsAuditEnabled = bool
      isManagedIdentityInUse = bool
      isStorageSecondaryKeyInUse = bool
      predicateExpression = "string"
      queueDelayMs = int
      retentionDays = int
      state = "string"
      storageAccountAccessKey = "string"
      storageAccountSubscriptionId = "string"
      storageEndpoint = "string"
    }
  }
}

Valores da propriedade

Microsoft.Sql/servers/extendedAuditingSettings

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. ExtendedServerBlobAuditingPolicyProperties
tipo O tipo de recurso "Microsoft.Sql/servers/extendedAuditingSettings@2022-02-01-preview"

ExtendedServerBlobAuditingPolicyProperties

Name Description Value
auditActionsAndGroups Especifica o Actions-Groups e as Ações a serem auditádas.

O conjunto recomendado de grupos de ações a ser usado é a seguinte combinação: isso auditará todas as consultas e procedimentos armazenados executados no banco de dados, bem como logons bem-sucedidos e com falha:

BATCH_COMPLETED_GROUP,
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP,
FAILED_DATABASE_AUTHENTICATION_GROUP.

Essa combinação acima também é o conjunto configurado por padrão ao habilitar a auditoria do portal do Azure.

Os grupos de ações com suporte para auditoria são (observação: escolha apenas grupos específicos que abrangem suas necessidades de auditoria. O uso de grupos desnecessários pode levar a grandes quantidades de registros de auditoria):

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP
BACKUP_RESTORE_GROUP
DATABASE_LOGOUT_GROUP
DATABASE_OBJECT_CHANGE_GROUP
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP
DATABASE_OPERATION_GROUP
DATABASE_PERMISSION_CHANGE_GROUP
DATABASE_PRINCIPAL_CHANGE_GROUP
DATABASE_PRINCIPAL_IMPERSONATION_GROUP
DATABASE_ROLE_MEMBER_CHANGE_GROUP
FAILED_DATABASE_AUTHENTICATION_GROUP
SCHEMA_OBJECT_ACCESS_GROUP
SCHEMA_OBJECT_CHANGE_GROUP
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP
USER_CHANGE_PASSWORD_GROUP
BATCH_STARTED_GROUP
BATCH_COMPLETED_GROUP
DBCC_GROUP
DATABASE_OWNERSHIP_CHANGE_GROUP
DATABASE_CHANGE_GROUP
LEDGER_OPERATION_GROUP

Esses são grupos que abrangem todas as instruções sql e procedimentos armazenados executados no banco de dados e não devem ser usados em combinação com outros grupos, pois isso resultará em logs de auditoria duplicados.

Para obter mais informações, consulte Database-Level Grupos de Ações de Auditoria.

Para a política de auditoria de banco de dados, ações específicas também podem ser especificadas (observe que ações não podem ser especificadas para a política de auditoria do servidor). As ações com suporte para auditoria são:
SELECT
UPDATE
INSERT
DELETE
EXECUTE
RECEIVE
REFERENCES

O formulário geral para definir uma ação a ser auditada é:
{ação} ON {objeto} POR {principal}

Observe que <objeto> no formato acima pode se referir a um objeto como uma tabela, exibição ou procedimento armazenado ou um banco de dados ou esquema inteiro. Para os últimos casos, os formulários DATABASE::{db_name} e SCHEMA::{schema_name} são usados, respectivamente.

Por exemplo:
SELECT em dbo.myTable por público
SELECT em DATABASE::myDatabase por público
SELECT em SCHEMA::mySchema por public

Para obter mais informações, consulte Database-Level Ações de Auditoria
string[]
isAzureMonitorTargetEnabled Especifica se os eventos de auditoria são enviados ao Azure Monitor.
Para enviar os eventos para o Azure Monitor, especifique 'State' como 'Enabled' e 'IsAzureMonitorTargetEnabled' como true.

Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'SQLSecurityAuditEvents' no banco de dados também devem ser criadas.
Observe que, para auditoria no nível do servidor, você deve usar o banco de dados 'mestre' como {databaseName}.

Formato de URI de Configurações de Diagnóstico:
PÔR https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Para obter mais informações, consulte API REST de Configurações de Diagnóstico
ou do PowerShell de configurações de diagnóstico de
bool
isDevopsAuditEnabled Especifica o estado da auditoria devops. Se o estado estiver habilitado, os logs devops serão enviados para o Azure Monitor.
Para enviar os eventos para o Azure Monitor, especifique 'State' como 'Enabled', 'IsAzureMonitorTargetEnabled' como true e 'IsDevopsAuditEnabled' como true

Ao usar a API REST para configurar a auditoria, as Configurações de Diagnóstico com a categoria de logs de diagnóstico 'DevOpsOperationsAudit' no banco de dados mestre também devem ser criadas.

Formato de URI de Configurações de Diagnóstico:
PÔR https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Para obter mais informações, consulte API REST de Configurações de Diagnóstico
ou do PowerShell de configurações de diagnóstico de
bool
isManagedIdentityInUse Especifica se a Identidade Gerenciada é usada para acessar o armazenamento de blobs bool
isStorageSecondaryKeyInUse Especifica se o valor storageAccountAccessKey é a chave secundária do armazenamento. bool
predicateExpression Especifica a condição de onde a cláusula ao criar uma auditoria. cadeia
queueDelayMs Especifica a quantidade de tempo em milissegundos que pode decorrer antes que as ações de auditoria sejam forçadas a serem processadas.
O valor mínimo padrão é 1000 (1 segundo). O máximo é 2.147.483.647.
int
retentionDays Especifica o número de dias a serem mantidos nos logs de auditoria na conta de armazenamento. int
estado Especifica o estado da auditoria. Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled serão necessários. 'Disabled'
'Enabled' (obrigatório)
storageAccountAccessKey Especifica a chave do identificador da conta de armazenamento de auditoria.
Se o estado estiver habilitado e o storageEndpoint for especificado, não especificar o storageAccountAccessKey usará a identidade gerenciada atribuída pelo sistema do SQL Server para acessar o armazenamento.
Pré-requisitos para usar a autenticação de identidade gerenciada:
1. Atribuir ao SQL Server uma identidade gerenciada atribuída pelo sistema no AAD (Azure Active Directory).
2. Conceda acesso à identidade do SQL Server à conta de armazenamento adicionando a função RBAC 'Colaborador de Dados de Blob de Armazenamento' à identidade do servidor.
Para obter mais informações, consulte Auditoria no armazenamento usando a autenticação de Identidade Gerenciada
string

Constraints:
Valor confidencial. Passe como um parâmetro seguro.
storageAccountSubscriptionId Especifica a ID da assinatura do armazenamento de blobs. string

Constraints:
Comprimento mínimo = 36
Comprimento máximo = 36
Padrão = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
storageEndpoint Especifica o ponto de extremidade de armazenamento de blobs (por exemplo, https://MyAccount.blob.core.windows.net). Se o estado estiver habilitado, storageEndpoint ou isAzureMonitorTargetEnabled será necessário. cadeia

Exemplos de uso

Exemplos do Terraform

Um exemplo básico de implantação da Política de Auditoria Estendida do 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 = "westus"
}

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}-sqlserver"
  location  = var.location
  body = {
    properties = {
      administratorLogin            = "missadministrator"
      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      = "${replace(var.resource_name, "-", "")}sta"
  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_LRS"
    }
  }
}

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" "extendedAuditingSetting" {
  type      = "Microsoft.Sql/servers/extendedAuditingSettings@2023-08-01-preview"
  parent_id = azapi_resource.server.id
  name      = "default"
  body = {
    properties = {
      isAzureMonitorTargetEnabled = true
      isStorageSecondaryKeyInUse  = false
      retentionDays               = 0
      state                       = "Enabled"
      storageAccountAccessKey     = azapi_resource_action.storageAccountKeys.output.keys[0].value
      storageEndpoint             = azapi_resource.storageAccount.output.properties.primaryEndpoints.blob
    }
  }
}