Sécuriser Azure Digital Twins

Cet article décrit les meilleures pratiques en matière de sécurité pour Azure Digital Twins. Ils traite des rôles et autorisations, de l’identité gérée, de l’accès au réseau privé avec Azure Private Link, des étiquettes de service, du chiffrement des données au repos et du partage des ressources cross-Origin (CORS).

Pour assurer la sécurité, Azure Digital Twins permet un contrôle d’accès précis sur des données, ressources et actions spécifiques de votre déploiement. À cette fin, il utilise une gestion granulaire des rôles et une stratégie de gestion des autorisations appelée contrôle d’accès en fonction du rôle Azure (RBAC Azure).

Azure Digital Twins prend également en charge le chiffrement des données au repos.

Rôles et autorisations avec le contrôle d’accès en fonction du rôle (RBAC) Azure

Azure RBAC est fourni à Azure Digital Twins via l’intégration à Microsoft Entra ID.

Vous pouvez utiliser Azure RBAC pour accorder des autorisations à un principal de sécurité, qui peut être un utilisateur, un groupe ou un principal de service d’application. Le principal de sécurité est authentifié par l’ID Microsoft Entra et reçoit un jeton OAuth 2.0 en retour. Ce jeton peut être utilisé pour autoriser une demande d’accès à une instance Azure Digital Twins.

Authentification et autorisation

Avec l’ID Microsoft Entra, l’accès est un processus en deux étapes. Quand un principal de sécurité (un utilisateur, un groupe ou une application) tente d’accéder à une entité Azure Digital Twins, la requête doit être authentifiée et autorisée.

  1. Pour commencer, l’identité du principal de sécurité est authentifiée, et un jeton OAuth 2.0 est renvoyé.
  2. Ensuite, ce jeton est transmis dans une requête adressée au service Azure Digital Twins pour autoriser l’accès à la ressource spécifiée.

L’étape d’authentification nécessite que toute requête d’application contienne un jeton d’accès OAuth 2.0 au moment de l’exécution. Si une application s’exécute à partir d’une entité Azure telle qu’une application Azure Functions, elle peut utiliser une identité managée pour accéder aux ressources. Vous trouverez plus d'informations sur les identités managées dans la section suivante.

L’étape d’autorisation exige qu’un rôle Azure soit attribué au principal de sécurité. Les rôles qui sont attribués à un principal de sécurité déterminent les autorisations dont disposera le principal. Azure Digital Twins fournit des rôles Azure qui englobent des ensembles d’autorisations pour les ressources Azure Digital Twins. Ces rôles sont décrits plus loin dans cet article.

Pour en savoir plus sur les rôles et les attributions de rôles pris en charge dans Azure, consultez Comprendre les différents rôles dans la documentation RBAC Azure.

Authentification avec des identités managées

La fonctionnalité Identités managées pour les ressources Azure vous permet de créer une identité sécurisée associée au déploiement où s’exécute le code de votre application. Vous pouvez ensuite associer cette identité à des rôles de contrôle d’accès pour accorder des autorisations personnalisées pour l’accès aux ressources Azure nécessaires à votre application.

Avec les identités managées, la plateforme Azure gère cette identité d’exécution. Il n'est pas nécessaire de stocker et de protéger des clés d'accès dans le code ou la configuration de votre application, que ce soit pour l'identité elle-même ou pour les ressources auxquelles vous devez accéder. Une application cliente Azure Digital Twins en cours d’exécution à l’intérieur d’une application Azure App Service n’a pas besoin de gérer des clés et des règles SAS ou d’autres jetons d’accès. L’application cliente a uniquement besoin de l’adresse de point de terminaison de l’espace de noms Azure Digital Twins. Lorsque l’application se connecte, Azure Digital Twins lie le contexte de l’entité managée au client. Une fois associé à une identité managée, votre client Azure Digital Twins peut effectuer toutes les opérations autorisées. L’autorisation sera ensuite accordée en associant une entité gérée à un rôle Azure dans Azure Digital Twins (décrit ci-dessous).

Autorisation : rôles Azure pour Azure Digital Twins

Azure fournit deux rôles intégrés Azure pour autoriser l’accès aux API du plan de données Azure Digital Twins. Vous pouvez faire référence aux rôles par nom ou par ID :

Rôle intégré Description Identifiant
Propriétaire des données Azure Digital Twins Octroie un accès total aux ressources Azure Digital Twins bcd981a7-7f74-457b-83e1-cceb9e632ffe
Lecteur des données Azure Digital Twins Octroie un accès en lecture seule aux ressources Azure Digital Twins d57506d4-4c8d-48b1-8587-93c323f6a5a3

Vous pouvez attribuer des rôles de deux manières :

Pour obtenir des instructions détaillées sur l’attribution de rôles à une instance Azure Digital Twins, consultez Configurer une instance et une authentification. Pour plus d’informations sur la définition des rôles intégrés, consultez Comprendre les définitions de rôles dans la documentation RBAC Azure.

Vous pouvez également créer des rôles Azure personnalisés pour votre instance. Cela vous permet d’accorder l’autorisation pour des actions spécifiques dans des zones de données individuelles, notamment des jumeaux, des commandes, des relations, des itinéraires d’événements, des travaux, des modèles et des requêtes. Pour plus d’informations sur les rôles personnalisés dans Azure, consultez rôles personnalisés Azure.

Automatisation des rôles

Lorsque vous faites référence à des rôles dans des scénarios automatisés, il est recommandé d’y faire référence par leurs ID plutôt que par leurs noms. Les noms peuvent changer d’une version à l’autre, mais pas les ID, ce qui en fait une référence plus stable pour l’automatisation.

Conseil

Si vous affectez des rôles à l’aide d’une applet de commande, comme New-AzRoleAssignment (référence), vous pouvez utiliser le paramètre -RoleDefinitionId plutôt que -RoleDefinitionName pour transmettre un ID à la place d’un nom pour le rôle.

Étendues d’autorisation

Avant d’attribuer un rôle Azure à un principal de sécurité, déterminez l’étendue de l’accès dont doit disposer le principal de sécurité. Selon les bonnes pratiques, il est préférable d’accorder la plus petite étendue possible.

La liste suivante décrit les niveaux auxquels vous pouvez étendre l’accès aux ressources Azure Digital Twins.

  • Modèles : les actions de cette ressource déterminent le contrôle des modèles chargés dans Azure Digital Twins.
  • Interroger digital Twins Graph : les actions de cette ressource déterminent la possibilité d’exécuter des opérations de requête sur des jumeaux numériques dans le graphe Azure Digital Twins.
  • Jumeau numérique : les actions de cette ressource permettent de contrôler les opérations CRUD sur les jumeaux numériques dans le graphe de jumeaux.
  • Relation de jumeau numérique : les actions de cette ressource définissent le contrôle sur les opérations CRUD sur les relations entre les jumeaux numériques dans le graphe de jumeaux.
  • Route d'événement : les actions de cette ressource déterminent les autorisations de routage d’événements d’Azure Digital Twins vers un service de point de terminaison comme Event Hub, Event Gridou Service Bus.

Résoudre les problèmes liés aux autorisations

Si un utilisateur tente d’effectuer une action qui n’est pas autorisée par son rôle, il peut recevoir un message d’erreur 403 (Forbidden) de la demande de service. Pour plus d’informations et pour connaître la procédure de dépannage, consultez Résolution des problèmes d’échec de demande de service Azure Digital Twins : Erreur 403 (Forbidden).

Identité managée pour accéder à d’autres ressources

La configuration d’une identité managée Microsoft Entra IDpour une instance Azure Digital Twins peut permettre à l’instance d’accéder facilement à d’autres ressources protégées par Microsoft Entra, telles qu’Azure Key Vault. Managée par la plateforme Azure, l’identité ne nécessite d’approvisionnement ou rotation des secrets. Pour plus d’informations sur les identités managées dans Microsoft Entra ID, consultez Identités managées pour les ressources Azure.

Azure Digital Twins prend en charge deux types d’identités managées : celles affectées par le système et celles affectées par l’utilisateur.

Vous pouvez utiliser l’un de ces types d’identité managée pour vous authentifier auprès d’un point de terminaison personnalisé. Azure Digital Twins prend en charge l’authentification basée sur l’identité aux points de terminaison pour les destinations Event Hubs et Service Bus, et à un point de terminaison Conteneur de stockage Azure pour les événements de lettres mortes. Les points de terminaison Event Grid ne sont actuellement pas pris en charge pour les identités managées.

Pour obtenir des instructions sur l’activation d’une identité managée pour un point de terminaison Azure Digital Twins qui peut être utilisé pour acheminer des événements, consultez les options de point de terminaison : Authentification basée sur l’identité.

Utilisation du service Microsoft approuvé pour le routage d’événements vers des points de terminaison Event Hubs et Service Bus

Azure Digital Twins peut se connecter aux points de terminaison Event Hubs et Service Bus pour envoyer des données d’événement à l’aide des points de terminaison publics de ces ressources. Toutefois, si ces ressources sont liées à un réseau virtuel, la connectivité aux ressources est bloquée par défaut. Par conséquent, cette configuration empêche Azure Digital Twins d’envoyer des données d’événement à vos ressources.

Pour résoudre ce problème, activez la connectivité de votre instance Azure Digital Twins à vos ressources Event Hubs ou Service Bus via l’option de service Microsoft approuvée (consultez services Microsoft approuvé pour Event Hubs et services Microsoft approuvé pour Service Bus).

Vous devez effectuer les étapes suivantes pour activer la connexion de service Microsoft approuvée.

  1. Votre instance Azure Digital Twins doit utiliser une identité managée affectée par le système. Cela permet à d’autres services de trouver votre instance en tant que service Microsoft approuvé. Pour obtenir des instructions sur la configuration d’une identité managée par le système sur l’instance, consultez Activer l’identité managée pour l’instance.
  2. Une fois qu’une identité managée affectée par le système est configurée, accordez l’autorisation d’accès à l’identité managée de votre instance pour accéder à votre point de terminaison Event Hubs ou Service Bus (cette fonctionnalité n’est pas prise en charge dans Event Grid). Pour obtenir des instructions sur l’attribution des rôles appropriés, consultez Affecter des rôles Azure à l’identité.
  3. Pour les points de terminaison Event Hubs et Service Bus qui ont des configurations de pare-feu en place, veillez à activer l’autorisation d’autoriser les services Microsoft approuvées à contourner ce paramètre de pare-feu.

Azure Private Link est un service qui vous permet d’accéder aux ressources Azure (par exemple Azure Event Hubs, Stockage Azure et Azure Cosmos DB) ainsi qu’aux services de partenaire ou de client hébergés par Azure via un point de terminaison privé dans votre réseau virtuel (VNet) Azure.

De même, vous pouvez utiliser des points de terminaison d’accès privé pour votre instance Azure Digital Twins pour permettre aux clients situés dans votre réseau virtuel d’avoir un accès sécurisé à l’API REST à l’instance via Private Link. La configuration d’un point de terminaison d’accès privé pour votre instance Azure Digital Twins vous permet de sécuriser votre instance Azure Digital Twins et d’éliminer l’exposition publique. Vous évitez également l’exfiltration de données à partir de votre réseau virtuel Azure (VNet, Virtual Network).

Le point de terminaison d’accès privé utilise une adresse IP à partir de votre espace d’adressage de réseau virtuel Azure. Le trafic entre un client de votre réseau privé et l’instance Azure Digital Twins traverse le réseau virtuel et une liaison privée sur le réseau principal de Microsoft, ce qui élimine son exposition à l’Internet public. Voici une représentation visuelle de ce système :

Diagram showing a network that is a protected VNET with no public cloud access, connecting through Private Link to an Azure Digital Twins instance.

La configuration d’un point de terminaison d’accès privé pour votre instance Azure Digital Twins vous permet de sécuriser votre instance Azure Digital Twins et d’éliminer l’exposition publique, ainsi que d’éviter l’exfiltration des données de votre réseau virtuel.

Pour obtenir des instructions sur la configuration d’une liaison privée pour Azure Digital Twins, consultez Activer l’accès privé avec Private Link.

Remarque

L’accès au réseau privé avec Azure Private Link s’applique à l’accès à Azure Digital Twins via ses API rest. Cette fonctionnalité ne s’applique pas aux scénarios de sortie à l’aide de la fonctionnalité de routage des événements d’Azure Digital Twins.

Considérations sur la conception

Lorsque vous utilisez une liaison privée pour Azure Digital Twins, voici quelques facteurs à prendre en compte :

  • Tarifs : Pour plus d’informations sur les tarifs, consultez Tarification Liaison privée Azure.
  • Disponibilité régionale : Private Link pour Azure Digital Twins est disponible dans toutes les régions Azure où Azure Digital Twins est disponible.
  • Azure Digital Twins Explorer : Azure Digital Twins Explorer ne peut pas accéder aux instances Azure Digital Twins qui ont un accès public désactivé. Toutefois, vous pouvez utiliser des fonctions Azure pour déployer la base de code Azure Digital Twins Explorer en privé dans le cloud. Pour obtenir des instructions sur la procédure à suivre, consultez Azure Digital Twins Explorer : Running in the cloud (Azure Digital Twins Explorer : exécution dans le cloud).
  • Nombre maximal de points de terminaison privés par instance Azure Digital Twins : 10
  • Autres limitations : Pour plus d’informations sur les limites de Private Link, consultez la documentation Azure Private Link : Limitations.

Balises de service

Une étiquette de service représente un groupe de préfixes d’adresses IP d’un service Azure donné. Microsoft gère les préfixes d’adresses englobés par l’étiquette de service et met à jour automatiquement l’étiquette de service quand les adresses changent, ce qui réduit la complexité des mises à jour fréquentes relatives aux règles de sécurité réseau. Pour plus d’informations sur les étiquettes de service, consultez Étiquettes de réseau virtuel.

Vous pouvez utiliser des étiquettes de service pour définir des contrôles d’accès réseau sur des groupes de sécurité réseau ou le Pare-feu Azure, en utilisant des étiquettes de service à la place d’adresses IP spécifiques quand vous créez des règles de sécurité. En spécifiant le nom de l’étiquette de service (en l’occurrence, AzureDigitalTwins) dans le champ source ou destination approprié d’une règle, vous pouvez autoriser ou refuser le trafic pour le service correspondant.

Vous trouverez ci-dessous les détails de l’étiquette de service AzureDigitalTwins.

Tag Objectif Peut-elle utiliser le trafic entrant ou sortant ? Peut-elle être étendue à une zone régionale ? Peut-elle être utilisée avec le Pare-feu Azure ?
AzureDigitalTwins Azure Digital Twins
Remarque : cette balise ou les adresses IP couvertes par cette balise peuvent être utilisées pour restreindre l’accès aux points de terminaison configurés pour les itinéraires d’événements.
Trafic entrant Non Oui

Utilisation d’étiquettes de service pour accéder à des points de terminaison de route d’événement

Voici les étapes à suivre pour accéder à des points de terminaison de route d’événement à l’aide d’étiquettes de service avec Azure Digital Twins.

  1. Tout d’abord, téléchargez cette référence de fichier JSON montrant les plages d’adresses IP Azure et les étiquettes de service : plages d’adresses IP Azure et balises de service.

  2. Recherchez les plages d’IP « AzureDigitalTwins » dans le fichier JSON.

  3. Pour découvrir comment définir des filtres IP pour cette ressource, consultez la documentation de la ressource externe connectée au point de terminaison (par exemple Event Grid, Event Hub, Service Bus ou Stockage Azure pour les événements de lettres mortes).

  4. Définissez des filtres IP sur la ou les ressources externes en utilisant les plages d’IP de l’Étape 2.

  5. Mettez régulièrement à jour les plages d’IP en fonction des besoins. Les plages peuvent changer au fil du temps. Il convient donc de les vérifier régulièrement et de les actualiser si nécessaire. La fréquence de ces mises à jour peut varier, mais il est judicieux de les vérifier une fois par semaine.

Chiffrement des données au repos

Azure Digital Twins assure le chiffrement des données au repos et en transit à mesure qu'elles sont écrites dans nos centres de données, et les déchiffre pour vous lorsque vous y accédez. Ce chiffrement s'effectue à l'aide d'une clé de chiffrement gérée par Microsoft.

CORS (Cross Origin Resource Sharing)

Azure Digital Twins ne prend pas actuellement en charge le partage des ressources cross-origin (CORS). Par conséquent, si vous appelez une API REST à partir d’une application de navigateur, d’une interface de Gestion des API (APIM) ou d’un connecteur Power Apps, un message d’erreur de stratégie peut s’afficher.

Pour résoudre cette erreur, vous pouvez effectuer l’une des actions suivantes :

  • Supprimez l’en-tête CORS Access-Control-Allow-Origin du message. Cet en-tête indique si la réponse peut être partagée.
  • Vous pouvez également créer un proxy CORS et envoyer la requête de l’API REST Azure Digital Twins à travers celui-ci.

Étapes suivantes