Bien démarrer avec l’audit Azure SQL Managed Instance

S’applique à :Azure SQL Managed Instance

L’audit Azure SQL Managed Instance suit les événements de base de données et les écrit dans un journal d’audit dans votre compte Stockage Azure. Par ailleurs, l’audit :

  • peut vous aider à respecter une conformité réglementaire, à comprendre l’activité de la base de données ainsi qu’à découvrir des discordances et anomalies susceptibles d’indiquer des problèmes pour l’entreprise ou des violations de la sécurité ;
  • permet et facilite le respect de normes de conformité, même s’il ne garantit pas cette conformité. Pour plus d’informations, consultez le Centre de confidentialité Microsoft Azure, qui inclut la liste la plus à jour des certifications de conformité de SQL Managed Instance.

Important

L’audit pour Azure SQL Database, Azure Synapse et Azure SQL Managed Instance est optimisé pour la disponibilité et les performances. En cas de très forte activité ou de charge réseau élevée, Azure SQL Database, Azure Synapse et Azure SQL Managed Instance permettent aux opérations de se poursuivre et peuvent ne pas enregistrer certains événements audités.

Configurer l’audit de votre serveur sur Stockage Azure

La section suivante décrit la configuration de l’audit à l’aide de votre instance Managed Instance.

  1. Accédez au portail Azure.

  2. Créez un conteneur Stockage Azure où sont stockés les journaux d’audit.

    1. Accédez au compte Stockage Azure où vous souhaitez stocker vos journaux d’audit.

      • Utilisez un compte de stockage dans la même région que l’instance gérée afin d’éviter des lectures/écritures entre régions.
      • Si votre compte de stockage se trouve derrière un réseau virtuel ou un pare-feu, consultez Octroi de l’accès à partir d’un réseau virtuel.
      • Si vous remplacez la valeur 0 de la période de rétention (rétention illimitée) par une autre valeur, la rétention s’applique uniquement aux journaux écrits après la modification de cette valeur (les journaux écrits au cours de la période pendant laquelle la rétention était définie sur illimité sont conservés, même après activation de la rétention).
    2. Dans le compte de stockage, accédez à Vue d'ensemble, puis sélectionnez Objets blob.

      Screenshot showing the Azure Blobs widget.

    3. Dans le menu supérieur, sélectionnez + Conteneur pour créer un conteneur.

      Screenshot showing the Create blob container icon.

    4. Donnez un Nom au conteneur, définissez le Niveau d’accès public sur Privé, puis sélectionnez OK.

      Screenshot showing the Create blob container configuration.

    Important

    Les clients souhaitant configurer un magasin de journaux immuable pour leurs événements d’audit au niveau du serveur ou de la base de données doivent suivre les instructions fournies par Stockage Azure. (Vérifiez que vous avez sélectionné Autoriser les ajouts supplémentaires quand vous configurez le stockage d’objets blob immuables.)

  3. Après avoir créé le conteneur pour les journaux d’audit, vous pouvez le configurer comme cible pour les journaux d’activité de deux façons : à l’aide de T-SQL ou à l’aide de l’interface utilisateur de SSMS (SQL Server Management Studio) :

    • Configurer le stockage Blob pour les journaux d’audit à l’aide de T-SQL :

      1. Dans la liste des conteneurs, sélectionnez le conteneur que vous venez de créer, puis Propriétés du conteneur.

        Screenshot showing the Blob container properties button.

      2. Copiez l’URL du conteneur en sélectionnant l’icône Copier, puis enregistrez-la (par exemple dans le Bloc-notes) pour plus tard. L'URL du conteneur doit être au format https://<StorageName>.blob.core.windows.net/<ContainerName>

        Screenshot showing the Blob container copy URL.

      3. Générez un jeton SAS Stockage Azure pour accorder au compte de stockage des droits d’accès à l’audit d’instance managée :

        • Accédez au compte Stockage Azure dans lequel vous avez créé le conteneur à l’étape précédente.

        • Sélectionnez Signature d'accès partagé dans le menu Paramètres de stockage.

          Shared access signature icon in storage settings menu.

        • Configurez la signature d'accès partagé comme suit :

          • Services autorisés : Objet blob

          • Date de début : pour éviter tout problème lié aux fuseaux horaires, utilisez la date de la veille

          • Date de fin : choisissez la date à laquelle ce jeton SAS arrive à expiration.

            Notes

            À l’expiration, renouvelez le jeton afin d’éviter les échecs d’audit.

          • Sélectionnez Générer la SAP.

            Screenshot showing the SAS configuration.

        • Le jeton SAS apparaît en bas. Copiez le jeton en sélectionnant l’icône Copier, puis enregistrez-le (par exemple dans le Bloc-notes) pour plus tard.

          Screenshot showing how to copy SAS token.

          Important

          Supprimez le point d’interrogation (?) au début du jeton.

      4. Connectez-vous à votre instance managée à l’aide de SQL Server Management Studio ou de tout autre outil pris en charge.

      5. Exécutez l’instruction T-SQL suivante pour créer des informations d’identification à l’aide de l’URL du conteneur et du jeton SAS créés lors des étapes précédentes :

        CREATE CREDENTIAL [<container_url>]
        WITH IDENTITY='SHARED ACCESS SIGNATURE',
        SECRET = '<SAS KEY>'
        GO
        
      6. Exécutez l’instruction T-SQL suivante pour créer un audit de serveur (choisissez votre propre nom d’audit et utilisez l’URL du conteneur que vous avez créée lors des étapes précédentes). Si aucune valeur n’est spécifiée, la valeur par défaut de RETENTION_DAYS est 0 (conservation illimitée) :

        CREATE SERVER AUDIT [<your_audit_name>]
        TO URL (PATH ='<container_url>', RETENTION_DAYS = <integer>);
        GO
        
      7. Continuez en créant une spécification d’audit du serveur ou une spécification d’audit de la base de données.

    • Configurez le stockage d’objets blob pour les journaux d’audit à l’aide de SQL Server Management Studio 18 (ou version ultérieure) :

      1. Connectez-vous à l’instance managée à l’aide de l’interface utilisateur de SQL Server Management Studio.

      2. Développez le nœud racine de l’Explorateur d’objets.

      3. Développez le nœud Sécurité, cliquez avec le bouton droit sur le nœud Audits, puis sélectionnez Nouvel audit :

        Screenshot showing how to Expand security and audit node.

      4. Vérifiez que URL est sélectionné dans Destination de l’audit, puis sélectionnez Parcourir :

        Screenshot showing how to Browse Azure Storage.

      5. (Facultatif) Connectez-vous à votre compte Azure :

        Screenshot showing how to Sign in to Azure.

      6. Sélectionnez un abonnement, un compte de stockage et un conteneur d’objets blob dans les menus déroulants, ou sélectionnez Créer pour créer votre propre conteneur. Ensuite, sélectionnez OK :

        Select Azure subscription, storage account, and blob container.

      7. Sélectionnez OK dans la boîte de dialogue Créer un audit.

        Notes

        Lorsque vous utilisez l’interface utilisateur SQL Server Management Studio pour créer un audit, les informations d’identification du conteneur avec la clé SAS sont automatiquement créées.

      8. Après avoir configuré le conteneur d’objets blob comme cible pour les journaux d’audit, créez et activez une spécification d’audit du serveur ou une spécification d’audit de la base de données comme vous le feriez pour SQL Server :

    • CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)

    • CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

  4. Activez l’audit du serveur que vous avez créé à l’étape 3 :

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

Pour toute information supplémentaire :

Audit des opérations de Support Microsoft

L’audit des opérations de Support Microsoft pour SQL Managed Instance vous permet d’auditer les opérations des ingénieurs du Support Microsoft quand ils ont besoin d’accéder à votre serveur au cours d’une demande de support. L’utilisation de cette fonctionnalité, ainsi que votre audit, permet une plus grande transparence pour votre personnel, ainsi que la détection des anomalies, la visualisation des tendances et la protection contre la perte de données.

Pour activer l’audit des opérations de Support Microsoft, accédez à Créer un audit sousAudit de >sécurité dans votre SQL Managed Instance, puis sélectionnez Opérations du Support Microsoft.

Screenshot showing the Create audit icon.

Remarque

Vous devez créer un audit de serveur distinct pour l’audit des opérations Microsoft. Si vous cochez cette case pour un audit existant, l’audit s’en trouve remplacé. Seules les opérations de support sont alors journalisées.

Configurer l’audit de votre serveur sur Event Hubs ou des journaux Azure Monitor

Les journaux d’audit d’une instance gérée peuvent être envoyés à Azure Event Hubs ou aux journaux d’activité Azure Monitor. Cette section décrit comment configurer cela :

  1. Accédez dans le portail Azure à l’instance managée.

  2. Sélectionnez Paramètres de diagnostic.

  3. Sélectionnez Activer les diagnostics. Si les diagnostics sont déjà activés, +Ajouter un paramètre de diagnostic s’affiche à la place.

  4. Sélectionnez SQLSecurityAuditEvents dans la liste des journaux d’activité.

  5. Si vous configurez les opérations de support Microsoft, sélectionnez Journaux d’audit des opérations DevOps dans la liste des journaux.

  6. Sélectionnez une destination pour les événements d’audit : Event Hubs, journaux d’activité Azure Monitor ou les deux. Configurez pour chaque cible les paramètres requis (par exemple l’espace de travail Log Analytics).

  7. Cliquez sur Enregistrer.

    Screenshot showing how to configure diagnostic settings.

  8. Connectez-vous à l’instance gérée à l’aide de SQL Server Management Studio (SSMS) ou de tout autre client pris en charge.

  9. Exécutez l’instruction T-SQL suivante pour créer un audit du serveur :

    CREATE SERVER AUDIT [<your_audit_name>] TO EXTERNAL_MONITOR;
    GO
    
  10. Créez et activez une spécification d’audit du serveur ou une spécification d’audit de la base de données comme vous le feriez pour SQL Server :

  11. Activez l’audit du serveur créé à l’étape 8 :

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

Configuration de l’audit à l’aide de 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

Utiliser les journaux d’audit

Utiliser les journaux d’activité stockés dans Stockage Azure

Plusieurs méthodes vous permettent d’afficher des journaux d’activité d’audit d’objets blob.

Consommer les journaux stockés dans Event Hubs

Pour consommer les données des journaux d’audit à partir d’Event Hubs, vous devez configurer un flux de données destiné à consommer les événements et à les écrire dans une cible. Pour plus d’informations, consultez la documentation d’Azure Event Hubs.

Consommer et analyser les journaux stockés dans les journaux Azure Monitor

Si les journaux d’audit sont écrits dans des journaux Azure Monitor, ils sont disponibles dans l’espace de travail Log Analytics où vous pouvez exécuter des recherches avancées sur les données d’audit. Comme point de départ, accédez à l’espace de travail Log Analytics. Dans la section Général, sélectionnez Journaux et entrez une requête simple, par exemple search "SQLSecurityAuditEvents" pour afficher les journaux d’audit.

Les journaux Azure Monitor vous donnent des insights opérationnels en temps réel à l’aide d’une recherche intégrée et de tableaux de bord personnalisés permettant d’analyser facilement des millions d’enregistrements dans l’ensemble de vos charges de travail et serveurs. Pour plus d’informations sur le langage et les commandes de recherche dans les journaux Azure Monitor, consultez Informations de référence sur la recherche dans les journaux Azure Monitor.

Notes

Cet article a récemment été mis à jour pour utiliser le terme journaux d’activité Azure Monitor au lieu de Log Analytics. Les données de journal sont toujours stockées dans un espace de travail Log Analytics, et elles sont toujours collectées et analysées par le même service Log Analytics. Nous mettons la terminologie à jour pour mieux refléter le rôle des journaux d’activité dans Azure Monitor. Pour plus d'informations, consultez Modifications de la terminologie d'Azure Monitor.

Différences d’audit entre les bases de données d’Azure SQL Managed Instance et celles de SQL Server

Les principales différences entre l’audit des bases de données dans Azure SQL Managed Instance et des bases de données dans SQL Server sont les suivantes :

  • Avec Azure SQL Managed Instance, l’audit fonctionne au niveau du serveur et stocke les fichiers journaux .xel dans le compte Stockage Blob Azure.
  • Dans SQL Server, l’audit fonctionne au niveau du serveur, mais stocke les événements dans les journaux des événements de Windows et du système de fichiers.

L’audit XEvent dans les instances managées prend en charge les cibles Stockage Blob Azure. Les journaux du système de fichiers et de Windows ne sont pas pris en charge.

Les principales différences de syntaxe CREATE AUDIT pour l’audit du Stockage Blob Azure sont :

  • Une nouvelle syntaxe TO URL est fournie et vous permet de spécifier l’URL du conteneur Stockage Blob Azure où les fichiers .xel sont placés.
  • Une nouvelle syntaxe TO EXTERNAL MONITOR est fournie pour activer les cibles de journaux Azure Monitor et Event Hub.
  • La syntaxe TO FILEn’est pas prise en charge, car Azure SQL Managed Instance n’a pas accès aux partages de fichiers Windows.
  • L’option d’arrêt n’est pas prise en charge.
  • La valeur 0 du paramètre queue_delay n’est pas prise en charge.

Étapes suivantes