Obtenir les données de conformité des ressources Azure
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. Ce contrôle peut empêcher la création de ressources au mauvais emplacement, pour appliquer une utilisation commune et cohérente des balises, ou pour auditer les ressources existantes pour vérifier l’adéquation des configurations et paramètres. Dans tous les cas, Azure Policy génère des données qui vous permettent de comprendre l’état de conformité de votre environnement.
Avant l’examination des données de conformité, il est important de comprendre les états de conformité dans Azure Policy.
Il existe plusieurs façons d’accéder aux informations de conformité générées par votre stratégie et vos affectations initiatives :
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.
Déclencheurs d’évaluation
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
. Pour plus d’informations sur les opérations de l’API REST Azure Policy Insights, consultez la page Azure Policy Insights.
Différents événements permettent d’évaluer les stratégies et initiatives assignées :
- Affectation d’une nouvelle stratégie ou initiative à une étendue. Environ cinq minutes sont nécessaires pour appliquer l'affectation à la portée définie, avant le démarrage du cycle d'évaluation des ressources applicables selon la nouvelle stratégie ou initiative affectée. Selon les utilisés, les ressources sont marquées comme conformes, non conformes, exemptées ou inconnues. L’évaluation d’une stratégie ou d’une initiative volumineuse sur une grande étendue de ressources peut prendre un temps, ce qui signifie qu’il est impossible de déterminer à l’avance à quel moment s’achève le cycle d’évaluation. Une fois l’opération terminée, les résultats de conformité mis à jour sont disponibles dans le portail et les kits de développement logiciel (SDK).
- Mise à jour d’une stratégie ou initiative déjà assignée à une étendue. 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.
- Déploiement ou mise à jour d’une ressource dans une étendue avec une assignation via Azure Resource Manager, l’API REST ou un kit SDK pris en charge. 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. Cet événement n’entraîne pas une évaluation des autres ressources.
- Un abonnement (type de ressource
Microsoft.Resources/subscriptions
) est créé ou déplacé dans la hiérarchie d’un groupe d’administration avec une définition de stratégie attribuée ciblant le type de ressource de l’abonnement. L’évaluation des effets pris en charge par l’abonnement (audit, auditIfNotExist, deployIfNotExists, modify), de la journalisation et des actions correctives prend environ 30 minutes. - Une exemption de stratégie est créée, mise à jour ou supprimée. Dans ce scénario, l’affectation correspondante est évaluée pour l’étendue d’exemption définie.
- Cycle d’évaluation de conformité standard. Les affectations sont automatiquement réévaluées une fois par tranche de 24 heures. 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. Une fois le cycle terminé, les résultats de conformité à jour sont disponibles dans le portail et dans les kits de développement logiciel.
- Le fournisseur de ressources de configuration de la machine est mis à jour avec les détails de conformité par une ressource managée.
- Analyse à la demande.
Remarque
Par conception, Azure Policy exempte de l’évaluation de stratégie toutes les ressources sous le fournisseur de ressources Microsoft.Resources
, à l’exception des abonnements et des groupes de ressources, qui peuvent être évalués.
Analyse d’évaluation à la demande
Une analyse d’évaluation pour un abonnement ou un groupe de ressources peut être démarrée avec REST, Azure CLI, Azure PowerShell, extension Azure Policy pour Visual Studio Code ou Une action GitHub d’analyse de conformité Azure Policy. Les analyses à la demande sont un processus asynchrone qui prend beaucoup de temps à s’exécuter, car les ressources sont évaluées par rapport à toutes les stratégies affectées.
Remarque
Tous les fournisseurs de ressources Azure ne prennent pas en charge les analyses d’évaluation à la demande. Par exemple, Azure Virtual Network Manager (AVNM) ne prend actuellement pas en charge les déclencheurs manuels ou le cycle d’évaluation de conformité de stratégie standard (analyses quotidiennes).
Analyse d’évaluation à la demande à l’aide de REST
En tant que processus asynchrone, le point de terminaison REST pour démarrer l’analyse n’attend pas la fin de l’analyse pour répondre. Au lieu de cela, il fournit un URI pour interroger l’état de l’évaluation demandée.
Dans chaque URI d’API REST, vous devez remplacer les variables utilisées par vos propres valeurs :
-
{resourceGroupName}
: Remplacez par le nom de votre groupe de ressources. -
{subscriptionId}
: Mettez votre ID d’abonnement à la place.
L’analyse prend en charge l’évaluation des ressources dans un abonnement ou dans un groupe de ressources. Lancez une analyse pour une étendue avec une commande POST d’API REST en utilisant les structures d’URI suivantes :
Utilisez la commande suivante pour évaluer un abonnement. Vous pouvez exécuter la commande depuis votre navigateur sur États des stratégies – Déclencher l’évaluation de l’abonnement en utilisant l’option Essayer.
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
Utilisez la commande suivante pour évaluer un groupe de ressources. Vous pouvez exécuter la commande depuis votre navigateur sur États des stratégies – Déclencher l’évaluation du groupe de ressources en utilisant l’option Essayer.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
Les appels d’API REST d’abonnement et de groupe de ressources retournent un état 202 accepté. Une propriété location
est incluse dans l’en-tête de la réponse avec le format suivant :
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/asyncOperationResults/{ResourceContainerGUID}?api-version=2019-10-01
{ResourceContainerGUID}
est généré de manière statique pour l’étendue demandée. Si une étendue exécute déjà une analyse à la demande, aucune nouvelle analyse n’est démarrée. Au lieu de cela, le même URI {ResourceContainerGUID}
location
pour l’état est fourni à la nouvelle requête. Une commande GET de l’API REST vers l’URI location
retourne un 202 Accepté pendant que l’évaluation est en cours. Une fois l’analyse de l’évaluation terminée, elle retourne un état 200 OK. Le corps d’une analyse terminée est une réponse JSON avec l’état : succeeded
.
Analyse d’évaluation à la demande avec Azure CLI
L’analyse de conformité est lancée avec la commande az policy state trigger-scan.
Par défaut, az policy state trigger-scan
démarre une évaluation pour toutes les ressources de l’abonnement actuel. Pour démarrer une évaluation sur un groupe de ressources spécifique, utilisez le paramètre resource-group
. L’exemple suivant démarre une analyse de conformité dans l’abonnement actuel pour un groupe de ressources Remplacez resourceGroupName
par le nom de votre groupe de ressources :
az policy state trigger-scan --resource-group "resourceGroupName"
Vous pouvez choisir de ne pas attendre que le processus asynchrone soit terminé avant de poursuivre avec le paramètre no-wait
.
Analyse d’évaluation à la demande avec Azure PowerShell
L’analyse de conformité est lancée à l’aide de la cmdlet Start-AzPolicyComplianceScan.
Par défaut, Start-AzPolicyComplianceScan
démarre une évaluation pour toutes les ressources de l’abonnement actuel. Pour démarrer une évaluation sur un groupe de ressources spécifique, utilisez le paramètre ResourceGroupName
. L’exemple suivant démarre une analyse de conformité dans l’abonnement actuel pour un groupe de ressources Remplacez resourceGroupName
par le nom de votre groupe de ressources :
Start-AzPolicyComplianceScan -ResourceGroupName 'resourceGroupName'
Vous pouvez faire en sorte que PowerShell attende la fin de l’appel asynchrone avant de fournir la sortie des résultats ou exécuter l’analyse en arrière-plan sous la forme d’un travail. Afin d’utiliser un travail PowerShell pour exécuter l’analyse de conformité en arrière-plan, utilisez le paramètre AsJob
et définissez la valeur sur un objet, comme $job
dans cet exemple :
$job = Start-AzPolicyComplianceScan -AsJob
Vous pouvez vérifier l’état du travail en vérifiant l’objet $job
. Le travail est du type Microsoft.Azure.Commands.Common.AzureLongRunningJob
. Utilisez Get-Member
sur l’objet $job
pour afficher les propriétés et les méthodes disponibles.
Pendant l’exécution de l’analyse de conformité, la vérification de l’objet $job
génère des résultats tels que les suivants :
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
2 Long Running O... AzureLongRunni... Running True localhost Start-AzPolicyCompliance...
Lorsque l’analyse de conformité est terminée, la propriété State
prend la valeur Terminé.
Analyse d’évaluation à la demande avec Visual Studio Code
L’extension Azure Policy pour Visual Studio Code peut exécuter une analyse d’évaluation pour une ressource spécifique. Cette analyse est un processus synchrone, contrairement aux méthodes Azure PowerShell et REST. Pour plus d’informations et pour connaître les étapes à suivre, consultez Évaluation à la demande avec l’extension VS Code.
Analyse de l’évaluation à la demande avec GitHub Actions
Utilisez l’action Analyse de conformité Azure Policy pour déclencher une analyse d’évaluation à la demande à partir de votre workflow GitHub sur un nombre quelconque de ressources, de groupes de ressources ou d’abonnements et pour contrôler le workflow en fonction de l’état de conformité des ressources. Vous pouvez également configurer le workflow pour qu’il s’exécute à une heure planifiée afin d’obtenir l’état de conformité le plus récent au moment opportun. Si vous le souhaitez, GitHub Actions peut générer un rapport sur l’état de conformité des ressources analysées en vue d’une analyse plus poussée ou de l’archivage.
L’exemple suivant exécute une analyse de conformité pour un abonnement. Dans scopes
utilisez votre ID d’abonnement.
on:
schedule:
- cron: '0 8 * * *' # runs every morning 8am
jobs:
assess-policy-compliance:
runs-on: ubuntu-latest
steps:
- name: Login to Azure
uses: azure/login@v2
with:
creds: ${{secrets.AZURE_CREDENTIALS}}
- name: Check for resource compliance
uses: azure/policy-compliance-scan@v0
with:
scopes: |
/subscriptions/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e
Pour plus d’informations et pour obtenir des exemples de workflow, consultez le référentiel GitHub Actions pour l’analyse de conformité Azure Policy.
Portail
Le portail Azure permet de visualiser et comprendre l’état de conformité de votre environnement selon une représentation graphique. 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. 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. La page Conformité regroupe essentiellement les mêmes informations (à l’exception du graphique), mais avec plus d’options de tri et de filtrage.
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é. Le nombre de ressources et de stratégies non conformes est aussi indiqué pour chaque affectation. En sélectionnant une stratégie ou une initiative dans le tableau, vous obtenez davantage de détails sur la conformité de l’affectation concernée.
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. Par défaut, l’onglet est défini sur Non conforme, mais un filtre peut être appliqué. Les événements (Append, Audit, Deny, Deploy, Modify) déclenchés par la requête pour créer une ressource sont affichés dans l’onglet Événements.
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. 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.
Une fois de retour dans la page de conformité des ressources, sélectionnez et maintenez l’appui (ou 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é. 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. Le journal d’activité fournit davantage de contexte ainsi que des informations supplémentaires sur ces événements.
Remarque
Les résultats de conformité peuvent être exportés depuis le portail avec des requêtes Azure Resource Graph.
Ligne de commande
Les mêmes informations disponibles dans le portail peuvent être récupérées avec l’API REST, Azure CLI et Azure PowerShell.
API REST
Pour plus d’informations sur l’API REST, consultez la référence Azure Policy. Les pages de référence de l’API REST ont une option Essayer sur chaque opération qui vous permet d’exécuter la commande dans un navigateur. Vous pouvez également utiliser Azure CLI ou votre client d’API REST préféré pour exécuter des commandes.
Synthétiser les résultats
Avec l’API REST, vous pouvez résumer par conteneur, définition ou affectation. 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 :
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/summarize?api-version=2019-10-01
La sortie récapitule l’abonnement, et la conformité résumée se trouve dans les propriétés et les propriétés nonCompliantResources
et nonCompliantPolicies
. Cette requête fournit d’autres détails, notamment sur chaque affectation concernée par la non-conformité, fournit des informations sur la définition de chaque affectation. Chaque objet de stratégie dans la hiérarchie fournit un queryResultsUri
qui peut être utilisé pour obtenir plus de détails à ce niveau.
Interroger des ressources
Dans l’exemple précédent, value.policyAssignments.policyDefinitions.results.queryResultsUri
fournit un exemple d’URI pour toutes les ressources non conformes pour une définition de stratégie spécifique. Dans la valeur $filter
, ComplianceState est égal (eq) à NonCompliant
, PolicyAssignmentId
est spécifié pour la définition de stratégie, puis pour PolicyDefinitionId proprement dit. La raison d’inclure le PolicyAssignmentId
dans le filtre est que le PolicyDefinitionId
peut exister dans plusieurs affectations de stratégie ou d’initiative avec différentes étendues. En spécifiant à la fois le PolicyAssignmentId
et le PolicyDefinitionId
, nous pouvons être explicites dans les résultats que nous recherchons. Auparavant, pour PolicyStates
nous avons utilisé latest
, qui définit automatiquement une plage de temps from
et to
dans les dernières 24 heures.
Exemple de valeur queryResultsUri
:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2025-01-01 04:28:22Z&$to=2025-02-10 04:28:22Z&$filter=ComplianceState eq 'NonCompliant' 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'
Afficher les événements
Lorsqu’une ressource est créée ou mise à jour, un résultat d’évaluation de stratégie est généré. Ces résultats sont appelés événements de stratégie. L’URI suivant permet d’afficher les événements de stratégie récents associés à l’abonnement.
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/default/queryResults?api-version=2019-10-01
Pour plus d’informations sur l’interrogation d’événements de stratégie, consultez Événements Azure Policy.
Azure CLI
Le groupe de commande Azure CLI pour Azure Policy couvre la plupart des opérations disponibles dans REST ou dans Azure PowerShell. Pour obtenir la liste complète des commandes disponibles, consultez az policy.
Obtenez le résumé d’état de la stratégie affectée au premier plan qui comporte le plus grand nombre de ressources non conformes.
az policy state summarize --top 1
Obtenez l'enregistrement de l'état de la ressource évaluée le plus récemment et la sortie se fait par défaut par horodatage dans l'ordre décroissant.
az policy state list --top 1
Obtenez des détails pour toutes les ressources non conformes du réseau virtuel.
az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'"
Obtenez des événements liés aux ressources non conformes du réseau virtuel qui se sont produits après une date spécifique. Utilisez le paramètre from
avec une date au format ISO 8601.
az policy event list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'" --from '2025-02-10T00:00:00Z'
Azure PowerShell
Vous pouvez exécuter les commandes suivantes à partir d’Azure Cloud Shell.
Obtenez le résumé d’état de la stratégie affectée au premier plan qui comporte le plus grand nombre de ressources non conformes.
Get-AzPolicyStateSummary -Top 1
Obtenez l’enregistrement d’état pour la ressource la plus récente évaluée. La sortie se fait par défaut par horodatage dans l'ordre décroissant.
Get-AzPolicyState -Top 1
Obtenez des détails pour toutes les ressources non conformes du réseau virtuel.
Get-AzPolicyState -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'"
Obtenez des événements liés aux ressources non conformes du réseau virtuel qui se sont produits après une date spécifique. Utilisez le paramètre From
avec une date au format ISO 8601.
Get-AzPolicyEvent -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'" -From '2025-02-10'
La sortie inclut une PrincipalOid
propriété qui peut être utilisée pour obtenir un utilisateur spécifique avec l’applet de commande Get-AzADUser
Azure PowerShell. Remplacez {principalOid}
par la valeur que vous obtenez à partir de la commande précédente.
(Get-AzADUser -ObjectId {principalOid}).DisplayName
Journaux d’activité Azure Monitor
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 de l’évaluation des nouvelles ressources et de celles mises à jour en utilisant des requêtes Kusto et la table AzureActivity
. 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é.
Azure Resource Graph
Les enregistrements de conformité sont stockés dans Azure Resource Graph (ARG). Les données peuvent être exportées à partir de requêtes ARG pour former des tableaux de bord personnalisés en fonction des étendues et des stratégies intéressantes. Examinez nos exemples de requêtes pour exporter des données de conformité au travers d’ARG.
É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 corriger des ressources non conformes.
- Pour en savoir plus sur les groupes d’administration, consultez Organiser vos ressources avec des groupes d’administration Azure.