Partilhar via


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

Aplica-se a:Azure SQL Managed Instance

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.

Auditoria também:

  • Ajuda a manter a conformidade regulamentar, entender a atividade do banco de dados e obter informações sobre discrepâncias e anomalias que podem indicar preocupações comerciais ou suspeitas de violações de segurança.
  • Permite e facilita a adesão aos padrões de conformidade, embora não garanta 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 da Instância Gerenciada SQL do Azure é otimizada para disponibilidade e desempenho. Durante alta atividade ou alta carga de rede, a Instância Gerenciada SQL do Azure permite que as operações prossigam e pode não registrar alguns eventos auditados.

Configurar a auditoria da sua instância para o Armazenamento do Azure

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

  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 pelo SQL 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ó será aplicada aos logs gravados depois que o valor de retenção for alterado. Os logs gravados durante o período em que a retenção foi definida como ilimitada são preservados, mesmo depois que a retenção é habilitada.
    2. Na conta de armazenamento, vá para Visão geral e selecione Blobs.

      Captura de ecrã a mostrar o widget Blobs do Azure.

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

      Captura de tela mostrando o ícone Criar contêiner de blob.

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

      Captura de tela mostrando a configuração Criar contêiner de blob.

    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 selecionar 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 para os logs de auditoria: usando o 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.

      Captura de tela mostrando o botão de propriedades do contêiner Blob.

    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>

      Captura de tela mostrando a URL de cópia do contêiner Blob.

    3. Gere um token SAS de Armazenamento do Azure para conceder direitos de acesso de auditoria de instância gerenciada SQL à 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 .

        Ícone de assinatura de acesso compartilhado no menu de configurações de armazenamento.

      • 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

          Observação

          Para evitar falhas de auditoria, renove o token após o vencimento.

        • Selecione Gerar SAS.

          Captura de tela mostrando a configuração do SAS.

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

        Captura de tela mostrando como copiar o token SAS.

        Importante

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

    4. Conecte-se à sua instância gerenciada SQL 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 uma especificação de auditoria 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 do SQL 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:

      Captura de tela mostrando como Expandir o nó de segurança e auditoria.

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

      Captura de ecrã a mostrar como Procurar no Armazenamento do Azure.

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

      Captura de ecrã a mostrar como iniciar sessão no 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:

      Selecione Assinatura do Azure, conta de armazenamento e contêiner de blob.

    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 uma chave SAS é criada automaticamente.

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:

Use a seguinte instrução T-SQL para habilitar a auditoria do servidor:

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

Para mais informações:

Auditoria das operações de Suporte da Microsoft

A auditoria das operações de Suporte da Microsoft para Instância Gerenciada SQL permite auditar as operações dos engenheiros de suporte da Microsoft quando eles precisam acessar seu servidor durante uma solicitação de suporte. O uso desse recurso, juntamente com sua auditoria, permite mais transparência em sua força de trabalho e permite a deteção de anomalias, visualização de tendências e 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.

Captura de ecrã a mostrar o ícone Criar auditoria.

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 registrará apenas 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 do SQL podem ser enviados para os Hubs de Eventos do Azure ou logs do Azure Monitor. Esta seção descreve como fazer essa configuração:

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

  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 estará disponível.

  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.

    Captura de ecrã a mostrar como definir definições de diagnóstico.

  8. Conecte-se à instância gerenciada do SQL 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 logs 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.

Consumir logs armazenados em Hubs de Eventos

Para consumir dados de logs de auditoria de Hubs de Eventos, você precisa 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.

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 Gerida SQL do Azure não consegue aceder a partilhas de ficheiros do Windows.
  • A opção de desligamento não é suportada.
  • queue_delay de 0 não é suportado.

Próximo passo