Démarrage rapide : Créer une affectation de stratégie pour identifier les ressources non conformes à l’aide d’Azure PowerShell
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 allez créer une attribution de stratégie afin d’identifier les ressources non conformes en utilisant Azure PowerShell. 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.
Le module Azure PowerShell peut être utilisé pour gérer des ressources Azure à partir de la ligne de commande ou dans des scripts. Cet article explique comment utiliser Azure PowerShell pour créer une attribution de stratégie.
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.
Prérequis
- Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.
- Azure PowerShell.
- 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.
Connect-AzAccount
# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -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
:
Get-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights' |
Select-Object -Property ResourceTypes, RegistrationState
Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
Pour plus d’informations, accédez à Get-AzResourceProvider et Register-AzResourceProvider.
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 :
$rg = Get-AzResourceGroup -Name '<resourceGroupName>'
$definition = Get-AzPolicyDefinition |
Where-Object { $_.DisplayName -eq 'Audit VMs that do not use managed disks' }
La variable $rg
stocke les propriétés du groupe de ressources et la variable $definition
stocke les propriétés de la définition de stratégie. Les propriétés sont utilisées dans les commandes suivantes.
Exécutez la commande suivante pour créer l’ attribution de stratégie :
$policyparms = @{
Name = 'audit-vm-managed-disks'
DisplayName = 'Audit VM managed disks'
Scope = $rg.ResourceId
PolicyDefinition = $definition
Description = 'Az PowerShell policy assignment to resource group'
}
New-AzPolicyAssignment @policyparms
La variable $policyparms
utilise Splatting pour créer des valeurs de paramètre et améliorer la lisibilité. La commande New-AzPolicyAssignment
utilise les valeurs de paramètre définies dans la variable $policyparms
.
Name
crée le nom de l’affectation de stratégie utilisé dans les affectationsResourceId
.DisplayName
est le nom de l’attribution de stratégie et est visible dans le portail Azure.Scope
utilise la propriété$rg.ResourceId
pour affecter la stratégie au groupe de ressources.PolicyDefinition
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 :
Name : audit-vm-managed-disks
ResourceId : /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks
ResourceName : audit-vm-managed-disks
ResourceGroupName : {resourceGroupName}
ResourceType : Microsoft.Authorization/policyAssignments
SubscriptionId : {subscriptionId}
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks
Properties : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.Policy.PsPolicyAssignmentProperties
Pour plus d’informations, accédez à New-AzPolicyAssignment.
Si vous voulez réafficher les informations d’attribution de stratégie, exécutez la commande suivante :
Get-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId
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 :
$complianceparms = @{
ResourceGroupName = $rg.ResourceGroupName
PolicyAssignmentName = 'audit-vm-managed-disks'
Filter = 'IsCompliant eq false'
}
Get-AzPolicyState @complianceparms
La variable $complianceparms
utilise la mise en forme pour créer des valeurs de paramètre utilisées dans la commande Get-AzPolicyState
.
ResourceGroupName
obtient le nom du groupe de ressources de la propriété$rg.ResourceGroupName
.PolicyAssignmentName
spécifie le nom utilisé lors de la création de l’affectation de stratégie.Filter
utilise une expression pour rechercher des ressources qui ne sont pas conformes à l’affectation de stratégie.
Vos résultats doivent ressembler à l’exemple suivant et ComplianceState
montre NonCompliant
:
Timestamp : 2/14/2024 18:25:37
ResourceId : /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.compute/virtualmachines/{vmId}
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.authorization/policyassignments/audit-vm-managed-disks
PolicyDefinitionId : /providers/microsoft.authorization/policydefinitions/06a78e20-9358-41c9-923c-fb736d382a4d
IsCompliant : False
SubscriptionId : {subscriptionId}
ResourceType : Microsoft.Compute/virtualMachines
ResourceLocation : {location}
ResourceGroup : {resourceGroupName}
ResourceTags : tbd
PolicyAssignmentName : audit-vm-managed-disks
PolicyAssignmentOwner : tbd
PolicyAssignmentScope : /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}
PolicyDefinitionName : 06a78e20-9358-41c9-923c-fb736d382a4d
PolicyDefinitionAction : audit
PolicyDefinitionCategory : tbd
ManagementGroupIds : {managementGroupId}
ComplianceState : NonCompliant
AdditionalProperties : {[complianceReasonCode, ]}
Pour plus d’informations, accédez à Get-AzPolicyState.
Nettoyer les ressources
Pour supprimer l’attribution de stratégie, exécutez la commande suivante :
Remove-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId
Pour vous déconnecter de votre session Azure PowerShell :
Disconnect-AzAccount
É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’affectation de stratégies qui valident la conformité des ressources, passez au didacticiel.