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 de modification 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 qui est 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 qui est 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(s) rôle(s) minimal(aux) de contrôle d’accès en fonction du rôle (RBAC) requis pour remédier aux 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. Lors de l’utilisation d’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’impacte pas son fonctionnement avec Azure Policy.

Notes

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

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 l’exemple deployIfNotExists ou les exemples 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 n’accepte pas le roleName court du rôle. Pour obtenir l’ID du rôle « Contributeur » dans votre environnement, utilisez le code suivant Azure CLI :

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

Lorsque 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 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.

Screenshot of a policy assignment creating a system-assigned managed identity in East US with Log Analytics Contributor permissions.

Pour définir une identité managée affectée par le système dans le portail :

  1. 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é.

  2. Spécifiez l’emplacement où l’identité managée doit être placée.

  3. 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 :

  1. 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é.

  2. 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.

  3. 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 ou modify 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 :

  1. Lancez le service Azure Policy dans le portail Azure en sélectionnant Tous les services, puis en recherchant et en cliquant sur Stratégie.

  2. Sélectionnez Affectations du côté gauche de la page Azure Policy.

  3. Recherchez l’affectation qui a une identité managée, puis sélectionnez le nom.

  4. Rechercher la propriété ID de l’affectation dans la page de modification. L’ID d’affectation est semblable à ceci :

    /subscriptions/{subscriptionId}/resourceGroups/PolicyTarget/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.

  5. 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.

  6. 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.

  7. Sélectionnez le rôle approprié qui correspond à un roleDefinitionId dans la définition de stratégie. Laissez Attribuer l’accès à sur la valeur par défaut « Utilisateur, groupe ou application Azure AD ». 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.

Screenshot of searching for Policy in All Services.

É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

  1. Sélectionnez Correction sur le côté gauche de la page Azure Policy.

    Screenshot of the Remediation node on the Policy page.

  2. Toutes les affectations de stratégie deployIfNotExists et modify sont affichées sous l’onglet Stratégies à corriger. Sélectionnez-en une avec des ressources qui ne sont pas conformes pour ouvrir la page Nouvelle tâche de correction.

  3. 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

  1. Sélectionnez Conformité dans la partie gauche de la page Azure Policy.

  2. Sélectionnez une affectation de stratégie ou d’initiative non conforme contenant des effets deployIfNotExists ou modify.

  3. 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.

  4. 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.

Notes

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.

  1. À 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.

  2. 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.

  3. 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.

  1. 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 ou modify peut être corrigée par le biais d’une seule tâche de correction à la fois.

  2. 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.

  3. 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.

    Screenshot of the Remediate node and the grid of resources to remediate.

  4. 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.

    Screenshot of the Remediation tasks tab and progress of existing remediation tasks.

Étape 3 : Suivre la progression de la tâche de correction

  1. Accédez à l’onglet Tâches de correction dans la page Correction. Cliquez sur une tâche de correction pour afficher des détails sur le filtrage utilisé, l’état actuel et une liste de ressources corrigées.

  2. 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.

    Screenshot of the context menu for a resource on the Remediate task tab.

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