Démarrage rapide : Créer une affectation de stratégie pour identifier les ressources non conformes avec Azure CLIQuickstart: Create a policy assignment to identify non-compliant resources with Azure CLI

La première étape pour comprendre la conformité dans Azure consiste à identifier l’état de vos ressources.The first step in understanding compliance in Azure is to identify the status of your resources. Ce démarrage rapide vous guide pas à pas dans le processus de création d’une attribution de stratégie pour identifier les machines virtuelles qui n’utilisent pas de disques managés.This quickstart steps you through the process of creating a policy assignment to identify virtual machines that aren't using managed disks.

À la fin de ce processus, vous aurez identifié correctement les machines virtuelles qui n’utilisent pas de disques managés.At the end of this process, you'll successfully identify virtual machines that aren't using managed disks. Elles sont non conformes à l’attribution de stratégie.They're non-compliant with the policy assignment.

Azure CLI permet de créer et de gérer des ressources Azure à partir de la ligne de commande ou dans des scripts.Azure CLI is used to create and manage Azure resources from the command line or in scripts. Ce guide utilise l’interface de ligne de commande Azure pour créer une attribution de stratégie et identifier les ressources non conformes dans votre environnement Azure.This guide uses Azure CLI to create a policy assignment and to identify non-compliant resources in your Azure environment.

PrérequisPrerequisites

  • Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

  • Ce guide de démarrage rapide nécessite que vous exécutiez la version 2.0.76 (ou ultérieure) d’Azure CLI pour installer et utiliser l’interface de ligne de commande localement.This quickstart requires that you run Azure CLI version 2.0.76 or later to install and use the CLI locally. Pour connaître la version de l’interface, exécutez az --version.To find the version, run az --version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.If you need to install or upgrade, see Install Azure CLI.

  • Inscrivez le fournisseur de ressources Azure Policy Insights à l'aide d'Azure CLI.Register the Azure Policy Insights resource provider using Azure CLI. L’inscription du fournisseur de ressources permet de s’assurer que votre abonnement fonctionne avec lui.Registering the resource provider makes sure that your subscription works with it. Pour inscrire un fournisseur de ressources, vous devez avoir l’autorisation pour une opération de fournisseur de ressources.To register a resource provider, you must have permission to the register resource provider operation. Cette opération est incluse dans les rôles de contributeur et de propriétaire.This operation is included in the Contributor and Owner roles. Exécutez la commande suivante pour enregistrer le fournisseur de ressources :Run the following command to register the resource provider:

    az provider register --namespace 'Microsoft.PolicyInsights'
    

    Pour plus d’informations sur l’inscription et l’affichage des fournisseurs de ressources, consultez Fournisseurs et types de ressources.For more information about registering and viewing resource providers, see Resource Providers and Types

  • Si ce n’est pas déjà fait, installez ARMClient.If you haven't already, install the ARMClient. C’est un outil qui envoie des requêtes HTTP aux API Azure Resource Manager.It's a tool that sends HTTP requests to Azure Resource Manager-based APIs.

Utiliser Azure Cloud ShellUse Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Pour démarrer Azure Cloud Shell :To start Azure Cloud Shell:

OptionOption Exemple/LienExample/Link
Sélectionnez Essayer dans le coin supérieur droit d’un bloc de code.Select Try It in the upper-right corner of a code block. La sélection de Essayer ne copie pas automatiquement le code dans Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exemple Essayer pour Azure Cloud Shell
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Lancer Cloud Shell dans une nouvelle fenêtreLaunch Cloud Shell in a new window
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Bouton Cloud Shell du portail Azure

Pour exécuter le code de cet article dans Azure Cloud Shell :To run the code in this article in Azure Cloud Shell:

  1. Démarrez Cloud Shell.Start Cloud Shell.

  2. Sélectionnez le bouton Copier dans un bloc de code pour copier le code.Select the Copy button on a code block to copy the code.

  3. Collez le code dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux, ou en sélectionnant Cmd+ Maj+V sur macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Sélectionnez Entrée pour exécuter le code.Select Enter to run the code.

Créer une affectation de stratégieCreate a policy assignment

Dans ce guide de démarrage rapide, vous créez une attribution de stratégie et affectez la définition Auditer les machines virtuelles qui n’utilisent pas de disques managés.In this quickstart, you create a policy assignment and assign the Audit VMs that do not use managed disks definition. La définition de cette stratégie identifie les ressources qui ne sont pas conformes aux conditions définies dans la définition de stratégie.This policy definition identifies resources that aren't compliant to the conditions set in the policy definition.

Exécutez la commande suivante pour créer une attribution de stratégie :Run the following command to create a policy assignment:

az policy assignment create --name 'audit-vm-manageddisks' --display-name 'Audit VMs without managed disks Assignment' --scope '<scope>' --policy '<policy definition ID>'

La commande précédente utilise les informations suivantes :The preceding command uses the following information:

  • Name : nom réel de l’attribution.Name - The actual name of the assignment. Pour cet exemple, audit-vm-manageddisks a été utilisé.For this example, audit-vm-manageddisks was used.
  • DisplayName : nom d’affichage pour l’attribution de stratégie.DisplayName - Display name for the policy assignment. Dans ce cas, nous allons utiliser l’affectation Audit VMs without managed disks (Auditer les machines virtuelles sans disques managés).In this case, you're using Audit VMs without managed disks Assignment.
  • Policy : ID de définition de la stratégie, que vous utilisez pour créer l’attribution.Policy – The policy definition ID, based on which you're using to create the assignment. Dans ce cas, il s’agit de l’ID de la définition de stratégie Auditer les machines virtuelles qui n’utilisent pas de disques managés.In this case, it's the ID of policy definition Audit VMs that do not use managed disks. Pour obtenir l’ID de définition de stratégie, exécutez cette commande : az policy definition list --query "[?displayName=='Audit VMs that do not use managed disks']"To get the policy definition ID, run this command: az policy definition list --query "[?displayName=='Audit VMs that do not use managed disks']"
  • Scope : une étendue détermine les ressources ou le regroupement de ressources sur lequel l’attribution de stratégie est appliquée.Scope - A scope determines what resources or grouping of resources the policy assignment gets enforced on. Elle va d’un abonnement à des groupes de ressources.It could range from a subscription to resource groups. Assurez-vous de remplacer <scope> par le nom de votre groupe de ressources.Be sure to replace <scope> with the name of your resource group.

Identifier les ressources non conformesIdentify non-compliant resources

Pour afficher les ressources qui ne sont pas conformes à cette nouvelle attribution, obtenez l’ID d’attribution de stratégie en exécutant les commandes suivantes :To view the resources that aren't compliant under this new assignment, get the policy assignment ID by running the following commands:

$policyAssignment = Get-AzPolicyAssignment | Where-Object { $_.Properties.DisplayName -eq 'Audit VMs without managed disks Assignment' }
$policyAssignment.PolicyAssignmentId

Pour plus d’informations sur les ID d’affectation de stratégie, consultez Get-AzPolicyAssignment.For more information about policy assignment IDs, see Get-AzPolicyAssignment.

Exécutez ensuite la commande suivante pour obtenir les ID des ressources non conformes, intégrés dans un fichier JSON :Next, run the following command to get the resource IDs of the non-compliant resources that are output into a JSON file:

armclient post "/subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2017-12-12-preview&$filter=IsCompliant eq false and PolicyAssignmentId eq '<policyAssignmentID>'&$apply=groupby((ResourceId))" > <json file to direct the output with the resource IDs into>

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/policyStates/$metadata#latest",
    "@odata.count": 3,
    "value": [{
            "@odata.id": null,
            "@odata.context": "https://management.azure.com/subscriptions/<subscriptionId>/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
            "ResourceId": "/subscriptions/<subscriptionId>/resourcegroups/<rgname>/providers/microsoft.compute/virtualmachines/<virtualmachineId>"
        },
        {
            "@odata.id": null,
            "@odata.context": "https://management.azure.com/subscriptions/<subscriptionId>/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
            "ResourceId": "/subscriptions/<subscriptionId>/resourcegroups/<rgname>/providers/microsoft.compute/virtualmachines/<virtualmachine2Id>"
        },
        {
            "@odata.id": null,
            "@odata.context": "https://management.azure.com/subscriptions/<subscriptionId>/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
            "ResourceId": "/subscriptions/<subscriptionName>/resourcegroups/<rgname>/providers/microsoft.compute/virtualmachines/<virtualmachine3ID>"
        }

    ]
}

Les résultats sont comparables à ce que vous devriez généralement voir sous Ressources non conformes dans la vue du portail Azure.The results are comparable to what you'd typically see listed under Non-compliant resources in the Azure portal view.

Supprimer des ressourcesClean up resources

Utilisez la commande suivante pour supprimer l’affectation créée :To remove the assignment created, use the following command:

az policy assignment delete --name 'audit-vm-manageddisks' --scope '/subscriptions/<subscriptionID>/<resourceGroupName>'

Étapes suivantesNext steps

Dans ce démarrage rapide, vous avez affecté une définition de stratégie pour identifier les ressources non conformes de votre environnement Azure.In this quickstart, you assigned a policy definition to identify non-compliant resources in your Azure environment.

Pour en savoir plus sur l’affectation de stratégies pour vérifier que les nouvelles ressources sont conformes, suivez le didacticiel :To learn more about assigning policies to validate that new resources are compliant, continue to the tutorial for: