Démarrage rapide : Créer une affectation de stratégie pour identifier les ressources non conformes à l’aide d’Azure PowerShellQuickstart: Create a policy assignment to identify non-compliant resources using Azure PowerShell

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. Dans ce démarrage rapide, vous créerez une affectation de stratégie pour identifier les machines virtuelles qui n’utilisent pas de disques managés.In this quickstart, you create a policy assignment to identify virtual machines that aren't using managed disks. Lorsque vous aurez terminé, vous identifierez les machines virtuelles qui ne sont pas conformes.When complete, you'll identify virtual machines that are non-compliant.

Le module Azure PowerShell est utilisé pour gérer des ressources Azure à partir de la ligne de commande ou dans des scripts.The Azure PowerShell module is used to manage Azure resources from the command line or in scripts. Ce guide explique comment utiliser un module Az pour créer une attribution de stratégie.This guide explains how to use Az module to create a policy assignment.

Conditions préalables requisesPrerequisites

  • 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.

  • Avant de commencer, assurez-vous que la dernière version d’Azure PowerShell est installée.Before you start, make sure that the latest version of Azure PowerShell is installed. Pour plus d'informations, consultez Installer le module Azure PowerShell.See Install Azure PowerShell module for detailed information.

  • Inscrivez le fournisseur de ressources Azure Policy Insights à l’aide d’Azure PowerShell.Register the Azure Policy Insights resource provider using Azure PowerShell. 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:

    # Register the resource provider if it's not already registered
    Register-AzResourceProvider -ProviderNamespace '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.

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 pour la définition Auditer des machines virtuelles sans disques managés.In this quickstart, you create a policy assignment for the Audit VMs without managed disks definition. Cette définition de stratégie identifie des machines virtuelles n’utilisant pas de disques managés.This policy definition identifies virtual machines not using managed disks.

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

# Get a reference to the resource group that will be the scope of the assignment
$rg = Get-AzResourceGroup -Name '<resourceGroupName>'

# Get a reference to the built-in policy definition that will be assigned
$definition = Get-AzPolicyDefinition | Where-Object { $_.Properties.DisplayName -eq 'Audit VMs that do not use managed disks' }

# Create the policy assignment with the built-in definition against your resource group
New-AzPolicyAssignment -Name 'audit-vm-manageddisks' -DisplayName 'Audit VMs without managed disks Assignment' -Scope $rg.ResourceId -PolicyDefinition $definition

Les commandes précédentes utilisent les informations suivantes :The preceding commands use 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.
  • Definition : définition de la stratégie, que vous utilisez pour créer l’attribution.Definition – The policy definition, 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.
  • 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.

Vous êtes maintenant prêt à identifier les ressources non conformes pour comprendre l’état de conformité de votre environnement.You're now ready to identify non-compliant resources to understand the compliance state of your environment.

Identifier les ressources non conformesIdentify non-compliant resources

Utilisez les informations suivantes pour identifier les ressources qui ne sont pas conformes à l’attribution de stratégie que vous avez créée.Use the following information to identify resources that aren't compliant with the policy assignment you created. Exécutez les commandes suivantes :Run the following commands:

# Get the resources in your resource group that are non-compliant to the policy assignment
Get-AzPolicyState -ResourceGroupName $rg.ResourceGroupName -PolicyAssignmentName 'audit-vm-manageddisks' -Filter 'IsCompliant eq false'

Pour plus d’informations sur l’obtention de l’état de la stratégie, voir Get-AzPolicyState.For more information about getting policy state, see Get-AzPolicyState.

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

Timestamp                   : 3/9/19 9:21:29 PM
ResourceId                  : /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmId}
PolicyAssignmentId          : /subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/audit-vm-manageddisks
PolicyDefinitionId          : /providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d
IsCompliant                 : False
SubscriptionId              : {subscriptionId}
ResourceType                : /Microsoft.Compute/virtualMachines
ResourceTags                : tbd
PolicyAssignmentName        : audit-vm-manageddisks
PolicyAssignmentOwner       : tbd
PolicyAssignmentScope       : /subscriptions/{subscriptionId}
PolicyDefinitionName        : 06a78e20-9358-41c9-923c-fb736d382a4d
PolicyDefinitionAction      : audit
PolicyDefinitionCategory    : Compute
ManagementGroupIds          : {managementGroupId}

Les résultats correspondent à ce que vous voyez sous l’onglet Conformité des ressources d’une attribution de stratégie dans la vue du portail Azure.The results match what you see in the Resource compliance tab of a policy assignment in the Azure portal view.

Nettoyer les ressourcesClean up resources

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

# Removes the policy assignment
Remove-AzPolicyAssignment -Name 'audit-vm-manageddisks' -Scope '/subscriptions/<subscriptionID>/resourceGroups/<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 visant à vérifier que les nouvelles ressources sont conformes, suivez le tutoriel :To learn more about assigning policies to validate that new resources are compliant, continue to the tutorial for: