Déterminer les causes de non-conformité

Lorsqu'une ressource Azure est jugée non conforme par rapport à une règle de stratégie, il est important d'identifier la partie de la règle concernée. Il est également important d'identifier la modification qui a transformé une ressource conforme en ressource non conforme. Pour ce faire, il existe deux moyens :

Détails de conformité

Lorsqu’une ressource est non conforme, les détails de conformité de cette ressource sont disponibles sur la page Conformité à la stratégie. Le volet relatif aux détails de conformité comprend les informations suivantes :

  • Détails de la ressource tels que son nom, son type, son emplacement et son identifiant.
  • État de conformité et timestamp de la dernière évaluation ayant trait à l'attribution de stratégie actuelle.
  • Liste des motifs de non-conformité de la ressource.

Important

Les détails de conformité d'une ressource non conforme affichant la valeur actuelle des propriétés qui s'y rapportent, l’utilisateur doit pouvoir utiliser une opération en lecture pour le type de ressource. Par exemple, si la ressource non conforme est Microsoft.Compute/virtualMachines alors que l’utilisateur doit avoir l’opération Microsoft.Compute/virtualMachines/read. Dans le cas contraire, une erreur d'accès s'affiche.

Pour afficher les détails de conformité, procédez comme suit :

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

  2. Sur la page Vue d'ensemble ou Conformité, sélectionnez une stratégie affichant un état de conformitéNon conforme.

  3. Dans l’onglet Conformité des ressources de la page Conformité à la stratégie, sélectionnez et maintenez (ou cliquez avec le bouton droit) ou sélectionnez les points de suspension d’une ressource affichant un état de conformiténon conforme. Sélectionnez ensuite Afficher les détails de la conformité.

    Screenshot of the View compliance details link on the Resource compliance tab.

  4. Le volet Détails de conformité affiche des informations issues de la dernière évaluation de la ressource ayant trait à l'attribution de stratégie actuelle. Dans cet exemple, le champ Microsoft.Sql/servers/version indique 12.0 alors que la définition de la stratégie attendait 14.0. Si la ressource est non conforme pour plusieurs raisons, ces différentes raisons sont répertoriées dans ce volet.

    Screenshot of the Compliance details pane and reasons for non-compliance that current value is 12 and target value is 14.

    Pour une auditIfNotExists ou deployIfNotExists définition de stratégie, les détails incluent la propriété details.type et toutes les propriétés facultatives. Pour une liste, consultez Propriétés auditIfNotExists et Propriétés deployIfNotExists. Dernière ressource évaluée correspond à une ressource liée dans la section Détails de la définition.

    Exemple de définition deployIfNotExists partielle :

    {
      "if": {
        "field": "type",
        "equals": "[parameters('resourceType')]"
      },
      "then": {
        "effect": "deployIfNotExists",
        "details": {
          "type": "Microsoft.Insights/metricAlerts",
          "existenceCondition": {
            "field": "name",
            "equals": "[concat(parameters('alertNamePrefix'), '-', resourcegroup().name, '-', field('name'))]"
          },
          "existenceScope": "subscription",
          "deployment": {
            ...
          }
        }
      }
    }
    

    Screenshot of Compliance details pane for ifNotExists including evaluated resource count.

Remarque

Pour protéger les données, lorsqu’une valeur de propriété correspond à un secret, la valeur actuelle est remplacée par des astérisques.

Ces détails expliquent les raisons pour lesquelles une ressource est actuellement non conforme, mais n'indiquent pas le moment où la modification apportée à la ressource l'a rendue non conforme. Pour plus d’informations, consultez Historique des modifications (préversion).

Motifs de conformité

Les modes gestionnaire des ressources et les modes fournisseur de ressources ont chacun des raisons de non-conformité.

Raisons générales de conformité du mode gestionnaire des ressources

Le tableau suivant mappe chaque raison du mode Resource Manager à la condition responsable dans la définition de stratégie :

Motif Condition
La valeur actuelle doit contenir la valeur cible en tant que clé. containsKey ou not notContainsKey
La valeur actuelle doit contenir la valeur cible. contains ou not notContains
La valeur actuelle doit être égale à la valeur cible. equals ou not notEquals
La valeur actuelle doit être inférieure à la valeur cible. less ou not greaterOrEquals
La valeur actuelle doit être supérieure ou égale à la valeur cible. greaterOrEquals ou not less
La valeur actuelle doit être supérieure à la valeur cible. greater ou not lessOrEquals
La valeur actuelle doit être inférieure ou égale à la valeur cible. lessOrEquals ou not greater
La valeur actuelle doit exister. exists
La valeur actuelle doit être dans la valeur cible. in ou not notIn
La valeur actuelle doit être identique à la valeur cible. like ou not notLike
La valeur actuelle doit correspondre à la valeur cible (sensibilité à la casse). match ou not notMatch
La valeur actuelle doit correspondre à la valeur cible (non-sensibilité à la casse). matchInsensitively ou not notMatchInsensitively
La valeur actuelle ne doit pas contenir la valeur cible en tant que clé. notContainsKey ou not containsKey
La valeur actuelle ne doit pas contenir la valeur cible. notContains ou not contains
La valeur actuelle ne doit pas être égale à la valeur cible. notEquals ou not equals
La valeur actuelle ne doit pas exister. not exists
La valeur actuelle ne doit pas être dans la valeur cible. notIn ou not in
La valeur actuelle ne doit pas être identique à la valeur cible. notLike ou not like
La valeur actuelle ne doit pas correspondre à la valeur cible (sensibilité à la casse). notMatch ou not match
La valeur actuelle ne doit pas correspondre à la valeur cible (non-sensibilité à la casse). notMatchInsensitively ou not matchInsensitively
Aucune ressource associée ne correspond aux détails de l'effet dans la définition de stratégie. Aucune ressource du type défini dans then.details.type n'est associée à la ressource définie dans la portion if.

Raisons de conformité du mode fournisseur de ressources Azure Policy

Le tableau suivant mappe chaque code de raison de Microsoft.PolicyInsightsmode de fournisseur de ressources à son explication correspondante :

Code de raison de la conformité Message d’erreur et explication
NonModifiablePolicyAlias NonModifiableAliasConflict : l’alias « {alias} » n’est pas modifiable dans les requêtes utilisant la version d’API « {apiVersion} ». Cette erreur se produit lorsqu’une requête utilisant une version d’API où l’alias ne prend pas en charge l’effet « modifier » ou prend uniquement en charge l’effet « modifier » avec un autre type de jeton.
AppendPoliciesNotApplicable AppendPoliciesUnableToAppend : les alias : « { alias } » ne sont pas modifiables dans les requêtes utilisant la version d’API : « { apiVersion } ». Cela peut se produire dans les requêtes utilisant des versions d’API pour lesquelles les alias ne prennent pas en charge l’effet « modifier » ou prennent en charge l’effet « modifier » avec un autre type de jeton.
ConflictingAppendPolicies ConflictingAppendPolicies : affectations de stratégie en conflit qui modifient le champ « {notApplicableFields} ». Identificateurs de stratégie : « {policy} ». Contactez l’administrateur de l’abonnement pour mettre à jour les affectations de stratégie.
AppendPoliciesFieldsExist AppendPoliciesFieldsExistWithDifferentValues : les affectations de stratégie ont tenté d’ajouter des champs qui existent déjà dans la requête avec des valeurs différentes. Champs : « {existingFields} ». Identificateurs de stratégie : « {policy} ». Contactez l’administrateur de l’abonnement pour mettre à jour les stratégies.
AppendPoliciesUndefinedFields AppendPoliciesUndefinedFields : définition de stratégie trouvée qui fait référence à une propriété de champ non définie pour la version d’API « {apiVersion} ». Champs : « {nonExistingFields} ». Identificateurs de stratégie : « {policy} ». Contactez l’administrateur de l’abonnement pour mettre à jour les stratégies.
MissingRegistrationForType MissingRegistrationForResourceType : l’abonnement n’est pas inscrit pour le type de ressource « {ResourceType} ». Vérifiez que le type de ressource existe et que le type de ressource est inscrit.
AmbiguousPolicyEvaluationPaths Le contenu de la demande a un ou plusieurs chemins ambigus : « {0} » est nécessaire pour les stratégies : « {1} ».
InvalidResourceNameWildcardPosition L’affectation de stratégie « {0} » associée à la définition de stratégie « {1} » n’a pas pu être évaluée. Le nom de ressource « {2} » dans une condition ifNotExists contient le caractère générique « ? » dans une position non valide. Les caractères génériques ne peuvent être situés qu’à la fin du nom dans un segment par eux-mêmes (par exemple, TopLevelResourceName/?). Corrigez la stratégie ou supprimez l’affectation de stratégie pour débloquer.
TooManyResourceNameSegments L’affectation de stratégie « {0} » associée à la définition de stratégie « {1} » n’a pas pu être évaluée. Le nom de ressource «{2} » dans une condition ifNotExists contient trop de segments de noms. Le nombre de segments de nom doit être égal ou inférieur au nombre de segments de type (à l’exclusion de l’espace de noms du fournisseur de ressources). Corrigez la définition de stratégie ou supprimez l’affectation de stratégie pour débloquer.
InvalidPolicyFieldPath Le chemin d’accès au champ «{0} » dans la définition de stratégie n’est pas valide. Les chemins d’accès aux champs ne doivent contenir aucun segment vide. Ils peuvent contenir uniquement des caractères alphanumériques à l’exception du caractère « . » pour fractionner des segments et la séquence de caractères « [*] » pour accéder aux propriétés du tableau.

Raisons de conformité du mode fournisseur de ressources AKS

Le tableau suivant mappe chaque raison du mode Fournisseur de ressourcesMicrosoft.Kubernetes.Data à l’état responsable du modèle de contrainte dans la définition de stratégie :

Motif Description du motif du modèle de contrainte
Constraint/TemplateCreateFailed La ressource n’a pas pu être créée pour une définition de stratégie avec une contrainte/un modèle qui ne correspond pas à une contrainte/un modèle existant sur le cluster par nom des métadonnées de ressource.
Constraint/TemplateUpdateFailed La mise à jour de la contrainte/du modèle a échoué pour une définition de stratégie avec une contrainte/un modèle qui correspond à un modèle/contrainte existant sur le cluster par le nom des métadonnées de ressource.
Constraint/TemplateInstallFailed La génération de la contrainte/du modèle a échoué, et ils n’ont pas pu être installés sur le cluster pour une opération de création ou de mise à jour.
ConstraintTemplateConflicts Le modèle est en conflit avec une ou plusieurs définitions de stratégie utilisant le même nom de modèle avec une source différente.
ConstraintStatusStale Il existe un état « Audit » existant, mais Gatekeeper n’a pas effectué d’audit au cours de la dernière heure.
ConstraintNotProcessed Il n’y a pas d’état, et Gatekeeper n’a pas effectué d’audit au cours de la dernière heure.
InvalidConstraint/Template La ressource a été rejetée pour l'une des raisons suivantes : contenu Rego du modèle de contrainte non valide, YAML non valide ou incompatibilité du type de paramètre entre la contrainte et le modèle de contrainte (fourniture d'une chaîne de caractères alors qu'un nombre entier était attendu).

Remarque

Pour les attributions de stratégie et les modèles de contrainte existants sur le cluster, si la contrainte/le modèle échoue, le cluster est protégé en conservant la contrainte/le modèle existant. Le cluster signale comme non conforme jusqu’à ce que la défaillance soit résolue sur l’attribution de stratégie ou les réparations spontanées du module complémentaire. Pour plus d’informations sur la gestion des conflits, consultez Conflits de modèle de contrainte.

Détails du composant pour les modes du fournisseur de ressources

Pour les affectations avec un mode Fournisseur de ressources, sélectionnez la ressource non conforme pour afficher ses enregistrements de conformité des composants. L’onglet Conformité des composants affiche plus d’informations spécifiques au mode fournisseur de ressources, comme le nom du composant, l’ID de composant et le type.

Screenshot of Component Compliance dashboard and compliance details for assignments with a Resource Provider mode.

Détails de conformité pour la configuration invité

Pour les définitions de stratégie de la catégorie Configuration d’invité, plusieurs paramètres peuvent être évalués dans la machine virtuelle et vous devez examiner les détails par paramètre. Par exemple, si vous effectuez un audit pour obtenir la liste des paramètres de sécurité et qu’une seule d’entre-elles a l’état Non conforme, vous devez connaître les paramètres de sécurité spécifiques qui ne sont pas conformes et la raison à cela.

Vous ne serez peut-être pas autorisé à vous connecter directement à la machine virtuelle, mais devrez indiquer pourquoi elle est Non conforme.

Portail Azure

Commencez par suivre les étapes de la section Détails de conformité pour afficher les détails de conformité à la stratégie.

Dans le volet Détails de conformité, sélectionnez le lien Dernière ressource évaluée.

Screenshot of viewing the auditIfNotExists definition compliance details.

La page Affectation d'invité affiche les détails de conformité disponibles. Chaque ligne de la vue représente une évaluation effectuée au sein de la machine. Dans la colonne Raison, une phrase s’affiche pour décrire la raison pour laquelle l’attribution d’invité est Non conforme. Par exemple, si vous auditez les stratégies de mot de passe, la colonne Raison affiche du texte, dont la valeur actuelle de chaque paramètre.

Screenshot of the Guest Assignment compliance details.

Afficher les détails d’attribution de configuration à grande échelle

Vous pouvez utiliser la fonctionnalité de configuration d’invité en dehors des affectations Azure Policy. Par exemple, Azure Automanage crée des affectations de configuration d’invité, ou vous pouvez affecter des configurations quand vous déployez des machines.

Pour afficher toutes les affectations de configuration d’invité dans votre locataire, dans le portail Azure, ouvrez la page Affectations d’invités. Pour afficher les informations de conformité détaillées, sélectionnez chaque affectation en utilisant le lien figurant dans la colonne Nom.

Screenshot of the Guest Assignment page.

Historique des changements (préversion)

Dans le cadre d’une nouvelle préversion publique, l'historique des modifications des 14 derniers jours est disponible pour toutes les ressources Azure prenant en charge la suppression du mode. L'historique des modifications indique quand une modification a été détectée et fournit un différentiel visuel pour chaque modification. Une détection de modification est déclenchée lorsque les propriétés Azure Resource Manager sont ajoutées, supprimées ou modifiées.

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

  2. Sur la page Vue d'ensemble ou Conformité, sélectionnez une stratégie dans un état de conformité.

  3. Dans l'onglet Conformité des ressources de la page Conformité à la stratégie, sélectionnez une ressource.

  4. Sélectionnez l'onglet Historique des modifications (préversion) de la page Conformité des ressources. La liste des modifications détectées, le cas échéant, s'affiche.

    Screenshot of the Change History tab and detected change times on Resource Compliance page.

  5. Sélectionnez une des modifications détectées. Le différentiel visuel de la ressource est présenté sur la page Historique des modifications.

    Screenshot of the Change History Visual Diff of the before and after state of properties on the Change history page.

    Le différentiel visuel aide à identifier les modifications apportées à une ressource. Les modifications détectées peuvent ne pas être liées à l’état de conformité actuel de la ressource.

Les données de l'historique des modifications sont fournies par Azure Resource Graph. Pour interroger ces informations en dehors du portail Azure, consultez Obtenir les modifications des ressources.

Étapes suivantes