Déterminer les causes de non-conformitéDetermine causes of non-compliance

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.When an Azure resource is determined to be non-compliant to a policy rule, it's helpful to understand which portion of the rule the resource isn't compliant with. Il est également important d'identifier la modification qui a transformé une ressource conforme en ressource non conforme.It's also useful to understand what change altered a previously compliant resource to make it non-compliant. Pour ce faire, il existe deux moyens :There are two ways to find this information:

Détails de conformitéCompliance details

Lorsqu’une ressource est non conforme, les détails de conformité de cette ressource sont disponibles sur la page Conformité à la stratégie.When a resource is non-compliant, the compliance details for that resource are available from the Policy compliance page. Le volet relatif aux détails de conformité comprend les informations suivantes :The compliance details pane includes the following information:

  • Détails de la ressource tels que son nom, son type, son emplacement et son IDResource details such as name, type, location, and resource ID
  • État de conformité et timestamp de la dernière évaluation ayant trait à l'attribution de stratégie actuelleCompliance state and timestamp of the last evaluation for the current policy assignment
  • Liste des motifs de non-conformité de la ressourceA list of reasons for the resource non-compliance

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.As the compliance details for a Non-compliant resource shows the current value of properties on that resource, the user must have read operation to the type of resource. Par exemple, si la ressource non conforme est Microsoft.Compute/virtualmachines, l’utilisateur doit pouvoir utiliser l'opération Microsoft.Compute/virtualMachines/read.For example, if the Non-compliant resource is Microsoft.Compute/virtualMachines then the user must have the Microsoft.Compute/virtualMachines/read operation. Dans le cas contraire, une erreur d'accès s'affiche.If the user doesn't have the needed operation, an access error is displayed.

Pour afficher les détails de conformité, procédez comme suit :To view the compliance details, follow these steps:

  1. Lancez le service Azure Policy dans le portail Azure en cliquant sur Tous les services, puis en recherchant et en cliquant sur Stratégie.Launch the Azure Policy service in the Azure portal by clicking All services, then searching for and selecting Policy.

  2. Sur la page Vue d'ensemble ou Conformité, sélectionnez une stratégie affichant un état de conformitéNon conforme.On the Overview or Compliance page, select a policy in a compliance state that is Non-compliant.

  3. Sous l'onglet Conformité des ressources de la page Conformité à la stratégie, cliquez avec le bouton droit ou sélectionnez les points de suspension d’une ressource affichant un état de conformiténon conforme.Under the Resource compliance tab of the Policy compliance page, right-click or select the ellipsis of a resource in a compliance state that is Non-compliant. Sélectionnez ensuite Afficher les détails de la conformité.Then select View compliance details.

    Option Afficher les détails de la conformité

  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.The Compliance details pane displays information from the latest evaluation of the resource to the current policy assignment. Dans cet exemple, le champ Microsoft.Sql/servers/version indique 12.0 alors que la définition de la stratégie attendait 14.0.In this example, the field Microsoft.Sql/servers/version is found to be 12.0 while the policy definition expected 14.0. Si la ressource est non conforme pour plusieurs raisons, ces différentes raisons sont répertoriées dans ce volet.If the resource is non-compliant for multiple reasons, each is listed on this pane.

    Volet Détails de conformité et motifs de non conformité

    Pour une définition de stratégie auditIfNotExists ou deployIfNotExists, les détails incluent la propriété details.type et autres propriétés facultatives.For an auditIfNotExists or deployIfNotExists policy definition, the details include the details.type property and any optional properties. Pour une liste, consultez Propriétés auditIfNotExists et Propriétés deployIfNotExists.For a list, see auditIfNotExists properties and deployIfNotExists properties. Dernière ressource évaluée correspond à une ressource liée dans la section Détails de la définition.Last evaluated resource is a related resource from the details section of the definition.

    Exemple de définition partielle deployIfNotExists :Example partial deployIfNotExists definition:

    {
        "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": {
                    ...
                }
            }
        }
    }
    

    Volet Détails de conformité - *ifNotExists

Notes

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.To protect data, when a property value is a secret the current value displays asterisks.

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.These details explain why a resource is currently non-compliant, but don't show when the change was made to the resource that caused it to become non-compliant. Pour plus d’informations, consultez Historique des modifications (préversion) ci-dessous.For that information, see Change history (Preview) below.

Motifs de conformitéCompliance reasons

La matrice suivante mappe chaque motif possible à la condition responsable dans la définition de stratégie :The following matrix maps each possible reason to the responsible condition in the policy definition:

MotifReason ConditionCondition
La valeur actuelle doit contenir la valeur cible en tant que clé.Current value must contain the target value as a key. containsKey ou not notContainsKeycontainsKey or not notContainsKey
La valeur actuelle doit contenir la valeur cible.Current value must contain the target value. contains ou not notContainscontains or not notContains
La valeur actuelle doit être égale à la valeur cible.Current value must be equal to the target value. equals ou not notEqualsequals or not notEquals
La valeur actuelle doit être inférieure à la valeur cible.Current value must be less than the target value. less ou not greaterOrEqualsless or not greaterOrEquals
La valeur actuelle doit être supérieure ou égale à la valeur cible.Current value must be greater than or equal to the target value. greaterOrEquals ou not lessgreaterOrEquals or not less
La valeur actuelle doit être supérieure à la valeur cible.Current value must be greater than the target value. greater ou not lessOrEqualsgreater or not lessOrEquals
La valeur actuelle doit être inférieure ou égale à la valeur cible.Current value must be less than or equal to the target value. lessOrEquals ou not greaterlessOrEquals or not greater
La valeur actuelle doit exister.Current value must exist. existsexists
La valeur actuelle doit être dans la valeur cible.Current value must be in the target value. in ou not notInin or not notIn
La valeur actuelle doit être identique à la valeur cible.Current value must be like the target value. like ou not notLikelike or not notLike
La valeur actuelle doit correspondre à la valeur cible (sensibilité à la casse).Current value must case-sensitive match the target value. match ou not notMatchmatch or not notMatch
La valeur actuelle doit correspondre à la valeur cible (non-sensibilité à la casse).Current value must case-insensitive match the target value. matchInsensitively ou not notMatchInsensitivelymatchInsensitively or not notMatchInsensitively
La valeur actuelle ne doit pas contenir la valeur cible en tant que clé.Current value must not contain the target value as a key. notContainsKey ou not containsKeynotContainsKey or not containsKey
La valeur actuelle ne doit pas contenir la valeur cible.Current value must not contain the target value. notContains ou not containsnotContains or not contains
La valeur actuelle ne doit pas être égale à la valeur cible.Current value must not be equal to the target value. notEquals ou not equalsnotEquals or not equals
La valeur actuelle ne doit pas exister.Current value must not exist. not existsnot exists
La valeur actuelle ne doit pas être dans la valeur cible.Current value must not be in the target value. notIn ou not innotIn or not in
La valeur actuelle ne doit pas être identique à la valeur cible.Current value must not be like the target value. notLike ou not likenotLike or not like
La valeur actuelle ne doit pas correspondre à la valeur cible (sensibilité à la casse).Current value must not case-sensitive match the target value. notMatch ou not matchnotMatch or not match
La valeur actuelle ne doit pas correspondre à la valeur cible (non-sensibilité à la casse).Current value must not case-insensitive match the target value. notMatchInsensitively ou not matchInsensitivelynotMatchInsensitively or not matchInsensitively
Aucune ressource associée ne correspond aux détails de l'effet dans la définition de stratégie.No related resources match the effect details in the policy definition. Aucune ressource du type défini dans then.details.type n'est associée à la ressource définie dans la portion if.A resource of the type defined in then.details.type and related to the resource defined in the if portion of the policy rule doesn't exist.

Détails de conformité pour Guest ConfigurationCompliance details for Guest Configuration

Pour les stratégies auditIfNotExists de la catégorie Guest Configuration, plusieurs paramètres peuvent être évalués dans la machine virtuelle et vous devez examiner les détails par paramètre.For auditIfNotExists policies in the Guest Configuration category, there could be multiple settings evaluated inside the VM and you'll need to view per-setting details. Par exemple, si vous effectuez un audit pour obtenir la liste des stratégies de mot de passe et qu’une seule d’entre-elles a l’état Non conforme, vous devez connaître les stratégies de mot de passe spécifiques qui ne sont pas conformes et pourquoi.For example, if you're auditing for a list of password policies and only one of them has status Non-compliant, you'll need to know which specific password policies are out of compliance and why.

Vous ne serez peut-être pas autorisé à vous connecter directement à la machine virtuelle, mais devrez indiquer pourquoi la machine virtuelle est Non conforme.You also might not have access to sign in to the VM directly but you need to report on why the VM is Non-compliant.

Portail AzureAzure portal

Commencez par suivre les étapes de la section ci-dessus pour afficher les détails de conformité à la stratégie.Begin by following the same steps in the section above for viewing policy compliance details.

Dans le volet Détails de conformité, cliquez sur le lien Dernière ressource évaluée.In the Compliance details pane view click the link Last evaluated resource.

Afficher les détails de la définition auditIfNotExists

La page Affectation d'invité affiche les détails de conformité disponibles.The Guest Assignment page displays all available compliance details. Chaque ligne de la vue représente une évaluation effectuée au sein de la machine.Each row in the view represents an evaluation that was performed inside the machine. Dans la colonne Raison, une phrase décrivant pourquoi l'attribution d'invité est Non conforme s’affiche.In the Reason column, a phrase describing why the Guest Assignment is Non-compliant is shown. 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.For example, if you're auditing password policies, the Reason column would display text including the current value for each setting.

Afficher les détails de conformité

Azure PowerShellAzure PowerShell

Vous pouvez également afficher les détails de conformité à partir d'Azure PowerShell.You can also view compliance details from Azure PowerShell. Assurez-vous tout d’abord que vous disposez bien du module Guest Configuration.First, make sure you have the Guest Configuration module installed.

Install-Module Az.GuestConfiguration

Vous pouvez afficher l’état actuel de toutes les attributions d’invités pour une machine virtuelle à l’aide de la commande suivante :You can view the current status of all Guest Assignments for a VM using the following command:

Get-AzVMGuestPolicyReport -ResourceGroupName <resourcegroupname> -VMName <vmname>
PolicyDisplayName                                                         ComplianceReasons
-----------------                                                         -----------------
Audit that an application is installed inside Windows VMs                 {[InstalledApplication]bwhitelistedapp}
Audit that an application is not installed inside Windows VMs.            {[InstalledApplication]NotInstalledApplica...

Pour afficher uniquement sous forme de phrase la raison qui explique pourquoi la machine virtuelle est non conforme, renvoyez uniquement la propriété enfant Raison.To view only the reason phrase that describes why the VM is Non-compliant, return only the Reason child property.

Get-AzVMGuestPolicyReport -ResourceGroupName <resourcegroupname> -VMName <vmname> | % ComplianceReasons | % Reasons | % Reason
The following applications are not installed: '<name>'.

Vous pouvez également générer un historique de conformité des attributions d’invités dans l’étendue de la machine.You can also output a compliance history for Guest Assignments in scope for the machine. La sortie de cette commande inclut les détails de chaque rapport portant sur la machine virtuelle.The output from this command includes the details of each report for the VM.

Notes

La sortie peut renvoyer un important volume de données.The output may return a large volume of data. Il est recommandé de stocker la sortie dans une variable.It's recommended to store the output in a variable.

$guestHistory = Get-AzVMGuestPolicyStatusHistory -ResourceGroupName <resourcegroupname> -VMName <vmname>
$guestHistory
PolicyDisplayName                                                         ComplianceStatus ComplianceReasons StartTime              EndTime                VMName LatestRepor
                                                                                                                                                                  tId
-----------------                                                         ---------------- ----------------- ---------              -------                ------ -----------
[Preview]: Audit that an application is installed inside Windows VMs      NonCompliant                       02/10/2019 12:00:38 PM 02/10/2019 12:00:41 PM VM01  ../17fg0...
<truncated>

Pour simplifier cet affichage, utilisez le paramètre ShowChanged.To simplify this view, use the ShowChanged parameter. La sortie de cette commande inclut uniquement les rapports faisant état d'une modification de l'état de conformité.The output from this command only includes the reports that followed a change in compliance status.

$guestHistory = Get-AzVMGuestPolicyStatusHistory -ResourceGroupName <resourcegroupname> -VMName <vmname> -ShowChanged
$guestHistory
PolicyDisplayName                                                         ComplianceStatus ComplianceReasons StartTime              EndTime                VMName LatestRepor
                                                                                                                                                                  tId
-----------------                                                         ---------------- ----------------- ---------              -------                ------ -----------
Audit that an application is installed inside Windows VMs                 NonCompliant                       02/10/2019 10:00:38 PM 02/10/2019 10:00:41 PM VM01  ../12ab0...
Audit that an application is installed inside Windows VMs.                Compliant                          02/09/2019 11:00:38 AM 02/09/2019 11:00:39 AM VM01  ../e3665...
Audit that an application is installed inside Windows VMs                 NonCompliant                       02/09/2019 09:00:20 AM 02/09/2019 09:00:23 AM VM01  ../15ze1...

Historique des modifications (préversion)Change history (Preview)

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.As part of a new public preview, the last 14 days of change history are available for all Azure resources that support complete mode deletion. L'historique des modifications indique quand une modification a été détectée et fournit un différentiel visuel pour chaque modification.Change history provides details about when a change was detected and a visual diff for each change. Une détection de modification est déclenchée lorsque les propriétés Resource Manager sont ajoutées, supprimées ou modifiées.A change detection is triggered when the Resource Manager properties are added, removed, or altered.

  1. Lancez le service Azure Policy dans le portail Azure en cliquant sur Tous les services, puis en recherchant et en cliquant sur Stratégie.Launch the Azure Policy service in the Azure portal by clicking All services, then searching for and selecting Policy.

  2. Sur la page Vue d'ensemble ou Conformité, sélectionnez une stratégie dans un état de conformité.On the Overview or Compliance page, select a policy in any compliance state.

  3. Sous l'onglet Conformité des ressources de la page Conformité à la stratégie, sélectionnez une ressource.Under the Resource compliance tab of the Policy compliance page, select a resource.

  4. Sélectionnez l'onglet Historique des modifications (préversion) de la page Conformité des ressources.Select the Change History (preview) tab on the Resource Compliance page. La liste des modifications détectées, le cas échéant, s'affiche.A list of detected changes, if any exist, are displayed.

    Onglet Historique des modifications Azure Policy de la page Conformité des ressources

  5. Sélectionnez une des modifications détectées.Select one of the detected changes. Le différentiel visuel de la ressource est présenté sur la page Historique des modifications.The visual diff for the resource is presented on the Change history page.

    Différentiel visuel de l'historique des modifications Azure Policy de la page Historique des modifications

Le différentiel visuel aide à identifier les modifications apportées à une ressource.The visual diff aides in identifying changes to a resource. Les modifications détectées peuvent ne pas être liées à l’état de conformité actuel de la ressource.The changes detected may not be related to the current compliance state of the resource.

Les données de l'historique des modifications sont fournies par Azure Resource Graph.Change history data is provided by Azure Resource Graph. Pour interroger ces informations en dehors du portail Azure, consultez Obtenir les modifications des ressources.To query this information outside of the Azure portal, see Get resource changes.

Étapes suivantesNext steps