Obtenir les données de conformité des ressources AzureGet compliance data of Azure resources

Azure Policy offre, entre autres avantages, un insight et des contrôles sur les ressources d’un abonnement ou un groupe d’administration d’abonnements.One of the largest benefits of Azure Policy is the insight and controls it provides over resources in a subscription or management group of subscriptions. Ce contrôle peut être effectué de différentes façons, notamment en empêchant la création de ressources au mauvais emplacement, en appliquant une utilisation commune et cohérente des balises ou en auditant les ressources existantes pour vérifier l’adéquation des configurations et paramètres.This control can be exercised in many different ways, such as preventing resources being created in the wrong location, enforcing common and consistent tag usage, or auditing existing resources for appropriate configurations and settings. Dans tous les cas, les données générées par Azure Policy vous permettent de comprendre l’état de conformité de votre environnement.In all cases, data is generated by Azure Policy to enable you to understand the compliance state of your environment.

Il existe plusieurs façons d’accéder aux informations de conformité générées par votre stratégie et vos affectations initiatives :There are several ways to access the compliance information generated by your policy and initiative assignments:

Avant d’examiner les méthodes de rapport sur la conformité, voyons à quel moment les informations de conformité sont mises à jour et passons en revue la fréquence et les événements qui déclenchent un cycle d’évaluation.Before looking at the methods to report on compliance, let's look at when compliance information is updated and the frequency and events that trigger an evaluation cycle.

Avertissement

Si l’état de conformité indiqué est Non inscrit, vérifiez que le fournisseur de ressources Microsoft.PolicyInsights est inscrit et que l’utilisateur dispose d’autorisations de contrôle d’accès en fonction du rôle (RBAC) appropriées, comme décrit dans Contrôle d’accès en fonction du rôle (RBAC) dans Azure Policy.If compliance state is being reported as Not registered, verify that the Microsoft.PolicyInsights Resource Provider is registered and that the user has the appropriate role-based access control (RBAC) permissions as described in RBAC in Azure Policy.

Déclencheurs d’évaluationEvaluation triggers

Les résultats d’un cycle d’évaluation terminé sont disponibles dans le fournisseur de ressources Microsoft.PolicyInsights via les opérations PolicyStates et PolicyEvents.The results of a completed evaluation cycle are available in the Microsoft.PolicyInsights Resource Provider through PolicyStates and PolicyEvents operations. Pour plus d’informations sur les opérations de l’API REST Azure Policy Insights, consultez la page Azure Policy Insights.For more information about the operations of the Azure Policy Insights REST API, see Azure Policy Insights.

Différents événements permettent d’évaluer les stratégies et initiatives assignées :Evaluations of assigned policies and initiatives happen as the result of various events:

  • Affectation d’une nouvelle stratégie ou initiative à une étendue.A policy or initiative is newly assigned to a scope. Il faut environ 30 minutes pour que l’affectation soit appliquée à l’étendue définie.It takes around 30 minutes for the assignment to be applied to the defined scope. Une fois celle-ci appliquée, le cycle d’évaluation commence pour les ressources de cette étendue compte tenu de la nouvelle stratégie ou initiative ; de plus, selon les effets utilisés par la stratégie ou l’initiative, les ressources sont marquées comme conformes ou non conformes.Once it's applied, the evaluation cycle begins for resources within that scope against the newly assigned policy or initiative and depending on the effects used by the policy or initiative, resources are marked as compliant or non-compliant. Une stratégie ou une initiative volumineuse évaluée par rapport à une grande étendue de ressources peut prendre du temps.A large policy or initiative evaluated against a large scope of resources can take time. Par conséquent, il n’existe aucun moment prédéfini pour la fin du cycle d’évaluation.As such, there's no pre-defined expectation of when the evaluation cycle will complete. Une fois le cycle terminé, les résultats de conformité à jour sont disponibles dans le portail et dans les kits de développement logiciel.Once it completes, updated compliance results are available in the portal and SDKs.

  • Mise à jour d’une stratégie ou initiative déjà assignée à une étendue.A policy or initiative already assigned to a scope is updated. Dans ce scénario, le cycle et le temps d’évaluation sont les mêmes que pour le cas d’une nouvelle affectation à une étendue.The evaluation cycle and timing for this scenario is the same as for a new assignment to a scope.

  • Déploiement d’une ressource dans une étendue avec une assignation via le Gestionnaire des ressources, REST, Azure CLI ou Azure PowerShell.A resource is deployed to a scope with an assignment via Resource Manager, REST, Azure CLI, or Azure PowerShell. Dans ce scénario, l’événement d’effet (ajout, audit, refus, déploiement) et l’état de conformité deviennent disponibles dans le portail et les Kits de développement logiciel (SDK) environ 15 minutes plus tard.In this scenario, the effect event (append, audit, deny, deploy) and compliant status information for the individual resource becomes available in the portal and SDKs around 15 minutes later. Cet événement n’entraîne pas une évaluation des autres ressources.This event doesn't cause an evaluation of other resources.

  • Cycle d’évaluation de conformité standard.Standard compliance evaluation cycle. Les affectations sont automatiquement réévaluées une fois par tranche de 24 heures.Once every 24 hours, assignments are automatically reevaluated. L’évaluation d’une stratégie ou d’une initiative volumineuse peut prendre un temps. Il est donc impossible de déterminer à l’avance à quel moment s’achèvera le cycle d’évaluation.A large policy or initiative of many resources can take time, so there's no pre-defined expectation of when the evaluation cycle will complete. Une fois le cycle terminé, les résultats de conformité à jour sont disponibles dans le portail et dans les kits de développement logiciel.Once it completes, updated compliance results are available in the portal and SDKs.

  • Le fournisseur de ressources Configuration d'invité est mis à jour avec les détails de conformité par une ressource managée.The Guest Configuration resource provider is updated with compliance details by a managed resource.

  • Analyse de la demandeOn-demand scan

Analyse d’évaluation à la demandeOn-demand evaluation scan

Une analyse d’évaluation d’un abonnement ou d’un groupe de ressources peut être démarrée avec un appel à l’API REST.An evaluation scan for a subscription or a resource group can be started with a call to the REST API. Il s’agit d’un processus asynchrone.This scan is an asynchronous process. Par conséquent, le point de terminaison REST pour démarrer l’analyse n’attend pas la fin de l’analyse pour répondre.As such, the REST endpoint to start the scan doesn't wait until the scan is complete to respond. Au lieu de cela, il fournit un URI pour interroger l’état de l’évaluation demandée.Instead, it provides a URI to query the status of the requested evaluation.

Dans chaque URI d’API REST, vous devez remplacer les variables utilisées par vos propres valeurs :In each REST API URI, there are variables that are used that you need to replace with your own values:

  • {YourRG} - À remplacer par le nom de votre groupe de ressources{YourRG} - Replace with the name of your resource group
  • Remplacer {subscriptionId} par votre ID d’abonnement{subscriptionId} - Replace with your subscription ID

L’analyse prend en charge l’évaluation des ressources dans un abonnement ou dans un groupe de ressources.The scan supports evaluation of resources in a subscription or in a resource group. Lancez une analyse pour une étendue avec une commande POST d’API REST en utilisant les structures d’URI suivantes :Start a scan by scope with a REST API POST command using the following URI structures:

  • SubscriptionSubscription

    POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2018-07-01-preview
    
  • Resource groupResource group

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{YourRG}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2018-07-01-preview
    

L’appel retourne un état 202 Accepté.The call returns a 202 Accepted status. Une propriété Emplacement est incluse dans l’en-tête de la réponse avec le format suivant :Included in the response header is a Location property with the following format:

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/asyncOperationResults/{ResourceContainerGUID}?api-version=2018-07-01-preview

{ResourceContainerGUID} est généré de manière statique pour l’étendue demandée.{ResourceContainerGUID} is statically generated for the scope requested. Si une étendue exécute déjà une analyse à la demande, aucune nouvelle analyse n’est démarrée.If a scope is already running an on-demand scan, a new scan isn't started. Au lieu de cela, le même URI {ResourceContainerGUID}d’emplacement pour l’état est fourni à la nouvelle requête.Instead, the new request is provided the same {ResourceContainerGUID} location URI for status. Une commande GET d’API REST à l’URI d’emplacement retourne un 202 Accepté tandis que l’évaluation est en cours.A REST API GET command to the Location URI returns a 202 Accepted while the evaluation is ongoing. Une fois l’analyse de l’évaluation terminée, elle retourne un état 200 OK.When the evaluation scan has completed, it returns a 200 OK status. Le corps d’une analyse terminée est une réponse JSON avec l’état :The body of a completed scan is a JSON response with the status:

{
    "status": "Succeeded"
}

Principe de fonctionnement de la conformitéHow compliance works

Dans une affectation, une ressource est dite Non conforme si elle ne respecte pas les règles de l’initiative ou de la stratégie.In an assignment, a resource is Non-compliant if it doesn't follow policy or initiative rules. Le tableau suivant montre comment les différents effets des stratégies fonctionnent avec l’évaluation des conditions pour l’état de conformité résultant :The following table shows how different policy effects work with the condition evaluation for the resulting compliance state:

État de la ressourceResource state RésultatEffect Évaluation de la stratégiePolicy evaluation État de conformitéCompliance state
ExistsExists Deny, Audit, Append*, DeployIfNotExist*, AuditIfNotExist*Deny, Audit, Append*, DeployIfNotExist*, AuditIfNotExist* TrueTrue Non conformeNon-compliant
ExistsExists Deny, Audit, Append*, DeployIfNotExist*, AuditIfNotExist*Deny, Audit, Append*, DeployIfNotExist*, AuditIfNotExist* FalseFalse ConformeCompliant
NouveauNew Audit, AuditIfNotExist*Audit, AuditIfNotExist* TrueTrue Non conformeNon-compliant
NouveauNew Audit, AuditIfNotExist*Audit, AuditIfNotExist* FalseFalse ConformeCompliant

* Les effets Append, DeployIfNotExist et AuditIfNotExist nécessitent que l’instruction IF ait la valeur TRUE.* The Append, DeployIfNotExist, and AuditIfNotExist effects require the IF statement to be TRUE. Les effets nécessitent également que la condition d’existence ait la valeur FALSE pour être non conformes.The effects also require the existence condition to be FALSE to be non-compliant. Lorsque la valeur est TRUE, la condition IF déclenche l’évaluation de la condition d’existence pour les ressources associées.When TRUE, the IF condition triggers evaluation of the existence condition for the related resources.

Supposons, par exemple, que vous disposiez d’un groupe de ressources (ContosoRG), comprenant des comptes de stockage (en rouge) qui sont exposés sur des réseaux publics.For example, assume that you have a resource group – ContsoRG, with some storage accounts (highlighted in red) that are exposed to public networks.

Comptes de stockage exposés sur des réseaux publics

Dans cet exemple, vous devez faire attention aux risques de sécurité.In this example, you need to be wary of security risks. Maintenant que vous avez créé une affectation de stratégie, elle est évaluée pour tous les comptes de stockage du groupe de ressources ContosoRG.Now that you've created a policy assignment, it's evaluated for all storage accounts in the ContosoRG resource group. Elle effectue l’audit des trois comptes de stockage non conformes et en modifie l’état en conséquence pour afficher un état Non conforme.It audits the three non-compliant storage accounts, consequently changing their states to Non-compliant.

Audit des comptes de stockage non conformes

Outre les états Conforme et Non conforme, les stratégies et les ressources peuvent avoir trois autres états :Besides Compliant and Non-compliant, policies and resources have three other states:

  • En conflit : Il existe deux ou stratégies ou plus avec des règles en conflit.Conflicting: Two or more policies exist with conflicting rules. Par exemple, deux stratégies ajoutent la même balise avec des valeurs différentes.For example, two policies appending the same tag with different values.
  • Non démarré : Le cycle d’évaluation n’a pas démarré pour la stratégie ou la ressource.Not started: The evaluation cycle hasn't started for the policy or resource.
  • Non inscrit : Le fournisseur de ressources Azure Policy n’a pas été inscrit ou le compte connecté n’est pas autorisé à lire les données de conformité.Not registered: The Azure Policy Resource Provider hasn't been registered or the account logged in doesn't have permission to read compliance data.

La Azure Policy utilise les champs type et nom de la définition pour déterminer si une ressource correspond.Azure Policy uses the type and name fields in the definition to determine if a resource is a match. Lorsque la ressource correspond, elle est considérée comme applicable et présente l’état Conforme ou Non conforme.When the resource matches, it's considered applicable and has a status of either Compliant or Non-compliant. Si le champ type ou nom est la seule propriété dans la définition de règle de stratégie, toutes les ressources sont considérées comme applicables et sont évaluées.If either type or name is the only property in the definition, then all resources are considered applicable and are evaluated.

Le pourcentage de conformité est déterminé en divisant le nombre de ressources conformes par le nombre total de ressources.The compliance percentage is determined by dividing Compliant resources by total resources. Le nombre total de ressources est défini comme étant la somme des ressources conformes, non conformes et en conflit.Total resources is defined as the sum of the Compliant, Non-compliant, and Conflicting resources. La conformité globale est la somme des ressources distinctes conformes divisée par la somme de toutes les ressources distinctes.The overall compliance numbers are the sum of distinct resources that are Compliant divided by the sum of all distinct resources. Dans l’image ci-dessous, il y a 20 ressources distinctes applicables et une seule non conforme.In the image below, there are 20 distinct resources that are applicable and only one is Non-compliant. La conformité globale des ressources est égale à 95 % (soit 19 sur 20).The overall resource compliance is 95% (19 out of 20).

Exemple de conformité à la stratégie à partir de la page Conformité

PortailPortal

Le portail Azure permet de visualiser et comprendre l’état de conformité de votre environnement selon une représentation graphique.The Azure portal showcases a graphical experience of visualizing and understanding the state of compliance in your environment. Sur la page Stratégie, l’option Vue d’ensemble fournit des détails sur les étendues disponibles pour la conformité des stratégies et des initiatives.On the Policy page, the Overview option provides details for available scopes on the compliance of both policies and initiatives. En complément de l’état de conformité et du nombre par affectation, elle contient un graphique retraçant la conformité au cours des sept derniers jours.Along with the compliance state and count per assignment, it contains a chart showing compliance over the last seven days. La page Conformité regroupe essentiellement les mêmes informations (à l’exception du graphique), mais avec également des options de tri et de filtrage supplémentaires.The Compliance page contains much of this same information (except the chart), but provide additional filtering and sorting options.

Exemple de page de conformité à Azure Policy

Comme une stratégie ou une initiative peut être affectée à différentes étendues, le tableau comprend l’étendue pour chaque affectation et le type de définition qui a été affecté.Since a policy or initiative can be assigned to different scopes, the table includes the scope for each assignment and the type of definition that was assigned. Le nombre de ressources et de stratégies non conformes est aussi indiqué pour chaque affectation.The number of non-compliant resources and non-compliant policies for each assignment are also provided. En cliquant sur une stratégie ou une initiative dans le tableau, vous obtenez davantage de détails sur la conformité de l’affectation concernée.Clicking on a policy or initiative in the table provides a deeper look at the compliance for that particular assignment.

Exemple de page de détails de la conformité à Azure Policy

La liste des ressources dans l’onglet Resource compliance (Conformité des ressources) affiche l’état de l’évaluation des ressources existantes pour l’affectation actuelle.The list of resources on the Resource compliance tab shows the evaluation status of existing resources for the current assignment. Par défaut, l’onglet est défini sur Non conforme, mais un filtre peut être appliqué.The tab defaults to Non-compliant, but can be filtered. Les événements (ajouter, effectuer un audit, refuser, déployer) déclenchés par la requête pour créer une ressource sont affichés dans l’onglet Événements.Events (append, audit, deny, deploy) triggered by the request to create a resource are shown under the Events tab.

Notes

Pour une stratégie du moteur AKS, la ressource indiquée est le groupe de ressources.For an AKS Engine policy, the resource shown is the resource group.

Exemple d’événements de conformité à Azure Policy

Pour les ressources du mode Fournisseur de ressources, dans l’onglet Conformité des ressources, la sélection de la ressource ou un clic droit sur la ligne et la sélection de l’option Afficher les détails de la conformité ouvre les détails de conformité du composant.For Resource Provider mode resources, on the Resource compliance tab, selecting the resource or right-clicking on the row and selecting View compliance details opens the component compliance details. Cette page propose également des onglets pour afficher les stratégies attribuées à cette ressource, les événements, les événements de composant et l’historique des modifications.This page also offers tabs to see the policies that are assigned to this resource, events, component events, and change history.

Exemple de détails de la conformité des composants à Azure Policy

Une fois de retour sur la page de conformité des ressources, cliquez avec le bouton droit sur la ligne de l’événement pour lequel vous souhaitez obtenir plus de détails et sélectionnez Afficher les journaux d’activité.Back on the resource compliance page, right-click on the row of the event you would like to gather more details on and select Show activity logs. La page Journal d’activité s’ouvre et les critères de recherche sont préfiltrés pour montrer les détails de l’affectation et des événements.The activity log page opens and is pre-filtered to the search showing details for the assignment and the events. Le journal d’activité fournit davantage de contexte ainsi que des informations supplémentaires sur ces événements.The activity log provides additional context and information about those events.

Exemple de journal d’activité de conformité à Azure Policy

Comprendre la non-conformitéUnderstand non-compliance

Lorsque le système détermine qu’une ressource est non conforme, plusieurs raisons justifient cela.When a resources is determined to be non-compliant, there are many possible reasons. Pour déterminer la raison d’une non conformité d’une ressource ou pour rechercher le ou la responsable de la modification, veuillez consulter Déterminer une non-conformité.To determine the reason a resource is non-compliant or to find the change responsible, see Determine non-compliance.

Ligne de commandeCommand line

Les informations disponibles dans le portail peuvent être récupérées à l’aide de l’API REST (y compris avec ARMClient), d’Azure PowerShell ou d’Azure CLI (préversion).The same information available in the portal can be retrieved with the REST API (including with ARMClient), Azure PowerShell, and Azure CLI (preview). Pour plus d’informations sur l’API REST, consultez la référence Azure Policy Insights.For full details on the REST API, see the Azure Policy Insights reference. Les pages de référence de l’API REST contiennent, pour chaque opération, un bouton vert qui vous permet de la tester directement dans votre navigateur.The REST API reference pages have a green 'Try It' button on each operation that allows you to try it right in the browser.

Utilisez ARMClient ou un outil similaire pour gérer l’authentification auprès d’Azure pour les exemples de l’API REST.Use ARMClient or a similar tool to handle authentication to Azure for the REST API examples.

Synthétiser les résultatsSummarize results

Avec l’API REST, la synthèse peut être effectuée par conteneur, par définition ou par affectation.With the REST API, summarization can be performed by container, definition, or assignment. Voici un exemple de synthèse obtenu au niveau de l’abonnement à l’aide de la fonction de résumé de l’abonnement de Azure Policy Insights :Here is an example of summarization at the subscription level using Azure Policy Insight's Summarize For Subscription:

POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/summarize?api-version=2018-04-04

La sortie offre une synthèse de l’abonnement.The output summarizes the subscription. Dans l’exemple de sortie ci-dessous, la conformité est synthétisée sous value.results.nonCompliantResources et value.results.nonCompliantPolicies.In the example output below, the summarized compliance are under value.results.nonCompliantResources and value.results.nonCompliantPolicies. Cette requête fournit des détails supplémentaires, notamment sur chaque affectation concernée par la non-conformité, fournit des informations sur la définition de chaque affectation.This request provides further details, including each assignment that made up the non-compliant numbers and the definition information for each assignment. Chaque objet de stratégie dans la hiérarchie fournit un queryResultsUri qui peut être utilisé pour obtenir des détails supplémentaires à ce niveau.Each policy object in the hierarchy provides a queryResultsUri that can be used to get additional detail at that level.

{
    "@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#summary",
    "@odata.count": 1,
    "value": [{
        "@odata.id": null,
        "@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#summary/$entity",
        "results": {
            "queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2018-04-04&$from=2018-05-18 04:28:22Z&$to=2018-05-19 04:28:22Z&$filter=IsCompliant eq false",
            "nonCompliantResources": 15,
            "nonCompliantPolicies": 1
        },
        "policyAssignments": [{
            "policyAssignmentId": "/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77",
            "policySetDefinitionId": "",
            "results": {
                "queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2018-04-04&$from=2018-05-18 04:28:22Z&$to=2018-05-19 04:28:22Z&$filter=IsCompliant eq false and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77'",
                "nonCompliantResources": 15,
                "nonCompliantPolicies": 1
            },
            "policyDefinitions": [{
                "policyDefinitionReferenceId": "",
                "policyDefinitionId": "/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
                "effect": "deny",
                "results": {
                    "queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2018-04-04&$from=2018-05-18 04:28:22Z&$to=2018-05-19 04:28:22Z&$filter=IsCompliant eq false and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77' and PolicyDefinitionId eq '/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62'",
                    "nonCompliantResources": 15
                }
            }]
        }]
    }]
}

Interroger des ressourcesQuery for resources

En reprenant l’exemple ci-dessus, value.policyAssignments.policyDefinitions.results.queryResultsUri nous donne un exemple d’URI pour toutes les ressources non conformes pour une définition de stratégie spécifique.In the example above, value.policyAssignments.policyDefinitions.results.queryResultsUri provides a sample Uri for all non-compliant resources for a specific policy definition. Si l’on observe la valeur $filteron remarque que IsCompliant est défini sur false, que PolicyAssignmentId est spécifié pour la définition de stratégie, suivi de PolicyDefinitionId.Looking at the $filter value, IsCompliant is equal (eq) to false, PolicyAssignmentId is specified for the policy definition, and then the PolicyDefinitionId itself. Le PolicyAssignmentId est inclus dans le filtre car le PolicyDefinitionId peut figurer dans plusieurs stratégies ou affectations initiatives avec une diversité d’étendues.The reason for including the PolicyAssignmentId in the filter is because the PolicyDefinitionId could exist in several policy or initiative assignments with different scopes. En spécifiant à la fois le PolicyAssignmentId et le PolicyDefinitionId, nous pouvons être explicites dans les résultats que nous recherchons.By specifying both the PolicyAssignmentId and the PolicyDefinitionId, we can be explicit in the results we're looking for. Auparavant, nous utilisions la valeur latest (dernières) pour PolicyStates : celle-ci définit automatiquement les paramètres from (depuis) et to (jusqu’à) d’une plage de temps dans les dernières 24 heures.Previously, for PolicyStates we used latest, which automatically sets a from and to time window of the last 24-hours.

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2018-04-04&$from=2018-05-18 04:28:22Z&$to=2018-05-19 04:28:22Z&$filter=IsCompliant eq false and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77' and PolicyDefinitionId eq '/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62'

L’exemple de réponse ci-dessous a été ramené à une seule ressource non conforme par souci de concision.The example response below has been trimmed to a single non-compliant resource for brevity. La réponse détaillée fournit plusieurs éléments de données sur la ressource, la stratégie ou initiative, et l’affectation.The detailed response has several pieces of data about the resource, the policy or initiative, and the assignment. Notez que vous pouvez également voir quels paramètres d’affectation ont été transmis à la définition de la stratégie.Notice that you can also see what assignment parameters were passed to the policy definition.

{
    "@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest",
    "@odata.count": 15,
    "value": [{
        "@odata.id": null,
        "@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
        "timestamp": "2018-05-19T04:41:09Z",
        "resourceId": "/subscriptions/{subscriptionId}/resourceGroups/rg-tags/providers/Microsoft.Compute/virtualMachines/linux",
        "policyAssignmentId": "/subscriptions/{subscriptionId}/resourceGroups/rg-tags/providers/Microsoft.Authorization/policyAssignments/37ce239ae4304622914f0c77",
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
        "effectiveParameters": "",
        "isCompliant": false,
        "subscriptionId": "{subscriptionId}",
        "resourceType": "/Microsoft.Compute/virtualMachines",
        "resourceLocation": "westus2",
        "resourceGroup": "RG-Tags",
        "resourceTags": "tbd",
        "policyAssignmentName": "37ce239ae4304622914f0c77",
        "policyAssignmentOwner": "tbd",
        "policyAssignmentParameters": "{\"tagName\":{\"value\":\"costCenter\"},\"tagValue\":{\"value\":\"Contoso-Test\"}}",
        "policyAssignmentScope": "/subscriptions/{subscriptionId}/resourceGroups/RG-Tags",
        "policyDefinitionName": "1e30110a-5ceb-460c-a204-c1c3969c6d62",
        "policyDefinitionAction": "deny",
        "policyDefinitionCategory": "tbd",
        "policySetDefinitionId": "",
        "policySetDefinitionName": "",
        "policySetDefinitionOwner": "",
        "policySetDefinitionCategory": "",
        "policySetDefinitionParameters": "",
        "managementGroupIds": "",
        "policyDefinitionReferenceId": ""
    }]
}

Visualiser les événementsView events

Lorsqu’une ressource est créée ou mise à jour, un résultat d’évaluation de stratégie est généré.When a resource is created or updated, a policy evaluation result is generated. Ces résultats sont appelés événements de stratégie.Results are called policy events. L’URI suivant permet d’afficher les événements de stratégie récents associés à l’abonnement.Use the following Uri to view recent policy events associated with the subscription.

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/default/queryResults?api-version=2018-04-04

Vos résultats doivent ressembler à l’exemple suivant :Your results resemble the following example:

{
    "@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/$metadata#default",
    "@odata.count": 1,
    "value": [{
        "@odata.id": null,
        "@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/$metadata#default/$entity",
        "NumAuditEvents": 16
    }]
}

Pour plus d’informations sur l’interrogation des événements de stratégie, consultez l’article de référence intitulé Événements Azure Policy.For more information about querying policy events, see the Azure Policy Events reference article.

Azure PowerShellAzure PowerShell

Le module Azure PowerShell d’Azure Policy est disponible dans PowerShell Gallery sous le nom Az.PolicyInsights.The Azure PowerShell module for Azure Policy is available on the PowerShell Gallery as Az.PolicyInsights. Vous pouvez utiliser PowerShellGet pour installer le module à l’aide de Install-Module -Name Az.PolicyInsights (vérifiez que vous disposez de la dernière version d’Azure PowerShell) :Using PowerShellGet, you can install the module using Install-Module -Name Az.PolicyInsights (make sure you have the latest Azure PowerShell installed):

# Install from PowerShell Gallery via PowerShellGet
Install-Module -Name Az.PolicyInsights

# Import the downloaded module
Import-Module Az.PolicyInsights

# Login with Connect-AzAccount if not using Cloud Shell
Connect-AzAccount

Le module comporte les cmdlets suivantes :The module has the following cmdlets:

  • Get-AzPolicyStateSummary
  • Get-AzPolicyState
  • Get-AzPolicyEvent
  • Get-AzPolicyRemediation
  • Remove-AzPolicyRemediation
  • Start-AzPolicyRemediation
  • Stop-AzPolicyRemediation

Exemple : Obtenir le résumé d’état de la stratégie affectée au premier plan qui comporte le plus grand nombre de ressources non conformes.Example: Getting the state summary for the topmost assigned policy with the highest number of non-compliant resources.

PS> Get-AzPolicyStateSummary -Top 1

NonCompliantResources : 15
NonCompliantPolicies  : 1
PolicyAssignments     : {/subscriptions/{subscriptionId}/resourcegroups/RG-Tags/providers/micros
                        oft.authorization/policyassignments/37ce239ae4304622914f0c77}

Exemple : Obtenir l’enregistrement de l’état pour la ressource évaluée la plus récemment (par défaut, selon un horodatage dans l’ordre décroissant).Example: Getting the state record for the most recently evaluated resource (default is by timestamp in descending order).

PS> Get-AzPolicyState -Top 1

Timestamp                  : 5/22/2018 3:47:34 PM
ResourceId                 : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
                             crosoft.Network/networkInterfaces/linux316
PolicyAssignmentId         : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
                             crosoft.Authorization/policyAssignments/37ce239ae4304622914f0c77
PolicyDefinitionId         : /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
IsCompliant                : False
SubscriptionId             : {subscriptionId}
ResourceType               : /Microsoft.Network/networkInterfaces
ResourceLocation           : westus2
ResourceGroup              : RG-Tags
ResourceTags               : tbd
PolicyAssignmentName       : 37ce239ae4304622914f0c77
PolicyAssignmentOwner      : tbd
PolicyAssignmentParameters : {"tagName":{"value":"costCenter"},"tagValue":{"value":"Contoso-Test"}}
PolicyAssignmentScope      : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags
PolicyDefinitionName       : 1e30110a-5ceb-460c-a204-c1c3969c6d62
PolicyDefinitionAction     : deny
PolicyDefinitionCategory   : tbd

Exemple : Obtenir des détails pour toutes les ressources non conformes du réseau virtuel.Example: Getting the details for all non-compliant virtual network resources.

PS> Get-AzPolicyState -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'"

Timestamp                  : 5/22/2018 4:02:20 PM
ResourceId                 : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
                             crosoft.Network/virtualNetworks/RG-Tags-vnet
PolicyAssignmentId         : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
                             crosoft.Authorization/policyAssignments/37ce239ae4304622914f0c77
PolicyDefinitionId         : /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
IsCompliant                : False
SubscriptionId             : {subscriptionId}
ResourceType               : /Microsoft.Network/virtualNetworks
ResourceLocation           : westus2
ResourceGroup              : RG-Tags
ResourceTags               : tbd
PolicyAssignmentName       : 37ce239ae4304622914f0c77
PolicyAssignmentOwner      : tbd
PolicyAssignmentParameters : {"tagName":{"value":"costCenter"},"tagValue":{"value":"Contoso-Test"}}
PolicyAssignmentScope      : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags
PolicyDefinitionName       : 1e30110a-5ceb-460c-a204-c1c3969c6d62
PolicyDefinitionAction     : deny
PolicyDefinitionCategory   : tbd

Exemple : Obtenir des événements liés aux ressources non conformes du réseau virtuel qui se sont produits après une date spécifique.Example: Getting events related to non-compliant virtual network resources that occurred after a specific date.

PS> Get-AzPolicyEvent -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'" -From '2018-05-19'

Timestamp                  : 5/19/2018 5:18:53 AM
ResourceId                 : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
                             crosoft.Network/virtualNetworks/RG-Tags-vnet
PolicyAssignmentId         : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
                             crosoft.Authorization/policyAssignments/37ce239ae4304622914f0c77
PolicyDefinitionId         : /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
IsCompliant                : False
SubscriptionId             : {subscriptionId}
ResourceType               : /Microsoft.Network/virtualNetworks
ResourceLocation           : eastus
ResourceGroup              : RG-Tags
ResourceTags               : tbd
PolicyAssignmentName       : 37ce239ae4304622914f0c77
PolicyAssignmentOwner      : tbd
PolicyAssignmentParameters : {"tagName":{"value":"costCenter"},"tagValue":{"value":"Contoso-Test"}}
PolicyAssignmentScope      : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags
PolicyDefinitionName       : 1e30110a-5ceb-460c-a204-c1c3969c6d62
PolicyDefinitionAction     : deny
PolicyDefinitionCategory   : tbd
TenantId                   : {tenantId}
PrincipalOid               : {principalOid}

Le champ PrincipalOid peut être utilisé pour obtenir un utilisateur spécifique avec l’applet de commande Get-AzADUser d’Azure PowerShell.The PrincipalOid field can be used to get a specific user with the Azure PowerShell cmdlet Get-AzADUser. Remplacez {principalOid} par la réponse que vous obtenez à partir de l’exemple précédent.Replace {principalOid} with the response you get from the previous example.

PS> (Get-AzADUser -ObjectId {principalOid}).DisplayName
Trent Baker

Journaux d’activité Azure MonitorAzure Monitor logs

Si vous avez un espace de travail Log Analytics dans lequel AzureActivity de la solution Activity Log Analytics est liée à votre abonnement, vous pouvez également afficher les résultats non conformes à partir du cycle d’évaluation en utilisant de simples Kusto et la table AzureActivity.If you have a Log Analytics workspace with AzureActivity from the Activity Log Analytics solution tied to your subscription, you can also view non-compliance results from the evaluation cycle using simple Kusto queries and the AzureActivity table. Grâce aux informations des journaux d’activité Azure Monitor, des alertes peuvent être configurées de manière à signaler les problèmes de non-conformité.With details in Azure Monitor logs, alerts can be configured to watch for non-compliance.

Conformité à Azure Policy à l’aide des journaux d’activité Azure Monitor

Étapes suivantesNext steps