SQL Azure : sécurisation de SQL Azure

La sécurité est essentielle pour les solutions hébergées, même si les outils et les stratégies sont bien sûr différents.

Joshua Hoffman

L’informatique en nuage est récemment devenue indispensable à toute l’infrastructure informatique. Même si l’informatique sur site conserve bien entendu un rôle stratégique, les solutions hébergées gagnent en importance grâce à leur évolutivité, à leur élasticité et aux économies qu’elles permettent de faire et qui sont désormais essentielles pour les entreprises qui ont besoin d’être flexibles. Cela est particulièrement vrai lorsqu’il s’agit de gestion de données.

SQL Azure est un bon exemple de ce type de plateforme en nuage. SQL Azure est une infrastructure puissante et familière pour le stockage, la gestion et l’analyse des données. Elle présente également les avantages de l’informatique en nuage. Lorsqu’elle est partagée, l’infrastructure hébergée réduit les coûts directs et indirects, le modèle de paiement à l’utilisation permet d’atteindre une meilleure efficacité, de même qu’une haute disponibilité et une forte tolérance.

Malgré les nombreux avantages de l’informatique en nuage, la migration de vos données vers une solution basée dans le nuage telle que SQL Azure introduit des changements dans la façon d’aborder les concepts de gestion informatique tels que la sécurité. Le modèle de sécurité peut être différent, mais vous devez toujours prendre en compte plusieurs facteurs pour vous assurer que vos données sont sécurisées autant que possible, notamment les méthodes de contrôle d’accès, l’authentification et le chiffrement.

Mise en route de SQL Azure

Si vous ne connaissez pas encore SQL Azure, le démarrage est simple. C’est encore plus facile si vous maîtrisez déjà les outils de gestion SQL Server traditionnels, tels que SQL Server Management Studio (que vous pouvez également utiliser à partir de la version SQL Server 2008 R2 pour gérer des instances de SQL Azure).

La première étape consiste à créer un compte pour la plateforme Windows Azure en vous rendant sur le Portail client de Microsoft Online Services. Cela vous donne accès aux services Windows Azure dont Windows Azure, SQL Azure et Windows Azure AppFabric (qui fournit aux développeurs des moyens de connecter des applications et des services au-delà des limites du réseau et de l’organisation).

Une fois que vous avez établi un compte, vous pouvez accéder au panneau de configuration de SQL Azure en vous rendant sur sql.azure.com. Cliquez sur « Nouveau serveur de base de données » pour créer une nouvelle instance de SQL Azure.

Contrôle d’accès réseau

Pour protéger vos données, le pare-feu SQL Azure empêche tout accès à vos bases de données à moins que vous n’en autorisiez l’accès à partir d’ordinateurs spécifiques. L’accès par le biais du pare-feu SQL Azure est basé sur l’adresse IP d’origine. Vous pouvez gérer cela sur le Portail de gestion de la plateforme Windows Azure (voir Figure 1) ou directement dans la base de données principale à partir des procédures stockées.

Configurez les règles du pare-feu SQL Azure en suivant les étapes suivantes :

  1. Connectez-vous sur le portail de gestion de la plateforme Windows Azure.
  2. Dans le volet de gauche, cliquez sur « Base de données ».
  3. Toujours dans le volet de gauche, développez votre abonnement et cliquez sur le serveur SQL Azure pour lequel vous souhaitez configurer des règles de pare-feu.
  4. Cliquez sur « Règles de pare-feu » pour répertorier les règles.
  5. Cliquez sur « Ajouter » pour créer une nouvelle règle de pare-feu. Pour permettre à d’autres services Windows d’accéder à ce serveur SQL Azure, sélectionnez « Permettre à d’autres services Windows Azure d’accéder à ce serveur ». Cette option crée une règle ayant une plage IP de « 0.0.0.0 – 0.0.0.0 ». Vous pouvez utiliser le même processus pour mettre à jour et supprimer des règles.

Remarque : Chaque règle de pare-feu doit avoir un nom unique (ne respectant pas la casse).

Figure 1 Configuration d’une règle de pare-feu dans SQL Azure.

Pour plus de détails concernant la configuration des règles de pare-feu grâce aux procédures stockées, consultez Changement de règles de pare-feu par le biais de T-SQL.

Le service SQL Azure est disponible sur le port TCP 1433. En fonction de vos stratégies de pare-feu existantes, vous pouvez avoir besoin de configurer des ordinateurs clients pour permettre un accès sortant vers ce port. Consultez Configuration du pare-feu côté client pour plus de détails sur ce processus.

Authentification SQL

La méthode d’authentification dans SQL Azure est basée sur une authentification SQL Server traditionnelle. Elle ne prend pas en charge l’authentification Windows (sécurité intégrée). Vous devez fournir des informations d’identification à chaque fois que vous vous connectez à SQL Azure.

Lorsque vous créez un nouveau serveur de base de données dans SQL Azure, vous pouvez créer une connexion principale et un mot de passe au niveau du serveur. Cela est équivalent au compte d’administrateur système de SQL Server. Vous pouvez créer des connexions supplémentaires dans T-SQL, par le biais du Gestionnaire de base de données pour SQL Azure ou de SQL Server Management Studio 2008 R2.

Vous pouvez créer et supprimer des connexions dans la base de données MASTER en utilisant la commande CREATE LOGIN. Par exemple, connectez-vous à votre base de données MASTER par le biais du Gestionnaire de base de données pour SQL Azure ou de SQL Server Management Studio et exécutez la requête suivante :

--create a login named "testlogin"
CREATE LOGIN testlogin WITH password='Passw0rd!';

Vous pouvez effectuer une requête pour les connexions existantes en utilisant la commande illustrée à la Figure 2.

Figure 2 Interroger les connexions SQL Server à l’aide du Gestionnaire de base de données pour SQL Azure.

Une fois que vous avez créé vos connexions, vous pouvez créer des utilisateurs au niveau de la base de données et les associer à ces connexions, puis accorder des autorisations spécifiques à chaque utilisateur au niveau de la base de données. Pour créer un utilisateur pour une base de données spécifique, connectez-vous à la base de données appropriée et exécutez la commande suivante :

CREATE USER testuser FROM LOGIN testlogin ;

Vous pouvez alors donner des autorisations en utilisant la commande suivante :

EXEC sp_addrolemember 'db_datareader', 'testuser';

Pour afficher la liste complète des rôles, consultez Rôles au niveau des bases de données. Notez que lorsque vous exécutez les commandes CREATE/ALTER/DROP LOGIN ou CREATE/ALTER/DROP USER (avec l’option FOR/FROM LOGIN), chacune de ces commandes doit être la seule commande dans le batch T-SQL. Dans le cas contraire, un message d’erreur apparaît.

Chiffrement de connexion

SQL Azure transfère des données grâce au flux de données tabulaires (TDS) d’une connexion SSL. Il ne prend pas en charge les connexions non chiffrées et dispose d’un certificat signé délivré par une Autorité de certification. Tous ces facteurs permettent de garantir la transmission des données et peuvent permettre d’empêcher les attaques au niveau de l’intercepteur.

La négociation de chiffrement intervient dans le flux PRELOGIN du protocole TDS. Tout client utilisant SQL Azure en aura besoin, y compris SQL Serveur Management Studio et les applications sur ADO.NET.

Pour chiffrer des connexions à partir de SQL Server Management Studio, suivez les étapes suivantes :

  1. Ouvrez SQL Server Management Studio.
  2. Dans l’Explorateur d’objets, cliquez sur « Se connecter », puis sur « Moteur de base de données".
  3. Sous « Se connecter au serveur », cliquez sur « Propriétés de connexion ».
  4. Sélectionnez « Chiffrer la connexion » (voir Figure 3).

Figure 3 Chiffrement d’une connexion vers SQL Azure dans SQL Server Management Studio.

Pour valider les certificats avec une application ADO.NET, saisissez Encrypt=True et TrustServerCertificate=False dans la chaîne de connexion de la base de données.

Chiffrement des données

SQL Azure ne prend pas actuellement en charge les mécanismes de chiffrement des données standard comme le fait SQL Server. Ceux-ci incluent le chiffrement transparent des données, les clés asymétriques, les clés symétriques et les fonctions Transact-SQL, telles que ENCRYPTBYPASSPHRASE et DECRYPTBYPASSPHRASE, CREATE/ALTER/DROP DATABASE ENCRYPTION KEY ou CREATE/ALTER/DROP MASTER KEY.

Avec SQL Azure, vous devez chiffrer ou déchiffrer au niveau de l’application. En d’autres termes, votre application est responsable du chiffrement et du déchiffrement lorsqu’elle envoie ou qu’elle récupère des données dans SQL Azure.

Lorsque vous commencez à héberger certaines applications et des données dans le nuage, vous devez rester vigilant quant à la sécurité de vos données. Vous devez toujours être impliqué dans l’architecture de sécurité du nuage. Le besoin de sécurité est permanent, seules les techniques changent avec la plateforme du nuage. Pour obtenir des ressources supplémentaires sur ce sujet, consultez l’article « SQL Azure Security Guidelines and Limitations (Instructions et restrictions concernant la sécurité de SQL Azure) ».

En suivant les recommandations relatives à la gestion du compte et de la connexion, vous pouvez vous assurer de tirer le meilleur parti de la migration de vos données dans le nuage. Vous n’avez pas à compromettre la sécurité de vos informations métier essentielles.

Joshua Hoffman

Joshua Hoffman est l’ancien rédacteur en chef de TechNet Magazine*. À présent auteur et consultant indépendant, il conseille ses clients sur la technologie et le marketing orienté public. M. Hoffman est également rédacteur en chef de ResearchAccess.com, un site consacré à faire croître la communauté de recherche du marché et à l’enrichir. Il habite à New York.*

Contenu associé