Démarrage rapide : Créer une attribution de stratégie pour identifier les ressources non conformes en utilisant Azure CLI

La première étape pour comprendre la conformité dans Azure consiste à identifier l’état de vos ressources. Dans ce guide de démarrage rapide, vous créez une attribution de stratégie pour identifier les ressources non conformes en utilisant Azure CLI. La stratégie est attribuée à un groupe de ressources et audite des machines virtuelles qui n’utilisent aucun disque managé. Après avoir créé l’attribution de stratégie, vous identifiez les machines virtuelles non conformes.

Azure CLI permet de créer et de gérer des ressources Azure à partir de la ligne de commande ou dans des 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.

Prérequis

  • Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.
  • Azure CLI.
  • Visual Studio Code.
  • Microsoft.PolicyInsights doit être inscrit dans votre abonnement Azure. Pour inscrire un fournisseur de ressources, vous devez avoir l’autorisation pour enregistrer les fournisseur de ressources. Cette autorisation est incluse dans les rôles Contributeur et Propriétaire.
  • Un groupe de ressources avec au moins une machine virtuelle qui n’utilise pas de disques managés.

Connexion à Azure

Depuis une session de terminal Visual Studio Code, connectez-vous à Azure. Si vous avez plusieurs abonnements, exécutez les commandes pour définir le contexte sur votre abonnement. Remplacez <subscriptionID> par l’identifiant de votre abonnement Azure.

az login

# Run these commands if you have multiple subscriptions
az account list --output table
az account set --subscription <subscriptionID>

Inscrire un fournisseur de ressources

Lorsqu’un fournisseur de ressources est inscrit, il est disponible pour être utilisé dans votre abonnement Azure.

Pour vérifier si Microsoft.PolicyInsights est inscrite, exécutez Get-AzResourceProvider. Le fournisseur de ressources contient plusieurs types de ressources. Si le résultat est NotRegistered, exécutez Register-AzResourceProvider:

az provider show \
  --namespace Microsoft.PolicyInsights \
  --query "{Provider:namespace,State:registrationState}" \
  --output table

az provider register --namespace Microsoft.PolicyInsights

Les commandes Azure CLI utilisent une barre oblique inverse (\) pour une continuation de ligne afin d’améliorer la visibilité. Pour plus d’informations, accédez à az provider.

Création d’affectations de stratégies

Utilisez les commandes suivantes pour créer une attribution de stratégie pour votre groupe de ressources. Cet exemple utilise un groupe de ressources existant qui contient une machine virtuelle sans disques managés. Le groupe de ressources est l’étendue de l’attribution de stratégie. Cet exemple utilise la définition de stratégie intégrée Auditer les machines virtuelles qui n’utilisent pas de disques managés.

Exécutez les commandes suivantes et remplacez <resourceGroupName> par le nom de votre groupe de ressources :

rgid=$(az group show --resource-group <resourceGroupName> --query id --output tsv)

definition=$(az policy definition list \
  --query "[?displayName=='Audit VMs that do not use managed disks']".name \
  --output tsv)

La variable rgid stocke les ID de groupe de ressources. La variable definition stocke le nom de la définition de stratégie, qui est un GUID.

Exécutez la commande suivante pour créer l’ attribution de stratégie :

az policy assignment create \
  --name 'audit-vm-managed-disks' \
  --display-name 'Audit VM managed disks' \
  --scope $rgid \
  --policy $definition \
  --description 'Azure CLI policy assignment to resource group'
  • name crée le nom de l’affectation de stratégie utilisé dans les affectations ResourceId.
  • display-name est le nom de l’attribution de stratégie et est visible dans le portail Azure.
  • scope utilise la variable $rgid pour attribuer la stratégie au groupe de ressources.
  • policy affecte la définition de stratégie stockée dans la variable $definition.
  • description peut être utilisé pour ajouter un contexte à propos de l’attribution de stratégie.

Les résultats de l’attribution de stratégie ressemblent à l’exemple suivant :

"description": "Azure CLI policy assignment to resource group",
"displayName": "Audit VM managed disks",
"enforcementMode": "Default",
"id": "/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks",
"identity": null,
"location": null,
"metadata": {
  "createdBy": "11111111-1111-1111-1111-111111111111",
  "createdOn": "2024-02-23T18:42:27.4780803Z",
  "updatedBy": null,
  "updatedOn": null
},
"name": "audit-vm-managed-disks",

Si vous voulez réafficher les informations d’attribution de stratégie, exécutez la commande suivante :

az policy assignment show --name "audit-vm-managed-disks" --scope $rgid

Pour plus d’informations, accédez à az policy assignment.

Identifier des ressources non conformes

L’état de conformité d’une nouvelle attribution de stratégie prend quelques minutes pour devenir actif et fournir des résultats sur l’état de la stratégie.

Utilisez la commande suivante pour identifier les ressources qui ne sont pas conformes à l’attribution de stratégie que vous avez créée :

policyid=$(az policy assignment show \
  --name "audit-vm-managed-disks" \
  --scope $rgid \
  --query id \
  --output tsv)

az policy state list --resource $policyid --filter "(isCompliant eq false)"

La variable policyid utilise une expression pour obtenir l’ID de l’affectation de stratégie. Le paramètre filter limite la sortie vers des ressources non conformes.

La sortie az policy state list est détaillée, mais pour cet article complianceState montre NonCompliant :

"complianceState": "NonCompliant",
"components": null,
"effectiveParameters": "",
"isCompliant": false,

Pour plus d’informations, accédez à az policy state.

Nettoyer les ressources

Pour supprimer l’attribution de stratégie, exécutez la commande suivante :

az policy assignment delete --name "audit-vm-managed-disks" --scope $rgid

Pour vous déconnecter de votre session Azure CLI :

az logout

Étapes suivantes

Dans ce démarrage rapide, vous avez affecté une définition de stratégie pour identifier les ressources non conformes de votre environnement Azure.

Pour en savoir plus sur l’attribution de stratégies qui valident la conformité des ressources, continuez avec le tutoriel.