Autorisations et sécurité dans Azure Chaos Studio

Azure Chaos Studio vous permet d’améliorer la résilience des services en injectant systématiquement des erreurs dans vos ressources Azure. L’injection d’erreurs est un moyen puissant qui permet d’améliorer la résilience des services, mais elle peut également s’avérer dangereuse. Le fait de provoquer des défaillances dans votre application peut avoir plus d’impact que prévu et offrir à des acteurs malveillants des opportunités d’infiltrer vos applications.

Chaos Studio dispose d’un modèle d’autorisation robuste qui empêche les erreurs de s’exécuter involontairement, ou à l’initiative d’une personne malintentionnée. Dans cet article, vous découvrez comment sécuriser les ressources ciblées pour l’injection d’erreurs en utilisant Chaos Studio.

Comment puis-je limiter la capacité à injecter des erreurs avec Chaos Studio ?

Chaos Studio a trois niveaux de sécurité qui vous permettent de contrôler comment et quand l’injection d’erreurs peut se produire sur une ressource :

  • Tout d’abord, une expérience de chaos est une ressource Azure qui est déployée sur une région, un groupe de ressources et un abonnement. Les utilisateurs doivent disposer des autorisations Azure Resource Manager appropriées pour créer, mettre à jour, démarrer, annuler, supprimer ou afficher une expérience.

    Chaque autorisation est une opération Resource Manager qui peut être attribuée avec une granularité fine à une identité ou attribuée dans le cadre d’un rôle avec des autorisations génériques. Par exemple, le rôle Contributeur dans Azure a l’autorisation */write sur l’étendue attribuée, qui inclut l’autorisation Microsoft.Chaos/experiments/write.

    Quand vous tentez de contrôler la possibilité d’injecter des erreurs sur une ressource, l’opération la plus importante à restreindre est Microsoft.Chaos/experiments/start/action. Cette opération démarre une expérience de chaos qui injecte des erreurs.

  • Par ailleurs, une expérience de chaos a une identité managée affectée par le système ou une identité managée affectée par l’utilisateur qui produit des erreurs sur une ressource. Si vous choisissez d’utiliser une identité managée affectée par le système pour votre expérience, l’identité est créée au moment de la création de l’expérience dans votre locataire Microsoft Entra. Les identités managées affectées par l’utilisateur peuvent être utilisées sur un nombre illimité d’expériences.

    Dans une expérience de chaos, vous pouvez choisir d’activer l’affectation de rôle personnalisé pour l’identité managée affectée par le système et/ou pour l’identité managée affectée par l’utilisateur. L’activation de cette fonctionnalité permet à Chaos Studio de créer et d’attribuer un rôle personnalisé contenant toutes les fonctionnalités d’action d’expérience nécessaires à l’identité de votre expérience (celles qui n’existent pas déjà dans votre sélection d’identité). Si une expérience de chaos utilise une identité managée affectée par l’utilisateur, les rôles personnalisés attribués à l’identité de l’expérience par Chaos Studio sont conservés après la suppression de l’expérience.

    Si vous choisissez d’accorder manuellement des autorisations à votre expérience, vous devez accorder les autorisations appropriées à son identité pour toutes les ressources cibles. Si l’identité de l’expérience ne dispose pas de l’autorisation appropriée pour une ressource, elle ne peut pas produire une erreur sur cette ressource.

  • Enfin, chaque ressource doit être intégrée à Chaos Studio en tant que cible avec les fonctionnalités correspondantes activées. Si une cible ou la fonctionnalité pour l’erreur à produire n’existe pas, l’expérience échoue sans affecter la ressource.

Identité managée affectée par l’utilisateur

Une expérience de chaos peut utiliser une identité managée affectée par l’utilisateur afin d’obtenir les autorisations suffisantes pour injecter des erreurs sur les ressources cibles de l’expérience. En outre, les identités managées affectées par l’utilisateur peuvent être utilisées sur un nombre illimité d’expériences dans Chaos Studio. Pour utiliser cette fonctionnalité, vous devez :

  • Premièrement, créez une identité managée affectée par l’utilisateur dans le service Identités managées. Vous pouvez affecter les autorisations requises de votre identité managée affectée par l’utilisateur pour exécuter votre ou vos expériences de chaos à ce stade.
  • Deuxièmement, lors de la création de votre expérience de chaos, sélectionnez une identité managée affectée par l’utilisateur dans votre abonnement. Vous pouvez choisir d’activer l’attribution de rôle personnalisé à cette étape. L’activation de cette fonctionnalité va accorder à votre sélection d’identité les autorisations requises dont elle a besoin en fonction des erreurs contenues dans votre expérience.
  • Troisièmement, après avoir ajouté toutes vos erreurs à votre expérience de chaos, vérifiez si votre configuration d’identité contient toutes les actions nécessaires pour que votre expérience de chaos s’exécute correctement. Si ce n’est pas le cas, contactez votre administrateur système pour obtenir l’accès ou bien modifiez les sélections d’erreurs de votre expérience.

Authentification de l’agent

Quand vous produisez des erreurs basées sur un agent, vous devez installer l’agent Chaos Studio sur votre machine virtuelle ou sur votre groupe de machines virtuelles identiques. L’agent utilise une identité managée affectée par l’utilisateur pour s’authentifier auprès de Chaos Studio, et un profil d’agent pour établir une relation avec une ressource de machine virtuelle spécifique.

Quand vous intégrez une machine virtuelle ou un groupe de machines virtuelles identiques pour des erreurs basées sur un agent, vous créez au préalable une cible d’agent. La cible d’agent doit disposer d’une référence à l’identité managée affectée par l’utilisateur qui est utilisée pour l’authentification. La cible d’agent contient un ID de profil d’agent qui est fourni sous la forme d’une configuration lors de l’installation de l’agent. Les profils d’agent sont uniques à chaque cible, et les cibles sont uniques à chaque ressource.

Opérations et rôles Azure Resource Manager

Chaos Studio comporte les opérations suivantes :

Operation Description
Microsoft.Chaos/targets/[Read,Write,Delete] Obtenir, créer, mettre à jour ou supprimer une cible.
Microsoft.Chaos/targets/capabilities/[Read,Write,Delete] Obtenir, créer, mettre à jour ou supprimer une fonctionnalité.
Microsoft.Chaos/locations/targetTypes/Read Obtenir tous les types de cibles.
Microsoft.Chaos/locations/targetTypes/capabilityTypes/Read Obtenir tous les types de fonctionnalités.
Microsoft.Chaos/experiments/[Read,Write,Delete] Obtenir, créer, mettre à jour ou supprimer une expérience de chaos.
Microsoft.Chaos/experiments/start/action Démarrer une expérience de chaos.
Microsoft.Chaos/experiments/cancel/action Arrêter une expérience de chaos.
Microsoft.Chaos/experiments/statuses/Read Obtenir l’état d’exécution d’une expérience de chaos.
Microsoft.Chaos/experiments/executionDetails/Read Obtenir les détails de l’exécution (état et erreurs de chaque action) d’une expérience de chaos.

Pour affecter de façon précise ces autorisations, vous pouvez créer un rôle personnalisé.

Sécurité du réseau

Toutes les interactions utilisateur avec Chaos Studio se produisent par l’intermédiaire d’Azure Resource Manager. Si un utilisateur démarre une expérience, celle-ci peut interagir avec d’autres points de terminaison que Resource Manager, selon l’erreur :

  • Erreurs directes de service : la plupart des erreurs directes de service sont produites via Azure Resource Manager et ne nécessitent pas de points de terminaison réseau placés dans une liste d’autorisation.
  • Erreurs directes de service Chaos Mesh pour AKS : les erreurs directes de service pour Azure Kubernetes Service utilisant Chaos Mesh nécessitent l’accès au serveur d’API Kubernetes du cluster AKS.
  • Erreurs basées sur un agent : pour utiliser des erreurs basées sur un agent, l’agent a besoin d’un accès au service de l’agent Chaos Studio. Une machine virtuelle ou un groupe de machines virtuelles identiques doit avoir un accès de trafic sortant à un point de terminaison du service de l’agent pour que l’agent puisse se connecter. Le point de terminaison de service de l’agent est https://acs-prod-<region>.chaosagent.trafficmanager.net. Vous devez remplacer l’espace réservé <region> par la région où votre machine virtuelle est déployée. https://acs-prod-eastus.chaosagent.trafficmanager.net est un exemple pour une machine virtuelle dans la région USA Est.
  • Mise en réseau privée basée sur un agent : l’agent Chaos Studio prend désormais en charge la mise en réseau privée. Consultez Mise en réseau privée pour l’agent Chaos.

Balises de service

Une étiquette de service est un groupe de préfixes d’adresse IP qui peuvent être affectés à des règles de trafic entrant et sortant pour des groupes de sécurité réseau. Elles gèrent automatiquement les mises à jour du groupe de préfixes d’adresses IP, sans aucune intervention de votre part.

Vous pouvez utiliser des étiquettes de service pour autoriser explicitement le trafic entrant depuis Chaos Studio sans avoir à connaître les adresses IP de la plateforme. L’étiquette de service de Chaos Studio est ChaosStudio.

Une limitation des étiquettes de service est qu’elles peuvent être utilisées seulement avec des applications qui ont une adresse IP publique. Si une ressource a seulement une adresse IP privée, les étiquettes de service ne peuvent pas router le trafic vers celle-ci.

Chiffrement des données

Chaos Studio chiffre toutes les données par défaut. Chaos Studio accepte seulement les entrées pour les propriétés système, telles que les ID d’objets d’identité managée, les noms d’expérience/d’étape/de branche et les paramètres d’erreur. Par exemple, la plage de ports réseau à bloquer dans une erreur de déconnexion du réseau.

Ces propriétés ne doivent pas être utilisées pour stocker des données sensibles, comme des informations de paiement ou des mots de passe. Pour plus d’informations sur la façon dont Chaos Studio protège vos données, consultez Protection des données des clients Azure.

Customer Lockbox

Lockbox vous permet d’approuver ou de rejeter la demande d’un ingénieur Microsoft pour accéder à vos données lors d’une demande de support.

Lockbox peut être activé pour les informations des expériences de chaos, et l’autorisation d’accéder aux données est accordée par le client au niveau de l’abonnement si Lockbox est activé.

En savoir plus sur Customer Lockbox pour Microsoft Azure

Étapes suivantes

Maintenant que vous savez comment sécuriser votre expérience de chaos, vous êtes prêt à :