Corriger les ressources non conformes avec Azure Policy
Les ressources qui ne sont pas conformes à des stratégies avec des effets deployIfNotExists
ou modify
peuvent être placées dans un état conforme par le biais d’une correction. La correction s’effectue via des tâches de correction qui déploient le modèle deployIfNotExists
ou les opérations modify
de la stratégie attribuée sur vos ressources et abonnements existants, que cette attribution s’adresse à un groupe d’administration, à un abonnement, à un groupe de ressources ou à une ressource individuelle. Cet article explique les étapes nécessaires pour comprendre et exécuter des corrections avec Azure Policy.
Fonctionnement du contrôle d’accès de correction
Quand Azure Policy démarre le déploiement d’un modèle lors de l’évaluation des stratégies deployIfNotExists
ou modifie une ressource lors de l’évaluation des stratégies modify
, il le fait en utilisant une identité managée associée à l’affectation de stratégie. Les attributions de stratégie utilisent des identités managées pour l’autorisation des ressources Azure. Vous pouvez utiliser une identité managée affectée par le système créée par le service de stratégie ou une identité affectée par l’utilisateur fournie par l’utilisateur. L’identité managée doit se voir attribuer le rôle minimal de contrôle d’accès en fonction du rôle Azure (Azure RBAC) requis pour corriger les ressources. S’il manque des rôles à l’identité managée, une erreur est affichée dans le portail durant l’affectation de la stratégie ou d’une initiative. Quand vous utilisez le portail, une fois l’affectation lancée, Azure Policy accorde automatiquement à l’identité managée les rôles listés. Quand vous utilisez un Kit de développement logiciel (SDK) Azure, les rôles doivent être accordés manuellement à l’identité managée. La localisation de l’identité managée n’affecte pas son fonctionnement avec Azure Policy.
Remarque
La modification d’une définition de stratégie ne met pas automatiquement à jour l’attribution ou l’identité managée associée.
La sécurité des corrections peut être configurée en procédant comme suit :
- Configurer la définition de stratégie
- Configurer l’identité managée
- Accorder des autorisations à l’identité managée via des rôles définis
- Créer une tâche de correction
Configurer la définition de stratégie
En tant que prérequis, la définition de stratégie doit définir les rôles dont deployIfNotExists
et modify
ont besoin pour déployer correctement le contenu du modèle inclus. Aucune action n’est requise pour une définition de stratégie intégrée, car ces rôles sont préremplis. Pour une définition de stratégie personnalisée, sous la propriété details
, ajoutez une propriété roleDefinitionIds
. Il s’agit d’un tableau de chaînes qui correspondent à des rôles dans votre environnement. Pour obtenir un exemple complet, consultez deployIfNotExists ou modify.
"details": {
...
"roleDefinitionIds": [
"/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
"/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
]
}
La propriété roleDefinitionIds
utilise l’identificateur de ressource complet et ne prend pas le roleName
court du rôle. Pour obtenir l’ID du rôle Contributeur dans votre environnement, utilisez le code Azure CLI suivant :
az role definition list --name "Contributor"
Important
Les autorisations doivent être limitées au plus petit ensemble possible lors de la définition de roleDefinitionIds
dans une définition de stratégie ou de l’affectation manuelle d’autorisations à une identité managée. Pour d’autres bonnes pratiques, consultez les recommandations relatives aux identités managées.
Configurer l’identité managée
Chaque affectation Azure Policy peut être associée à une seule identité managée. Toutefois, l’identité managée peut être affectée à plusieurs rôles. La configuration se produit en deux étapes : créez d’abord une identité managée affectée par le système ou affectée par l’utilisateur, puis accordez-lui les rôles nécessaires.
Notes
Lors de la création d’une identité managée via le portail, les rôles sont accordés automatiquement à l’identité managée. Si roleDefinitionIds
est modifié ultérieurement dans la définition de stratégie, les nouvelles autorisations doivent être accordées manuellement, même dans le portail.
Créer l’identité managée
Quand vous créez une affectation à l’aide du portail, Azure Policy peut générer une identité managée affectée par le système et lui accorder les rôles définis dans le roleDefinitionIds
de la définition de stratégie. Vous pouvez également spécifier une identité managée affectée par l’utilisateur qui reçoit la même attribution de rôle.
Pour définir une identité managée affectée par le système dans le portail :
Sous l’onglet Correction de la vue Créer/modifier une affectation, sous Types d’identités managées, vérifiez que Identité managée affectée par le système est sélectionné.
Spécifiez l’emplacement où l’identité managée doit être placée.
N’attribuez pas d’étendue pour l’identité managée affectée par le système, car l’étendue est héritée de l’étendue d’affectation.
Pour définir une identité managée affectée par l’utilisateur dans le portail :
Sous l’onglet Correction de la vue Créer/modifier une affectation, sous Types d’identités managées, vérifiez que Identité managée affectée par l’utilisateur est sélectionné.
Spécifiez l’étendue dans laquelle l’identité managée est hébergée. Il n’est pas nécessaire que l’étendue de l’identité managée soit équivalente à l’étendue de l’affectation, mais elle doit être dans le même locataire.
Sous Identités affectées par l’utilisateur existantes, sélectionnez l’identité managée.
Accorder des autorisations à l’identité managée via des rôles définis
Important
Si l’identité managée ne dispose pas des autorisations nécessaires pour exécuter la tâche de correction requise, les autorisations ne seront accordées automatiquement que via le portail. Vous pouvez ignorer cette étape si vous créez une identité managée via le portail.
Pour toutes les autres méthodes, l’identité managée de l’affectation doit être accordée manuellement à l’aide de l’ajout de rôles. Sinon, le déploiement de correction échouera.
Exemples de scénarios nécessitant des autorisations manuelles :
- Si l’affectation est créée via un kit de développement logiciel Azure (SDK)
- Si une ressource modifiée par
deployIfNotExists
oumodify
est en dehors de l’étendue de l’affectation de stratégie - Si le modèle accède à des propriétés sur des ressources en dehors de l’étendue de l’affectation de stratégie
À l’aide du portail, vous pouvez accorder les rôles définis à l’identité managée d’une affectation de deux façons : en utilisant la gestion des identités et des accès ou en modifiant l’affectation de la stratégie ou d’une initiative et en sélectionnant Enregistrer.
Pour ajouter un rôle à l’identité managée de l’affectation, effectuez les étapes suivantes :
Lancez le service Azure Policy dans le portail Azure en sélectionnant Tous les services, puis en recherchant et en cliquant sur Stratégie.
Sélectionnez Affectations du côté gauche de la page Azure Policy.
Recherchez l’affectation qui a une identité managée, puis sélectionnez le nom.
Rechercher la propriété ID de l’affectation dans la page de modification. L’ID d’affectation ressemble à celui de l’exemple suivant :
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5
Le nom de l’identité managée est la dernière partie de l’ID de ressource d’affectation, c’est-à-dire
2802056bfc094dfb95d4d7a5
dans cet exemple. Copiez cette partie de l’ID de ressource d’affectation.Accédez à la ressource ou au conteneur de ressources parent (groupe de ressources, abonnement, groupe d’administration) auquel la définition de rôle doit être ajoutée manuellement.
Sélectionnez le lien Contrôle d’accès (IAM) dans la page des ressources, puis sélectionnez + Ajouter une attribution de rôle en haut de la page du contrôle d’accès.
Sélectionnez le rôle approprié qui correspond à un
roleDefinitionIds
dans la définition de stratégie. Laissez Attribuer l’accès à défini sur la valeur par défaut, à savoir « Utilisateur, groupe ou application ». Dans la zone Sélectionner, collez ou tapez la partie de l’ID de ressource d’affectation trouvée plus haut. Une fois la recherche terminée, sélectionnez l’objet portant le même nom pour sélectionner l’ID, puis sélectionnez Enregistrer.
Créer une tâche de correction
Lancez le service Azure Policy dans le portail Azure en sélectionnant Tous les services, puis en recherchant et en sélectionnant Policy.
Étape 1 : Lancer la création d’une tâche de correction
Il existe trois façons de créer une tâche de correction via le portail.
Option 1 : Créer une tâche de correction à partir de la page Correction
Sélectionnez Correction sur le côté gauche de la page Azure Policy.
Toutes les affectations de stratégie
deployIfNotExists
etmodify
sont affichées sous l’onglet Stratégies à corriger. Sélectionnez-en une avec des ressources non conformes pour ouvrir la page Nouvelle tâche de correction.Suivez les étapes pour spécifier les détails de la tâche de correction.
Option 2 : Créer une tâche de correction à partir d’une attribution de stratégie non conforme
Sélectionnez Conformité dans la partie gauche de la page Azure Policy.
Sélectionnez une affectation de stratégie ou d’initiative non conforme contenant des effets
deployIfNotExists
oumodify
.Sélectionnez le bouton Créer une tâche de correction en haut de la page pour ouvrir la page Nouvelle tâche de correction.
Suivez les étapes pour spécifier les détails de la tâche de correction.
Option 3 : Créer une tâche de correction pendant l’attribution de stratégie
Si la définition de stratégie ou d’initiative à affecter a un effet deployIfNotExists
ou modify
, l’onglet Correction de l’Assistant offre une option Créer une tâche de correction, ce qui crée une tâche de correction en même temps que l’attribution de stratégie.
Remarque
Il s’agit de l’approche la plus rationalisée pour la création d’une tâche de correction et elle est prise en charge pour les stratégies affectées sur un abonnement. Pour les stratégies affectées sur un groupe d’administration, les tâches de correction doivent être créées à l’aide de l’option 1 ou de l’option 2 après que l’évaluation a déterminé la conformité des ressources.
À partir de l’Assistant Affectation dans le portail, accédez à l’onglet Correction. Activez la case à cocher pour créer une tâche de correction.
Si la tâche de correction est lancée à partir d’une affectation d’initiative, sélectionnez la stratégie à corriger dans la liste déroulante.
Configurez l’identité managée et renseignez le reste de l’Assistant. La tâche de correction est créée lors de la création de l’affectation.
Étape 2 : Spécifier les détails de la tâche de correction
Cette étape s’applique uniquement lors de l’utilisation de l’option 1 ou de l’option 2 pour lancer la création d’une tâche de correction.
Si la tâche de correction est lancée à partir d’une affectation d’initiative, sélectionnez la stratégie à corriger dans la liste déroulante. Une stratégie
deployIfNotExists
oumodify
peut être corrigée par le biais d’une seule tâche de correction à la fois.Modifiez éventuellement les paramètres de correction dans la page. Pour plus d’informations sur les contrôles de chaque paramètre, consultez l’article Structure des tâches de correction.
Dans la même page, filtrez les ressources à corriger à l’aide des points de suspension de l’option Étendue pour sélectionner les ressources enfants à partir de l’endroit où la stratégie est affectée (y compris jusqu’aux objets de ressource individuels). En outre, utilisez la liste déroulante Emplacements pour filtrer davantage les ressources.
Lancez la tâche de correction une fois les ressources filtrées en sélectionnant Corriger. La page de conformité à la stratégie s’ouvre sur l’onglet Tâches de correction, qui affiche l’état de la progression des tâches. Les déploiements créés par la tâche de correction commencent immédiatement.
Étape 3 : Suivre la progression de la tâche de correction
Accédez à l’onglet Tâches de correction dans la page Correction. Sélectionnez une tâche de correction pour afficher des détails sur le filtrage utilisé, l’état actuel et une liste de ressources corrigées.
Dans la page Tâche de correction, cliquez avec le bouton droit sur une ressource pour afficher le déploiement de la tâche de correction ou la ressource. À la fin de la ligne, sélectionnez Événements associés pour voir des détails tels qu’un message d’erreur.
Les ressources déployées par le biais d’une tâche de correction sont ajoutées à l’onglet Ressources déployées sur la page des détails d’affectation de stratégie.
Étapes suivantes
- Consultez des exemples à la page Exemples Azure Policy.
- Consultez la Structure de définition Azure Policy.
- Consultez la page Compréhension des effets de Policy.
- Découvrez comment créer des stratégies par programmation.
- Découvrez comment obtenir des données de conformité.
- Pour en savoir plus sur les groupes d’administration, consultez Organiser vos ressources avec des groupes d’administration Azure.