Démarrage rapide : Créer une attribution de stratégie pour identifier des ressources non conformes à l'aide d'un fichier Bicep
Article
Au cours de ce démarrage rapide, vous utilisez un fichier Bicep pour créer une affectation de stratégie qui valide la conformité de la ressource à une stratégie Azure. 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’affectation de stratégie, vous identifiez les machines virtuelles non conformes.
Bicep est un langage spécifique à un domaine (DSL) qui utilise la syntaxe déclarative pour déployer des ressources Azure. Il fournit une syntaxe concise, une cohérence des types fiable et une prise en charge de la réutilisation du code. Bicep offre la meilleure expérience de création pour vos solutions d’infrastructure en tant que code dans Azure.
Lors de l’affectation d’une définition de stratégie ou d’initiative intégrée, il est facultatif de référencer une version. Les affectations de stratégie des définitions intégrées utilisent par défaut la dernière version et héritent automatiquement des changements des versions mineures, sauf indication contraire.
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 aucun disque managé.
Le fichier Bicep utilise trois paramètres pour déployer l’affectation de stratégie :
policyAssignmentName crée l’affectation de stratégie appelée audit-vm-managed-disks.
policyDefinitionID utilise l’ID de la définition de stratégie intégrée. Pour référence, les commandes permettant d’obtenir l’ID se trouvent dans la section pour déployer le modèle.
policyDisplayName crée un nom complet visible dans le portail Azure.
Pour obtenir plus d’informations sur les fichiers Bicep :
Vous pouvez déployer le fichier Bicep avec Azure PowerShell ou Azure CLI.
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.
Connect-AzAccount# Run these commands if you have multiple subscriptionsGet-AzSubScriptionSet-AzContext -Subscription <subscriptionID>
Azure CLI
az login# Run these commands if you have multiple subscriptionsaz account list --output table
az account set --subscription<subscriptionID>
Vous pouvez vérifier si Microsoft.PolicyInsights est inscrit. Si ce n’est pas le cas, vous pouvez exécuter une commande pour inscrire le fournisseur de ressources.
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.
Les commandes suivantes affichent la valeur du paramètre policyDefinitionID :
(Get-AzPolicyDefinition |
Where-Object { $_.Properties.DisplayName -eq'Audit VMs that do not use managed disks' }).ResourceId
Azure CLI
az policy definition list \
--query"[?displayName=='Audit VMs that do not use managed disks']".id \
--output tsv
Les commandes suivantes déploient la définition de stratégie dans votre groupe de ressources. Remplacez <resourceGroupName> par le nom de votre groupe de ressources :
La variable $rg stocke les propriétés pour le groupe de ressources. La variable $deployparms utilise splatting pour créer des valeurs de paramètre et améliorer la lisibilité. La commande New-AzResourceGroupDeployment utilise les valeurs de paramètre définies dans la variable $deployparms.
Name est le nom de déploiement affiché dans la sortie et dans Azure pour les déploiements du groupe de ressources.
ResourceGroupName utilise la propriété $rg.ResourceGroupName pour obtenir le nom de votre groupe de ressources dans lequel la stratégie est attribuée.
TemplateFile spécifie le nom du fichier Bicep et l’emplacement sur votre ordinateur local.
Azure CLI
rgname=$(az group show --resource-group<resourceGroupName>--query name --output tsv)
az deployment group create \
--name PolicyDeployment \
--resource-group$rgname \
--template-file policy-assignment.bicep
La variable rgname utilise une expression pour obtenir le nom de votre groupe de ressources utilisé dans la commande de déploiement.
name est le nom de déploiement affiché dans la sortie et dans Azure pour les déploiements du groupe de ressources.
resource-group est le nom de votre groupe de ressources dans lequel la stratégie est attribuée.
template-file spécifie le nom du fichier Bicep et l’emplacement sur votre ordinateur local.
Vous pouvez vérifier le déploiement de l’affectation de stratégie avec la commande suivante :
Une fois l’affectation de stratégie déployée, les machines virtuelles déployées dans le groupe de ressources sont auditées en matière de conformité avec la stratégie de disque managé.
L’état de conformité d’une nouvelle affectation de stratégie prend quelques minutes pour devenir actif et fournir des résultats sur l’état de la stratégie.
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 le complianceState montre NonCompliant.
Expliquez les principes de base de la sécurité des données, de la gestion de cycle de vie, de la sécurité des informations et de la conformité pour protéger un déploiement Microsoft 365.