From 3bf9b9fc888f4ba76314efcbf10944ae464e8775 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 26 Feb 2025 01:02:17 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-services/az-sql.md'] --- .../azure-security/az-services/az-sql.md | 56 ++++++++++++++----- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-services/az-sql.md b/src/pentesting-cloud/azure-security/az-services/az-sql.md index 972d8f209..1e3a81def 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -10,8 +10,8 @@ Azure SQL se compose de quatre principales offres : 1. **Azure SQL Server** : Un serveur est nécessaire pour le **déploiement et la gestion** des bases de données SQL Server. 2. **Azure SQL Database** : Il s'agit d'un **service de base de données entièrement géré**, qui vous permet d'héberger des bases de données individuelles dans le cloud Azure. -3. **Azure SQL Managed Instance** : C'est pour des déploiements à plus grande échelle, à l'échelle de l'ensemble de l'instance SQL Server. -4. **Azure SQL Server sur des machines virtuelles Azure** : C'est le meilleur choix pour les architectures où vous souhaitez **contrôler le système d'exploitation** et l'instance SQL Server. +3. **Azure SQL Managed Instance** : C'est pour des déploiements à plus grande échelle, à l'échelle de l'instance SQL Server entière. +4. **Azure SQL Server sur des machines virtuelles Azure** : C'est le meilleur pour les architectures où vous souhaitez **contrôler le système d'exploitation** et l'instance SQL Server. ### Fonctionnalités de sécurité de SQL Server @@ -25,7 +25,7 @@ Azure SQL se compose de quatre principales offres : **Méthodes d'authentification :** - Authentification **Entra uniquement** : Vous devez indiquer les principaux Entra qui auront accès au service. -- Authentification **SQL et Microsoft Entra** : Authentification SQL traditionnelle avec nom d'utilisateur et mot de passe, en plus de Microsoft Entra. +- Authentification **à la fois SQL et Microsoft Entra** : Authentification SQL traditionnelle avec nom d'utilisateur et mot de passe aux côtés de Microsoft Entra. - Authentification **uniquement SQL** : Autoriser l'accès uniquement via des utilisateurs de base de données. Notez que si une authentification SQL est autorisée, un utilisateur administrateur (nom d'utilisateur + mot de passe) doit être indiqué et si l'authentification Entra ID est sélectionnée, il est également nécessaire d'indiquer au moins un principal avec un accès administrateur. @@ -37,20 +37,46 @@ Notez que si une authentification SQL est autorisée, un utilisateur administrat **Identités gérées :** - Il est possible d'assigner des identités gérées système et utilisateur. -- Utilisé pour accéder à la clé de chiffrement (si un CMEK est utilisé) et à d'autres services à partir des bases de données. +- Utilisé pour accéder à la clé de chiffrement (si un CMEK est utilisé) et à d'autres services depuis les bases de données. +- Pour quelques exemples des services Azure qui peuvent être accessibles depuis la base de données, consultez [cette page de la documentation](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) - Si plus d'une UMI est assignée, il est possible d'indiquer celle par défaut à utiliser. - Il est possible de configurer une identité de client fédéré pour un accès inter-locataire. +Quelques commandes pour accéder aux informations à l'intérieur d'un stockage blob depuis une base de données SQL : +```sql +-- Create a credential for the managed identity +CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential] +WITH IDENTITY = 'Managed Identity'; +GO + +-- Create an external data source pointing to the blob storage to access +CREATE EXTERNAL DATA SOURCE ManagedIdentity +WITH ( +TYPE = BLOB_STORAGE, +LOCATION = 'https://testsqlidentity.blob.core.windows.net/sqlcontainer', +CREDENTIAL = ManagedIdentityCredential +); +GO + +-- Read a file from ths storage and return it +SELECT * +FROM OPENROWSET( +BULK 'message.txt', +DATA_SOURCE = 'ManagedIdentity', +SINGLE_CLOB +) AS DataFile; +GO +``` **Microsoft Defender :** -- Utile pour "atténuer les vulnérabilités potentielles des bases de données et détecter des activités anormales". -- Nous parlerons de Defender dans sa propre leçon (il peut être activé dans plusieurs autres services Azure). +- Utile pour « atténuer les vulnérabilités potentielles de la base de données et détecter les activités anormales » +- Nous parlerons de Defender dans sa propre leçon (il peut être activé dans plusieurs autres services Azure) **Sauvegardes :** - La fréquence des sauvegardes est gérée dans les politiques de rétention. **Bases de données supprimées :** -- Il est possible de restaurer des bases de données qui ont été supprimées à partir de sauvegardes existantes. +- Il est possible de restaurer des bases de données qui ont été supprimées à partir des sauvegardes existantes. ## Azure SQL Database @@ -68,22 +94,22 @@ Pour créer une base de données SQL, il est nécessaire d'indiquer le serveur S - Chiffrement - Sauvegardes - … -- **Redondance des données :** Les options sont locales, zone, géo ou géo-zone redondantes. +- **Redondance des données :** Les options sont locales, zone, Geo ou Geo-Zone redondantes. - **Registre :** Il vérifie cryptographiquement l'intégrité des données, garantissant que toute falsification est détectée. Utile pour les organisations financières, médicales et toute organisation gérant des données sensibles. Une base de données SQL pourrait faire partie d'un **pool élastique**. Les pools élastiques sont une solution rentable pour gérer plusieurs bases de données en partageant des ressources de calcul (eDTUs) et de stockage configurables entre elles, avec une tarification basée uniquement sur les ressources allouées plutôt que sur le nombre de bases de données. -#### Sécurité au niveau des colonnes Azure SQL (Masquage) & Sécurité au niveau des lignes +#### Sécurité au niveau des colonnes et des lignes d'Azure SQL -Le masquage de données **dynamique d'Azure SQL** est une fonctionnalité qui aide à **protéger les informations sensibles en les cachant** des utilisateurs non autorisés. Au lieu de modifier les données réelles, il masque dynamiquement les données affichées, garantissant que des détails sensibles comme les numéros de carte de crédit sont obscurcis. +Le **masquage dynamique des données** d'Azure SQL est une fonctionnalité qui aide à **protéger les informations sensibles en les cachant** des utilisateurs non autorisés. Au lieu de modifier les données réelles, il masque dynamiquement les données affichées, garantissant que des détails sensibles comme les numéros de carte de crédit sont obscurcis. -Le **masquage de données dynamique** affecte tous les utilisateurs sauf ceux qui sont non masqués (ces utilisateurs doivent être indiqués) et les administrateurs. Il dispose de l'option de configuration qui spécifie quels utilisateurs SQL sont exemptés du masquage de données dynamique, avec **les administrateurs toujours exclus**. +Le **masquage dynamique des données** s'applique à tous les utilisateurs sauf à ceux qui sont non masqués (ces utilisateurs doivent être indiqués) et aux administrateurs. Il dispose de l'option de configuration qui spécifie quels utilisateurs SQL sont exemptés du masquage dynamique des données, avec **les administrateurs toujours exclus**. -La **sécurité au niveau des lignes (RLS) d'Azure SQL** est une fonctionnalité qui **contrôle quelles lignes un utilisateur peut voir ou modifier**, garantissant que chaque utilisateur ne voit que les données qui le concernent. En créant des politiques de sécurité avec des filtres ou des prédicats de blocage, les organisations peuvent appliquer un accès granulaire au niveau de la base de données. +La **sécurité au niveau des lignes d'Azure SQL (RLS)** est une fonctionnalité qui **contrôle quelles lignes un utilisateur peut voir ou modifier**, garantissant que chaque utilisateur ne voit que les données qui le concernent. En créant des politiques de sécurité avec des filtres ou des prédicats de blocage, les organisations peuvent appliquer un accès granulaire au niveau de la base de données. ### Azure SQL Managed Instance -Les **instances gérées Azure SQL** sont destinées à des déploiements à plus grande échelle, à l'échelle de l'ensemble de l'instance SQL Server. Elles offrent une compatibilité presque totale avec le dernier moteur de base de données SQL Server sur site (édition Entreprise), qui fournit une mise en œuvre native de réseau virtuel (VNet) répondant aux préoccupations de sécurité courantes, et un modèle commercial favorable aux clients SQL Server sur site. +Les **instances gérées Azure SQL** sont destinées aux déploiements à grande échelle, à l'échelle de l'ensemble de l'instance SQL Server. Elles offrent une compatibilité presque totale avec le dernier moteur de base de données SQL Server sur site (édition Entreprise), qui fournit une mise en œuvre native de réseau virtuel (VNet) répondant aux préoccupations de sécurité courantes, et un modèle commercial favorable aux clients SQL Server sur site. ### Machines virtuelles Azure SQL @@ -232,7 +258,7 @@ Get-AzSqlVM {{#endtab}} {{#endtabs}} -De plus, si vous souhaitez énumérer le Dynamic Data Masking et les politiques de niveau de ligne dans la base de données, vous pouvez interroger : +De plus, si vous souhaitez énumérer le masquage dynamique des données et les politiques de niveau de ligne, au sein de la base de données, vous pouvez interroger : ```sql --Enumerates the masked columns SELECT @@ -304,7 +330,7 @@ sqlcmd -S .database.windows.net -U -P