Introdução à auditoria do Azure SQL Managed Instance

Aplica-se a:Instância Gerenciada SQL do Azure

A auditoria da Instância Gerenciada SQL do Azure rastreia eventos de banco de dados e os grava em um log de auditoria em sua conta de armazenamento do Azure. A auditoria também:

  • Ajuda a manter a conformidade regulatória, a compreender as atividades da base de dados e a obter informações relativas a discrepâncias e anomalias que possam indicar preocupações comerciais ou suspeitas de violações de segurança.
  • Ativa e facilita o cumprimento das normas de conformidade, apesar de não garantir a conformidade. Para obter mais informações, consulte a Central de Confiabilidade do Microsoft Azure, onde você pode encontrar a lista mais atual de certificações de conformidade de Instância Gerenciada SQL.

Importante

A auditoria para o Banco de Dados SQL do Azure, o Azure Synapse e a Instância Gerenciada SQL do Azure é otimizada para disponibilidade e desempenho. Durante uma atividade muito alta ou alta carga de rede, o Banco de Dados SQL do Azure, o Azure Synapse e a Instância Gerenciada SQL do Azure permitem que as operações prossigam e podem não registrar alguns eventos auditados.

Configurar a auditoria do seu servidor para o Armazenamento do Azure

A seção a seguir descreve a configuração da auditoria em sua instância gerenciada.

  1. Aceda ao portal do Azure.

  2. Crie um contêiner de Armazenamento do Azure onde os logs de auditoria são armazenados.

    1. Navegue até a conta de armazenamento do Azure onde você gostaria de armazenar seus logs de auditoria.

      • Use uma conta de armazenamento na mesma região da instância gerenciada para evitar leituras/gravações entre regiões.
      • Se a sua conta de armazenamento estiver protegida por uma Rede Virtual ou uma Firewall, consulte Conceder acesso a partir de uma rede virtual.
      • Se você alterar o período de retenção de 0 (retenção ilimitada) para qualquer outro valor, a retenção só se aplicará aos logs gravados após a alteração do valor de retenção (os logs gravados durante o período em que a retenção foi definida como ilimitada serão preservados, mesmo depois que a retenção estiver habilitada).
    2. Na conta de armazenamento, vá para Visão geral e selecione Blobs.

      Screenshot showing the Azure Blobs widget.

    3. No menu superior, selecione + Contêiner para criar um novo contêiner.

      Screenshot showing the Create blob container icon.

    4. Forneça um Nome do contêiner, defina Nível de acesso público como Privado e selecione OK.

      Screenshot showing the Create blob container configuration.

    Importante

    Os clientes que desejam configurar um armazenamento de log imutável para seus eventos de auditoria no nível de servidor ou banco de dados devem seguir as instruções fornecidas pelo Armazenamento do Azure. (Certifique-se de que selecionou Permita acréscimos adicionais ao configurar o armazenamento de blob imutável.)

  3. Depois de criar o contêiner para os logs de auditoria, há duas maneiras de configurá-lo como o destino para os logs de auditoria: usando T-SQL ou usando a interface do usuário do SQL Server Management Studio (SSMS):

    • Configure o armazenamento de blob para logs de auditoria usando T-SQL:

      1. Na lista de contêineres, selecione o contêiner recém-criado e, em seguida, selecione Propriedades do contêiner.

        Screenshot showing the Blob container properties button.

      2. Copie o URL do contêiner selecionando o ícone de cópia e salve o URL (por exemplo, no Bloco de Notas) para uso futuro. O formato de URL do contêiner deve ser https://<StorageName>.blob.core.windows.net/<ContainerName>

        Screenshot showing the Blob container copy URL.

      3. Gere um token SAS de Armazenamento do Azure para conceder direitos de acesso de auditoria de instância gerenciada à conta de armazenamento:

        • Navegue até a conta de armazenamento do Azure onde você criou o contêiner na etapa anterior.

        • Selecione Assinatura de acesso compartilhado no menu Configurações de armazenamento.

          Shared access signature icon in storage settings menu.

        • Configure o SAS da seguinte maneira:

          • Serviços permitidos: Blob

          • Data de início: para evitar problemas relacionados ao fuso horário, use a data de ontem

          • Data de fim: escolha a data em que este token SAS expira

            Nota

            Renove o token após a expiração para evitar falhas de auditoria.

          • Selecione Gerar SAS.

            Screenshot showing the SAS configuration.

        • O token SAS aparece na parte inferior. Copie o token selecionando no ícone de cópia e salve-o (por exemplo, no Bloco de Notas) para uso futuro.

          Screenshot showing how to copy SAS token.

          Importante

          Remova o caractere de ponto de interrogação (?) do início do token.

      4. Conecte-se à sua instância gerenciada por meio do SQL Server Management Studio ou de qualquer outra ferramenta com suporte.

      5. Execute a seguinte instrução T-SQL para criar uma nova credencial usando a URL do contêiner e o token SAS que você criou nas etapas anteriores:

        CREATE CREDENTIAL [<container_url>]
        WITH IDENTITY='SHARED ACCESS SIGNATURE',
        SECRET = '<SAS KEY>'
        GO
        
      6. Execute a seguinte instrução T-SQL para criar uma nova auditoria de servidor (escolha seu próprio nome de auditoria e use a URL do contêiner que você criou nas etapas anteriores). Se não for especificado, o RETENTION_DAYS padrão é 0 (retenção ilimitada):

        CREATE SERVER AUDIT [<your_audit_name>]
        TO URL (PATH ='<container_url>', RETENTION_DAYS = <integer>);
        GO
        
      7. Continue criando uma especificação de auditoria de servidor ou de banco de dados.

    • Configure o armazenamento de blob para logs de auditoria, usando o SQL Server Management Studio 18 e versões posteriores:

      1. Conecte-se à instância gerenciada usando a interface do usuário do SQL Server Management Studio.

      2. Expanda a nota raiz do Pesquisador de Objetos.

      3. Expanda o nó Segurança, clique com o botão direito do mouse no nó Auditorias e selecione Nova auditoria:

        Screenshot showing how to Expand security and audit node.

      4. Verifique se a URL está selecionada em Destino da auditoria e selecione Procurar:

        Screenshot showing how to Browse Azure Storage.

      5. (Opcional) Entre na sua conta do Azure:

        Screenshot showing how to Sign in to Azure.

      6. Selecione uma assinatura, uma conta de armazenamento e um contêiner de blob nos menus suspensos ou crie seu próprio contêiner selecionando Criar. Quando terminar, selecione OK:

        Select Azure subscription, storage account, and blob container.

      7. Selecione OK na caixa de diálogo Criar auditoria .

        Nota

        Ao usar a interface do usuário do SQL Server Management Studio para criar auditoria, uma credencial para o contêiner com chave SAS será criada automaticamente.

      8. Depois de configurar o contêiner de blob como destino para os logs de auditoria, crie e habilite uma especificação de auditoria de servidor ou de banco de dados como faria para o SQL Server:

    • Criar especificação de auditoria de servidor Guia T-SQL

    • Criar especificação de auditoria de banco de dados Guia T-SQL

  4. Habilite a auditoria do servidor que você criou na etapa 3:

    ALTER SERVER AUDIT [<your_audit_name>]
    WITH (STATE = ON);
    GO
    

Para obter informações adicionais:

Auditoria das operações de Suporte da Microsoft

A auditoria das operações de Suporte da Microsoft para Instância Gerenciada SQL permite que você audite as operações dos engenheiros de suporte da Microsoft quando eles precisarem acessar seu servidor durante uma solicitação de suporte. A utilização desta capacidade, juntamente com a sua auditoria, possibilita uma maior transparência na sua força de trabalho e permite a deteção de anomalias, a visualização de tendências e a prevenção de perda de dados.

Para habilitar a auditoria de operações de Suporte da Microsoft, navegue até Criar Auditoria em Auditoria de>Segurança em sua Instância de Gerenciamento SQL e selecione Operações de suporte da Microsoft.

Screenshot showing the Create audit icon.

Nota

Você deve criar uma auditoria de servidor separada para auditar operações da Microsoft. Se você habilitar essa caixa de seleção para uma auditoria existente, ela substituirá a auditoria e registrará somente as operações de suporte.

Configurar a auditoria do seu servidor para Hubs de Eventos ou logs do Azure Monitor

Os logs de auditoria de uma instância gerenciada podem ser enviados para os Hubs de Eventos do Azure ou logs do Azure Monitor. Esta seção descreve como configurar isso:

  1. Navegue no portal do Azure até a instância gerenciada.

  2. Selecione Configurações de diagnóstico.

  3. Selecione Ativar diagnóstico. Se o diagnóstico já estiver habilitado, +Adicionar configuração de diagnóstico será exibida.

  4. Selecione SQLSecurityAuditEvents na lista de logs.

  5. Se você estiver configurando operações de suporte da Microsoft, selecione Logs de auditoria de operações de DevOps na lista de logs.

  6. Selecione um destino para os eventos de auditoria: Hubs de Eventos, logs do Azure Monitor ou ambos. Configure para cada destino os parâmetros necessários (por exemplo, espaço de trabalho do Log Analytics).

  7. Selecione Guardar.

    Screenshot showing how to configure diagnostic settings.

  8. Conecte-se à instância gerenciada usando o SQL Server Management Studio (SSMS) ou qualquer outro cliente com suporte.

  9. Execute a seguinte instrução T-SQL para criar uma auditoria de servidor:

    CREATE SERVER AUDIT [<your_audit_name>] TO EXTERNAL_MONITOR;
    GO
    
  10. Crie e habilite uma especificação de auditoria de servidor ou de banco de dados como faria para o SQL Server:

  11. Habilite a auditoria do servidor criada na etapa 8:

    ALTER SERVER AUDIT [<your_audit_name>]
    WITH (STATE = ON);
    GO
    

Configurar auditoria usando T-SQL

-- Create audit without OPERATOR_AUDIT - Will audit standard SQL Audit events
USE [master];
GO

CREATE SERVER AUDIT testingauditnodevops TO EXTERNAL_MONITOR;
GO

CREATE SERVER AUDIT SPECIFICATION testingaudit_Specification_nodevops
FOR SERVER AUDIT testingauditnodevops ADD (SUCCESSFUL_LOGIN_GROUP),
    ADD (BATCH_COMPLETED_GROUP),
    ADD (FAILED_LOGIN_GROUP)
WITH (STATE = ON);
GO

ALTER SERVER AUDIT testingauditnodevops
    WITH (STATE = ON);
GO

-- Create separate audit without OPERATOR_AUDIT ON - Will audit Microsoft Support Operations
USE [master]

CREATE SERVER AUDIT testingauditdevops TO EXTERNAL_MONITOR
    WITH (OPERATOR_AUDIT = ON);
GO

CREATE SERVER AUDIT SPECIFICATION testingaudit_Specification_devops
FOR SERVER AUDIT testingauditdevops ADD (SUCCESSFUL_LOGIN_GROUP),
    ADD (BATCH_COMPLETED_GROUP),
    ADD (FAILED_LOGIN_GROUP)
WITH (STATE = ON);
GO

ALTER SERVER AUDIT testingauditdevops
    WITH (STATE = ON);
GO

Consumir registos de auditoria

Consumir logs armazenados no Armazenamento do Azure

Há vários métodos que você pode usar para exibir logs de auditoria de blob.

  • Use a função sys.fn_get_audit_file do sistema (T-SQL) para retornar os dados do log de auditoria em formato tabular. Para obter mais informações sobre como usar essa função, consulte a documentação do sys.fn_get_audit_file.

  • Você pode explorar os logs de auditoria usando uma ferramenta como o Gerenciador de Armazenamento do Azure. No Armazenamento do Azure, os logs de auditoria são salvos como uma coleção de arquivos de blob dentro de um contêiner que foi definido para armazenar os logs de auditoria. Para obter mais informações sobre a hierarquia da pasta de armazenamento, convenções de nomenclatura e formato de log, consulte a Referência de formato de log de auditoria de Blob.

  • Para obter uma lista completa dos métodos de consumo do log de auditoria, consulte Introdução à auditoria do Banco de Dados SQL do Azure.

Consumir logs armazenados em Hubs de Eventos

Para consumir dados de logs de auditoria de Hubs de Eventos, você precisará configurar um fluxo para consumir eventos e gravá-los em um destino. Para obter mais informações, consulte a documentação dos Hubs de Eventos do Azure.

Consumir e analisar logs armazenados nos logs do Azure Monitor

Se os logs de auditoria forem gravados nos logs do Azure Monitor, eles estarão disponíveis no espaço de trabalho do Log Analytics, onde você poderá executar pesquisas avançadas nos dados de auditoria. Como ponto de partida, navegue até o espaço de trabalho do Log Analytics. Na seção Geral, selecione Logs e insira uma consulta básica, como: search "SQLSecurityAuditEvents" para exibir os logs de auditoria.

Os logs do Azure Monitor fornecem informações operacionais em tempo real usando pesquisa integrada e painéis personalizados para analisar prontamente milhões de registros em todas as suas cargas de trabalho e servidores. Para obter mais informações sobre o idioma e os comandos de pesquisa de logs do Azure Monitor, consulte Referência de pesquisa de logs do Azure Monitor.

Nota

Este artigo foi atualizado recentemente para usar o termo logs do Azure Monitor em vez de Log Analytics. Os dados de log ainda são armazenados em um espaço de trabalho do Log Analytics e ainda são coletados e analisados pelo mesmo serviço do Log Analytics. Estamos atualizando a terminologia para refletir melhor a função dos logs no Azure Monitor. Consulte Alterações de terminologia do Azure Monitor para obter detalhes.

Diferenças de auditoria entre bancos de dados na Instância Gerenciada SQL do Azure e bancos de dados no SQL Server

As principais diferenças entre a auditoria em bancos de dados na Instância Gerenciada SQL do Azure e bancos de dados no SQL Server são:

  • Com a Instância Gerenciada SQL do Azure, a auditoria funciona no nível do servidor e armazena .xel arquivos de log no armazenamento de Blob do Azure.
  • No SQL Server, a auditoria funciona no nível do servidor, mas armazena eventos no sistema de arquivos e nos logs de eventos do Windows.

A auditoria XEvent em instâncias gerenciadas dá suporte a destinos de armazenamento de Blob do Azure. Não há suporte para logs de arquivos e do Windows.

As principais diferenças na sintaxe para CREATE AUDIT auditoria ao armazenamento de Blob do Azure são:

  • Uma nova sintaxe TO URL é fornecida e permite especificar a URL do contêiner de armazenamento de Blob do Azure onde os .xel arquivos são colocados.
  • Uma nova sintaxe TO EXTERNAL MONITOR é fornecida para habilitar Hubs de Eventos e destinos de log do Azure Monitor.
  • A sintaxe TO FILE não é suportada porque a Instância Gerenciada SQL do Azure não pode acessar compartilhamentos de arquivos do Windows.
  • A opção de desligamento não é suportada.
  • queue_delay de 0 não é suportado.

Próximos passos

  • Para obter uma lista completa dos métodos de consumo do log de auditoria, consulte Introdução à auditoria do Banco de Dados SQL do Azure.
  • Para obter mais informações sobre os programas do Azure que oferecem suporte à conformidade com padrões, consulte a Central de Confiabilidade do Azure, onde você pode encontrar a lista mais atual de certificações de conformidade.