Introdução à auditoria da Instância Gerenciada de SQL do Azure

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

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

  • Ajuda a manter conformidade com as normas, entender a atividade do banco de dados e aprofundar-se sobre discrepâncias e anomalias que podem indicar preocupações comerciais ou violações suspeitas de segurança.
  • Permite e facilita a adesão aos padrões de conformidade, embora não garanta a conformidade. Para saber mais, confira a Central de Confiabilidade do Microsoft Azure, em que você poderá encontrar a lista mais atual das certificações de conformidade da Instância Gerenciada de SQL.

Importante

A auditoria do Banco de Dados SQL do Azure, do Azure Synapse e da Instância Gerenciada de 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 de SQL do Azure permitem que as operações continuem e podem não registrar alguns eventos auditados.

Configurar a auditoria para o servidor no Armazenamento do Microsoft Azure

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

  1. Vá para o Portal do Azure.

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

    1. Navegue até a conta de armazenamento do Azure onde você deseja armazenar os 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 sua conta de armazenamento estiver atrás de uma Rede Virtual ou um firewall, confira Conceder acesso de uma rede virtual.
      • Se você alterar o período de retenção de 0 (retenção ilimitada) para qualquer outro valor, observe que a retenção será aplicada somente 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 era definida como ilimitada serão preservados, mesmo após a retenção ser habilitada).
    2. Na página da conta de armazenamento, vá até Visão geral e selecione Blobs.

      Screenshot showing the Azure Blobs widget.

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

      Screenshot showing the Create blob container icon.

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

      Screenshot showing the Create blob container configuration.

    Importante

    Os clientes querem configurar um repositório de logs imutável ou eventos de auditoria no nível do banco de dados, siga as instruções fornecidas pelo Armazenamento do Microsoft Azure. (Verifique se você selecionou Permitir 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 dos logs de auditoria: usando o T-SQL ou usando a interface do usuário do SSMS (SQL Server Management Studio):

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

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

        Screenshot showing the Blob container properties button.

      2. Copie a URL do contêiner, clicando no ícone de cópia e salve-a (por exemplo, no bloco de notas) para uso futuro. O formato da 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 do Armazenamento do Microsoft Azure para conceder direitos de acesso de auditoria da instância gerenciada à conta de armazenamento:

        • Navegue até a conta de armazenamento do Azure em que 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 a SAS da seguinte forma:

          • Serviços permitidos: Blob

          • Data de início: para evitar problemas relacionados a fuso horário, é recomendável usar a data de ontem

          • Data de término: escolha a data de expiração desse Token SAS

            Observação

            Renove o token após o vencimento para evitar falhas de auditoria.

          • Selecione Gerar SAS.

            Screenshot showing the SAS configuration.

        • O token SAS é exibido na parte inferior. Copie o token selecionando o í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 à instância gerenciada por meio do SSMS (SQL Server Management Studio) ou de 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 criado nas etapas anteriores:

        CREATE CREDENTIAL [<container_url>]
        WITH IDENTITY='SHARED ACCESS SIGNATURE',
        SECRET = '<SAS KEY>'
        GO
        
      6. Execute a instrução T-SQL a seguir para criar uma nova auditoria de servidor (escolha seu próprio nome de auditoria e use a URL do contêiner criada nas etapas anteriores). Se não for especificado, o padrão de RETENTION_DAYS será 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 uma especificação de auditoria de banco de dados.

    • Configure o armazenamento de blobs para os 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 o nó 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 no Destino de auditoria e selecione Procurar:

        Screenshot showing how to Browse Azure Storage.

      5. (Opcional) Entre em 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 blobs 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.

        Observação

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

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

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

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

  4. Habilite a auditoria de servidor criada na etapa 3:

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

Para informações adicionais:

Auditoria das operações de Suporte da Microsoft

A auditoria de operações de Suporte da Microsoft para a Instância Gerenciada de SQL permite a auditoria de operações de engenheiros de suporte da Microsoft quando eles precisarem acessar o servidor durante uma solicitação de suporte. O uso desse recurso, juntamente com a auditoria, garante mais transparência a sua equipe e permite a detecção de anomalias, a visualização de tendências e a prevenção de perda de dados.

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

Screenshot showing the Create audit icon.

Observação

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 apenas as operações de suporte de log.

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

Os logs de auditoria de uma instância gerenciada podem ser enviados aos Hubs de Eventos ou aos logs do Azure Monitor. Esta seção descreve como fazer essa configuração:

  1. No portal do Azure, navegue até a instância gerenciada.

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

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

  4. Selecione SQLSecurityAuditEvents na lista de logs.

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

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

  7. Selecione Salvar.

    Screenshot showing how to configure diagnostic settings.

  8. Conecte-se à instância gerenciada usando o SSMS (SQL Server Management Studio) 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 especificação de auditoria de banco de dados como faria para o SQL Server:

  11. Habilite a auditoria de 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 logs de auditoria

Consumir logs armazenados no Armazenamento do Azure

Há vários métodos que podem ser usados para exibir os logs de auditoria de blob.

Consumir logs armazenados em Hubs de Eventos

Para consumir dados de logs de auditoria dos Hubs de Eventos, você precisará configurar um fluxo para consumir eventos e gravá-las em um destino. Para obter mais informações, consulte a documentação dos Hubs de Evento 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 workspace 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 insights 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 ver informações adicionais sobre o idioma e os comandos da pesquisa de logs do Azure Monitor, consulte Referência de pesquisa dos logs do Azure Monitor.

Observação

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. Confira as alterações de terminologia do Azure Monitor para obter detalhes.

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

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

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

A auditoria XEvent nas instâncias gerenciadas oferece suporte a destinos de armazenamento de blobs do Azure. Não há suporte para logs de arquivo e do Windows.

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

  • Uma nova sintaxe TO URL é fornecida e permite que você especifique a URL do contêiner de Armazenamento de blobs do Azure onde os arquivos .xel são colocados.
  • Uma nova sintaxe TO EXTERNAL MONITOR é fornecida para habilitar destinos de log para Hubs de Eventos e do Azure Monitor.
  • A sintaxe TO FILEnão tem suporte porque uma Instância Gerenciada de SQL do Azure não pode acessar compartilhamentos de arquivo do Windows.
  • A opção de desligamento não é compatível.
  • Não há suporte para queue_delay de 0.

Próximas etapas