Partager via


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.

Quelles sont les 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 à l’aide de clés gérées par le client ou CMK.

Comment sécuriser ma 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 (Platform as a service) 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 montrant les responsabilités du client et du fournisseur de base 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 ? 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 sur 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

Même si cela paraît é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-t-il ma base de données ?

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

Explorons 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 IP pilotés par stratégie 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 Prise en charge du pare-feu dans Azure Cosmos DB.

Avec Azure Cosmos DB, vous pouvez 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.

Azure Cosmos DB bloque toutes les demandes qui proviennent d’ordinateurs ne figurant pas dans cette liste. 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’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 de 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 avec la clé de compte secrète, et le hachage encodé en base 64 suivant est envoyé avec chaque appel à Azure Cosmos DB. Afin de valider la demande, Azure Cosmos DB utilise la clé secrète et les propriétés appropriées pour générer un hachage, puis compare la valeur à celle de la demande. Si les deux valeurs correspondent, l’opération est autorisée 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écuriser l'accès aux ressources 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écuriser l'accès aux ressources 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 en savoir plus, consultez Intégration d’Active Directory.
Réplication mondiale Azure Cosmos DB offre une distribution mondiale clé en main, ce qui vous permet de répliquer vos données dans n’importe quel centre de données Azure du 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 Distribuer des données à l’échelle mondiale.
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 devient indisponible. Vous pouvez créer une liste des régions de basculement prioritaires en utilisant les régions dans lesquelles vos données sont répliquées.

Pour en savoir plus, consultez Basculements régionaux dans Azure Cosmos DB.
Réplication locale Même au sein d’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 Vous pouvez utiliser des sauvegardes en ligne automatisé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 autres données confidentielles peuvent être isolées dans des conteneurs spécifiques, et l’accès en lecture-écriture ou en lecture seule peut être limité à 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 qui a initié l’opération, quand 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 commence. L’objectif est de restaurer la sécurité et les opérations normales du service. Le processus permet de rétablir les services aussi rapidement que possible après la détection d’un problème et le début d’une investigation.

Pour en savoir plus, consultez Réponse 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 et US Government).
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és d’Azure.

Pour en savoir plus, consultez les centres de données de Microsoft dans le monde.
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 côté serveur. Pour ce faire, consultez le 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 managée, Azure Cosmos DB ne nécessite aucune gestion ou correction des serveurs parce que tout est fait automatiquement.
Comptes administratifs avec des mots de passe forts Il est impossible d’avoir un compte administratif 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 montrant les 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 regé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. Elles ne permettent pas de lire les ressources d’autorisation.

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. Suivez ensuite les étapes dans la prochaine section. Pour surveiller les mises à jour et la regénération des clés de votre compte, consultez Surveiller les mises à jour de clés avec des métriques et des alertes.

Si votre application utilise actuellement la clé primaire

  1. Accédez à votre compte Azure Cosmos DB dans le portail Azure.

  2. Sélectionnez Clés dans le menu de gauche, puis sélectionnez Regénérer la clé secondaire à partir des points de suspension (...) sur la droite de votre clé secondaire.

    Capture d’écran montrant comment régénérer la clé secondaire dans le Portail Azure lorsqu’elle est utilisée avec l’API NoSQL.

  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 montrant comment régénérer la clé primaire dans le Portail Azure lorsqu’elle est utilisée avec l’API NoSQL.

Si votre application utilise actuellement la clé secondaire

  1. Accédez à votre compte Azure Cosmos DB dans le portail Azure.

  2. Sélectionnez Clés dans le menu de gauche, puis sélectionnez Regénérer la clé primaire à partir des points de suspension (...) sur la droite de votre clé primaire.

    Capture d’écran montrant comment régénérer la clé primaire dans le Portail Azure lorsqu’elle est utilisée avec l’API NoSQL.

  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 montrant comment régénérer la clé secondaire dans le Portail Azure lorsqu’elle est utilisée avec l’API NoSQL.

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

Une fois que vous avez fait tourner ou regénéré une clé, 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 montrant l’état de la régénération des clés à partir du journal d’activité.

    Nous vous recommandons de regénérer les clés au moins une fois tous les 60 jours. Si votre dernière regé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 juin 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 regé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 regénération de clé. L’opération de génération de clé commence avec l’état Acceptée. Il passe à Commencée, puis à Réussie une fois l’opération terminée.

Étapes suivantes