Vue d’ensemble de la sécurité des bases de données dans Azure Cosmos DB

S’APPLIQUE À : NoSQL MongoDB Cassandra Gremlin Table

Cet article décrit les meilleures pratiques en matière de sécurité de la base de données et les principales fonctionnalités d’Azure Cosmos DB qui vous aident à prévenir et détecter les violations de la base de données et à y répondre.

Nouveautés en matière de sécurité dans Azure Cosmos DB

Le chiffrement au repos est désormais disponible pour les documents et les sauvegardes stockés dans Azure Cosmos DB dans toutes les régions Azure. Un chiffrement au repos est automatiquement appliqué aux clients nouveaux et existants dans ces régions. Il n’est pas nécessaire de configurer quoi que ce soit. Vous bénéficiez des mêmes performances remarquables en matière de temps de latence, de débit, de disponibilité et de fonctionnalité qu’auparavant, avec l’avantage de savoir que vos données sont en lieu sûr et sécurisée grâce à un chiffrement au repos. Les données stockées dans votre compte Azure Cosmos DB sont chiffrées automatiquement et de façon fluide avec des clés gérées par Microsoft à l’aide de clés gérées par le service. Vous pouvez éventuellement choisir d’ajouter une deuxième couche de chiffrement avec des clés gérées par vos soins avec les clés gérées par le client, ou CMK.

Comment sécuriser une base de données

La sécurité des données est une responsabilité partagée entre vous, le client et le fournisseur de votre base de données. Selon le fournisseur de base de données que vous choisissez, la part de votre responsabilité peut varier. Si vous choisissez une solution locale, vous devez fournir tous les éléments de la protection de point de terminaison à la sécurité physique de votre matériel, ce qui n’est pas une tâche facile. Si vous choisissez un fournisseur de base de données cloud PaaS comme Azure Cosmos DB, vous réduisez considérablement votre niveau d’inquiétude. L’image suivante, tirée du livre blanc Microsoft Shared Responsibilities for Cloud Computing (Responsabilités partagées en matière de cloud computing), montre en quoi votre responsabilité diminue en faisant appel à un fournisseur PaaS tel qu’Azure Cosmos DB.

Capture d’écran des responsabilités du client et du fournisseur de bases de données.

Le diagramme précédent présente les composants de sécurité cloud de haut niveau. Quels sont ceux auxquels vous devez être particulièrement attentif pour votre solution de base de données ? Et comment comparer les solutions entre elles ?

Nous vous recommandons d’utiliser la liste de vérification suivante qui répertorie les critères selon lesquels comparer les systèmes de base de données :

  • Sécurité du réseau et paramètres de pare-feu
  • Authentification des utilisateurs et contrôles utilisateur affinés
  • Possibilité de répliquer des données globalement en cas de défaillances régionales
  • Possibilité de basculer d’un centre de données vers un autre
  • Réplication locale des données dans un centre de données
  • Sauvegardes automatiques des données
  • Restauration des données supprimées à partir de sauvegardes
  • Protection et isolement des données sensibles
  • Surveillance des attaques
  • Réponse aux attaques
  • Possibilité de délimiter géographiquement les données pour respecter les restrictions de gouvernance des données
  • Protection physique des serveurs dans les centres de données protégés
  • Certifications

Bien que cela paraisse évident, de récents exemples de violations de base de données à grande échelle nous rappellent l’importance simple mais critique des exigences suivantes :

  • Serveurs corrigés et régulièrement mis à jour
  • Chiffrement HTTPS par défaut/TLS
  • Comptes administratifs avec des mots de passe forts

Comment Azure Cosmos DB sécurise ma base de données ?

Reprenons la liste précédente : combien de ces exigences de sécurité Azure Cosmos DB garantit-il ? Toutes, sans exception.

Examinons à présent chacune d’entre elles en détail.

Exigence de sécurité Approche de la sécurité d’Azure Cosmos DB
Sécurité du réseau L’utilisation d’un pare-feu IP est la première couche de protection pour sécuriser votre base de données. Azure Cosmos DB prend en charge les contrôles d’accès basés sur une stratégie IP pour le pare-feu entrant. Les contrôles d’accès basés sur IP sont similaires aux règles de pare-feu utilisées par les systèmes de base de données traditionnels. Cependant, elles sont étendues de sorte qu’un compte de base de données Azure Cosmos DB ne soit accessible qu’à partir d’un ensemble approuvé de machines ou de services cloud. Pour plus d’informations, consultez l’article Prise en charge du pare-feu dans Azure Cosmos DB.

Azure Cosmos DB vous permet d’activer une adresse IP spécifique (168.61.48.0), une plage d’adresses IP (168.61.48.0/8) et des combinaisons d’adresses et de plages IP.

Toutes les demandes provenant d’ordinateurs ne figurant pas dans cette liste sont bloquées par Azure Cosmos DB. Les demandes issues d’ordinateurs et de services cloud approuvés doivent ensuite terminer le processus d’authentification pour bénéficier d’un contrôle d’accès sur les ressources.

Vous pouvez utiliser des étiquettes de service de réseau virtuel pour isoler le réseau et protéger vos ressources Azure Cosmos DB de l’accès Internet général. Utilisez des étiquettes de service à la place des adresses IP spécifiques lors de la création de règles de sécurité. En spécifiant le nom de l’étiquette de service (par exemple, AzureCosmosDB) dans le champ Source ou Destination approprié d’une règle, vous pouvez autoriser ou refuser le trafic pour le service correspondant.
Autorisation Azure Cosmos DB utilise un code d’authentification de message basé sur le hachage (HMAC) pour l’autorisation.

Chaque demande est hachée à l’aide de la clé secrète du compte, et ce hachage encodé en base 64 suivant est envoyé avec chaque appel à Azure Cosmos DB. Afin de valider la demande, le service Azure Cosmos DB utilise la clé secrète et les propriétés appropriées pour générer un hachage dont il compare la valeur à celle de la demande. Si les deux valeurs correspondent, l'opération est autorisée avec succès et la demande est traitée. Si elles ne correspondent pas, un échec d’autorisation se produit et la demande est rejetée.

Vous pouvez utiliser une clé primaire ou un jeton de ressource autorisant un accès précis à une ressource telle qu’un document.

Pour en savoir plus, consultez Sécurisation de l’accès aux données Azure Cosmos DB.
Utilisateurs et autorisations À l’aide de la clé primaire du compte, vous pouvez créer des ressources utilisateur et des ressources d’autorisation par base de données. Dans une base de données, un jeton de ressource est associé à une autorisation et il détermine si l'utilisateur a accès (lecture-écriture, lecture seule ou aucun accès) à une ressource d'application de la base de données. Les ressources d’application comprennent les conteneurs, les documents, les pièces jointes, les procédures stockées, les déclencheurs et les fonctions définies par l’utilisateur. La jeton de ressource est ensuite utilisé lors de l’authentification pour autoriser ou refuser l’accès à la ressource.

Pour en savoir plus, consultez Sécurisation de l’accès aux données Azure Cosmos DB.
Intégration d’Active Directory (contrôle d’accès en fonction du rôle Azure) Vous pouvez également fournir ou restreindre l’accès au compte, à la base de données, au conteneur et aux offres (débit) Azure Cosmos DB à l’aide du contrôle d’accès (IAM) dans le portail Azure. IAM fournit un contrôle d’accès basé sur les rôles et s’intègre à Active Directory. Vous pouvez utiliser des rôles intégrés ou des rôles personnalisés pour les individus et les groupes. Pour plus d’informations, consultez Intégration Active Directory.
Réplication mondiale Azure Cosmos DB offre une diffusion mondiale clé en main, ce qui vous permet de répliquer vos données dans n’importe quel centre de données Azure dans le monde facilement. La réplication mondiale vous permet une mise à l’échelle globale et fournit un accès à faible latence à vos données dans le monde entier.

En matière de sécurité, la réplication mondiale protège les données contre les défaillances régionales.

Pour en savoir plus, consultez Distribution mondiale des données avec DocumentDB.
Basculements régionaux Si vous avez répliqué vos données dans plusieurs centres de données, Azure Cosmos DB bascule automatiquement vos opérations si un centre de données régional est indisponible. Vous pouvez créer une liste des régions de basculement prioritaires comportant les régions dans lesquelles vos données sont répliquées.

Pour en savoir plus, consultez Basculements régionaux automatiques pour la continuité des activités dans Azure Cosmos DB.
Réplication locale Même dans un centre de données, Azure Cosmos DB réplique automatiquement les données pour garantir une haute disponibilité et vous donne la possibilité de choisir des niveaux de cohérence. Cette réplication garantit un contrat SLA de disponibilité de 99,99 % pour tous les comptes monorégions et multirégions avec cohérence souple, ainsi qu’une disponibilité de lecture de 99,999 % pour tous les comptes de base de données multirégions.
Sauvegardes en ligne automatisées Les bases de données Azure Cosmos DB sont régulièrement sauvegardées et stockées dans un magasin géoredondant.

Pour en savoir plus, consultez Sauvegarde et restauration en ligne automatiques avec Azure Cosmos DB.
Restauration de données supprimées Les sauvegardes en ligne automatisées peuvent être utilisées pour récupérer des données que vous avez accidentellement supprimées jusqu’à environ 30 jours après l’événement.

Pour en savoir plus, consultez Sauvegarde et restauration en ligne automatiques avec Azure Cosmos DB.
Protection et isolement des données sensibles Toutes les données stockées dans les régions répertoriées dans la section Nouveautés sont désormais chiffrées au repos.

Les données personnelles et d’autres données confidentielles peuvent être isolées dans un conteneur spécifique, et un accès en lecture-écriture ou en lecture seule peut être restreint à des utilisateurs spécifiques.
Surveillance des attaques À l’aide de l’enregistrement d’audit et des journaux d’activité, vous pouvez surveiller les activités normales et anormales de votre compte. Vous pouvez voir les opérations qui ont été effectuées sur vos ressources. Ces données incluent : la personne qui a initié l’opération, le moment auquel l’opération a été réalisée, l’état de l’opération et bien plus encore.
Réponse aux attaques Une fois que vous avez contacté le support Azure pour signaler une attaque potentielle, un processus de réponse aux incidents en cinq étapes est lancé. L’objectif du processus en cinq étapes est de restaurer la sécurité et les opérations normales du service. Le processus en cinq étapes permet de rétablir les services aussi rapidement que possible après la détection d’un problème et l’ouverture d’une enquête.

Pour en savoir plus, consultez Microsoft Azure Security Response in the Cloud (Réponse de Microsoft Azure en matière de sécurité dans le cloud).
Délimitation géographique Azure Cosmos DB garantit la gouvernance des données dans les régions souveraines (par exemple, Allemagne, Chine, US Gov).
Installations protégées Dans Azure Cosmos DB, les données sont stockées sur des disques SSD dans les centres de données protégées d’Azure.

Pour en savoir plus, consultez les centres de données Microsoft globaux.
Chiffrement HTTPS/SSL/TLS Toutes les connexions à Azure Cosmos DB prennent en charge le protocole HTTPS. Azure Cosmos DB prend en charge les niveaux TLS jusqu’à 1.2 (inclus).
Il est possible d’appliquer un niveau TLS minimal sur le côté serveur. Pour ce faire, reportez-vous au guide en libre-service Application de la version TLS minimale en libre-service dans Azure Cosmos DB.
Chiffrement au repos Toutes les données stockées dans Azure Cosmos DB sont chiffrées au repos. Pour en savoir plus, consultez Chiffrement de base de données Azure Cosmos DB au repos.
Serveurs corrigés En tant que base de données NoSQL gérée, Azure Cosmos DB ne nécessite aucune gestion ou correction des serveurs. Tout est fait automatiquement.
Comptes administratifs avec des mots de passe forts Il est difficile de croire que nous devions encore mentionner cette exigence, mais contrairement à certains de nos concurrents, il est impossible d’avoir un compte d’administrateur sans mot de passe dans Azure Cosmos DB.

La sécurité via TLS et l’authentification basée sur un secret HMAC sont intégrées par défaut.
Certifications de sécurité et de protection des données Pour obtenir la liste la plus à jour des certifications, consultez Conformité Azure et le dernier document de conformité Azure avec toutes les certifications Azure, y compris Azure Cosmos DB.

La capture d’écran suivante montre comment utiliser la journalisation d’audit et les journaux d’activité pour surveiller votre compte : Capture d’écran des journaux d’activité pour Azure Cosmos DB.

Clés primaire/secondaire

Les clés primaire/secondaire donnent accès à toutes les ressources administratives du compte de base de données. Clés primaire/secondaire :

  • Fournissent un accès aux comptes, aux bases de données, aux utilisateurs et aux autorisations.
  • Ne peuvent pas être utilisées pour fournir un accès précis aux conteneurs et aux documents.
  • Sont créées lors de la création d’un compte.
  • Peuvent être régénérées à tout moment.

Chaque compte comporte deux clés : une clé primaire et une clé secondaire. L’objectif de ces paires de clés est de pouvoir régénérer ou restaurer des clés tout en fournissant un accès permanent à votre compte et à vos données.

Les clés primaire/secondaire sont disponibles en deux versions : lecture/écriture et lecture seule. Les clés en lecture seule autorisent uniquement les opérations de lecture sur le compte, mais ne fournissent pas d’accès aux ressources des autorisations de lecture.

Rotation et régénération des clés

Le processus de rotation et de régénération des clés est simple. Tout d’abord, assurez-vous que votre application utilise régulièrement la clé primaire ou la clé secondaire pour accéder à votre compte Azure Cosmos DB. Puis, suivez les étapes présentées ci-dessous. Pour surveiller les mises à jour et la régénération des clés de votre compte, consultez l’article Surveiller les mises à jour de clés avec des métriques et des alertes.

Si votre application utilise actuellement la clé primaire

  1. Dans le portail Azure, accédez à votre compte Azure Cosmos DB.

  2. Sélectionnez Clés dans le menu gauche, puis sélectionnez Régénérer la clé secondaire à partir de l’ellipse sur la droite de votre clé secondaire.

    Capture d’écran du portail Azure montrant comment régénérer la clé secondaire.

  3. Vérifiez que la nouvelle clé secondaire fonctionne de façon cohérente par rapport à votre compte Azure Cosmos DB. La régénération des clés peut prendre de moins d’une minute à plusieurs heures selon la taille du compte Azure Cosmos DB.

  4. Remplacez votre clé primaire par votre clé secondaire dans votre application.

  5. Revenez au portail Azure et déclenchez la régénération de la clé primaire.

    Capture d’écran du portail Azure montrant comment régénérer la clé primaire.

Si votre application utilise actuellement la clé secondaire

  1. Dans le portail Azure, accédez à votre compte Azure Cosmos DB.

  2. Sélectionnez Clés dans le menu gauche, puis sélectionnez Régénérer la clé primaire à partir de l’ellipse sur la droite de votre clé primaire.

    Capture d’écran du portail Azure montrant comment régénérer la clé primaire.

  3. Vérifiez que la nouvelle clé primaire fonctionne de façon cohérente par rapport à votre compte Azure Cosmos DB. La régénération des clés peut prendre de moins d’une minute à plusieurs heures selon la taille du compte Azure Cosmos DB.

  4. Remplacez votre clé secondaire par votre clé primaire dans votre application.

  5. Revenez au portail Azure et déclenchez la régénération de la clé secondaire.

    Capture d’écran du portail Azure montrant comment régénérer la clé secondaire.

Suivre l’état de la régénération des clés

Une fois que vous avez fait pivoter une clé ou que vous l’avez régénérée, vous pouvez suivre son état dans le journal d’activité. Effectuez les étapes suivantes pour suivre l’état :

  1. Connectez-vous au portail Azure et accédez à votre compte Azure Cosmos DB.

  2. Sélectionnez Clés dans le menu de gauche. Vous devriez voir la date de la dernière régénération de clé sous chaque clé.

    Capture d’écran de l’état de la régénération des clés à partir du journal d’activité.

    Microsoft recommande de régénérer les clés au moins une fois tous les 60 jours. Si votre dernière régénération remonte à plus de 60 jours, une icône d’avertissement s’affiche. Vous pouvez également voir que votre clé n’a pas été enregistrée. Si tel est le cas, votre compte a été créé avant le 18/06/2022 et les dates n’ont pas été enregistrées. Toutefois, vous devriez être en mesure de la régénérer et de voir la nouvelle date de votre dernière régénération pour la nouvelle clé.

  3. Vous devriez voir les événements de régénération de clé avec leur état, l’heure à laquelle l’opération a été lancée et les détails de l’utilisateur qui a initié la régénération de clé. L’opération de génération de clé démarre avec l’état Acceptée, puis passe à Démarrée, puis à Opération réussie lorsque l’opération se termine.

Étapes suivantes

Pour plus d’informations sur les clés primaires et les jetons de ressource, consultez Sécurisation de l’accès aux données Azure Cosmos DB.

Pour plus d’informations sur l’enregistrement d’audit, consultez Journalisation des diagnostics Azure Cosmos DB.

Pour plus d’informations sur les certifications Microsoft, consultez le Centre de confidentialité Azure.