Configurer l’audit pour SQL Managed Instance

Effectué

SQL Managed Instance utilise un modèle d’audit différent de Azure SQL Database, qui reflète l’architecture d’audit SQL Server traditionnelle. Le système d'évaluation des risques de crédit de Contoso s'exécute sur SQL Managed Instance. L’équipe de sécurité doit configurer l’audit au niveau du serveur en utilisant les commandes T-SQL et les paramètres de diagnostic pour acheminer les journaux vers le stockage blob et Azure Monitor.

Aspect Azure SQL Database Instance managée SQL
Modèle d’audit Spécifications au niveau du serveur + spécifications au niveau de la base de données spécification d’audit de serveur de style SQL Server
Destinations de non-stockage Configuré dans l’écran d’audit du portail Configuré via T-SQL (TO EXTERNAL_MONITOR) ou les paramètres de diagnostic
Expérience du portail Écran d’audit complet avec les trois destinations Le portail couvre principalement la destination du stockage ; T-SQL requis pour d’autres utilisateurs
Audit des opérations de support Non disponible Audit de serveur séparé pour l'accès d'un ingénieur support technique de Microsoft

Diagram montrant les deux chemins d’audit SQL Managed Instance : VERS URL écrit dans Stockage Blob, et VERS EXTERNAL_MONITOR redirige vers Log Analytics ou Event Hubs.

Configurer l’audit pour Stockage Blob Azure

SQL Managed Instance nécessite un audit de serveur et une spécification d’audit de serveur pour envoyer des journaux au stockage d’objets blob. Contrairement à Azure SQL Database, qui utilise des bascules de portail pour toutes les destinations d’audit, SQL MI s’appuie sur des commandes T-SQL pour créer et configurer des audits.

Pour router les journaux d’audit vers le stockage d’objets blob, vous créez un audit de serveur avec l'instruction TO URL qui pointe vers un conteneur de stockage. Cette approche reflète la façon dont les audits SQL Server fonctionnent localement, ce qui permet aux administrateurs de base de données de migrer des charges de travail vers Azure.

-- Create a server audit to Azure Blob Storage
CREATE SERVER AUDIT [ContosoMIAudit]
TO URL (PATH = 'https://contosostorage.blob.core.windows.net/sqlmi-audit/')
WITH (RETENTION_DAYS = 90);

-- Enable the audit
ALTER SERVER AUDIT [ContosoMIAudit] WITH (STATE = ON);

-- Create server audit specification
CREATE SERVER AUDIT SPECIFICATION [ContosoMIAuditSpec]
FOR SERVER AUDIT [ContosoMIAudit]
ADD (BATCH_COMPLETED_GROUP),
ADD (FAILED_DATABASE_AUTHENTICATION_GROUP),
ADD (SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP)
WITH (STATE = ON);

La spécification d’audit détermine les événements capturés. Dans cet exemple, Contoso effectue le suivi de tous les lots et tentatives d’authentification terminés, réussis et échoués. Le suivi fournit une visibilité sur les personnes qui accèdent au système de risque de crédit et aux requêtes qu’ils exécutent.

SQL Managed Instance s’authentifie auprès du compte de stockage à l’aide d’un jeton SAP (Shared Access Signature), et non d’une identité managée. Vous devez créer des informations d’identification SQL qui stockent le jeton SAP, avec le nom des informations d’identification correspondant à l’URL de stockage :

CREATE CREDENTIAL [https://contosostorage.blob.core.windows.net/sqlmi-audit]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<SAS-token-value-without-?>';

Le jeton SAP nécessite au minimum des autorisations d’écriture et de liste sur le conteneur. Le jeu d’autorisations exact est configuré lorsque vous générez le jeton SAP dans le portail Azure. [RÉVISION : Microsoft documentation montre les autorisations SAP requises via la capture d’écran du portail uniquement ; vérifiez les autorisations minimales requises lors de la génération du jeton SAP pour votre compte de stockage.] Le jeton doit omettre le caractère ? de début généré par Azure.

Acheminer les journaux d’audit vers Azure Monitor ou Event Hubs

Les destinations nonstorage telles que Log Analytics espaces de travail et Event Hubs utilisent un modèle de configuration différent. Vous créez un audit de serveur avec la clause TO EXTERNAL_MONITOR, puis configurez la destination réelle via les paramètres de diagnostic dans le portail Azure.

-- Create a server audit to Azure Monitor (Log Analytics or Event Hubs)
CREATE SERVER AUDIT [ContosoMIExternalAudit]
TO EXTERNAL_MONITOR;

ALTER SERVER AUDIT [ContosoMIExternalAudit] WITH (STATE = ON);

CREATE SERVER AUDIT SPECIFICATION [ContosoMIExternalAuditSpec]
FOR SERVER AUDIT [ContosoMIExternalAudit]
ADD (BATCH_COMPLETED_GROUP),
ADD (FAILED_DATABASE_AUTHENTICATION_GROUP)
WITH (STATE = ON);

La clause TO EXTERNAL_MONITOR signale que les journaux d'activité transitent par le pipeline de diagnostic d'Azure plutôt que directement vers le stockage. Après avoir créé cet audit, vous configurez la destination dans le portail Azure :

  1. Accédez à la ressource SQL Managed Instance
  2. Sélectionner Surveillance>les paramètres de diagnostic
  3. Sélectionner Ajouter un paramètre de diagnostic
  4. Activer la catégorie de journal SQLSecurityAuditEvents
  5. Choisir une destination : Log Analytics espace de travail ou Event Hubs

Cette séparation entre la définition d’audit T-SQL et la configuration de destination basée sur le portail offre une flexibilité. L’équipe de sécurité de Contoso peut configurer un audit pour le stockage (à l’aide TO URL) et un autre pour la supervision externe simultanément, en envoyant des journaux à plusieurs destinations sans conflit.

Lorsque les journaux sont acheminés vers Log Analytics, vous les interrogez à l’aide de la table AzureDiagnostics avec un filtre pour Category == "SQLSecurityAuditEvents". Cette intégration permet à Contoso de créer des tableaux de bord et des alertes personnalisés à l’aide de requêtes KQL (Kusto Query Language), ce qui offre une visibilité en temps réel des modèles d’accès aux bases de données.

Auditer les opérations de support Microsoft

SQL Managed Instance offre une Fonctionnalité d’audit unique pour l’accès des ingénieurs support de Microsoft. Lorsque Contoso augmente un cas de support et accorde Microsoft accès temporaire pour résoudre les problèmes de l’instance managée, cet accès avec élévation de privilèges peut être audité et enregistré.

Cet audit des opérations de support fournit des preuves de conformité indiquant que même l'accès privilégié de Microsoft est surveillé et enregistré. Dans le portail Azure, accédez à votre ressource SQL Managed Instance, puis sélectionnez Security>Auditing. Lors de la création ou de la modification d’un audit de serveur, vous voyez une option Microsoft des opérations de support qui permet l’audit des activités effectuées par Microsoft ingénieurs pendant les sessions de support.

Cette piste d’audit aide Contoso à démontrer aux auditeurs que tous les accès à la base de données, y compris l’accès au support du fournisseur, sont consignés et révisables.

Les journaux d'audit basés sur le stockage apparaissent sous forme de fichiers .xel (événements étendus) dans le conteneur d'objets blob, que vous ouvrez à l'aide de la visionneuse d'événements étendus de SQL Server Management Studio. Les audits de stockage et de moniteur externe peuvent s’exécuter simultanément, ce qui permet de fournir une redondance au cas où une destination ne sera plus disponible.

Avec SQL Managed Instance audit configuré pour le stockage et la supervision externe, vous êtes prêt à concevoir une stratégie d'audit conforme qui s'étend sur les deux services de base de données.