Freigeben über


Schnellstart: Erstellen einer Richtlinienzuweisung zum Identifizieren nicht konformer Ressourcen mithilfe von Azure PowerShell

Zum Verständnis der Konformität in Azure müssen Sie zunächst wissen, wie Sie den Status Ihrer Ressourcen ermitteln. In diesem Schnellstart erstellen Sie mit Azure PowerShell eine Richtlinienzuweisung zum Ermitteln nicht konformer Ressourcen. Die Richtlinie wird einer Ressourcengruppe zugewiesen und überwacht VMs, die keine verwalteten Datenträger verwenden. Nachdem Sie die Richtlinienzuweisung erstellt haben, ermitteln Sie nicht konforme VMs.

Das Azure PowerShell-Modul kann zum Verwalten von Azure-Ressourcen über die Befehlszeile oder in Skripts verwendet werden. In diesem Artikel wird erläutert, wie Sie Azure PowerShell zum Erstellen einer Richtlinienzuweisung verwenden.

Beim Zuweisen einer integrierten Richtlinien- oder Initiativendefinition ist der Verweis auf eine Version optional. Richtlinienzuweisungen von integrierten Definitionen sind standardmäßig auf die neueste Version festgelegt und erben automatisch Nebenversionsänderungen, sofern nicht anders angegeben.

Voraussetzungen

  • Sollten Sie kein Azure-Konto haben, erstellen Sie zunächst ein kostenloses Konto.
  • Azure PowerShell.
  • Visual Studio Code.
  • Microsoft.PolicyInsights muss in Ihrem Azure-Abonnement registriert sein. Um einen Ressourcenanbieter zu registrieren, benötigen Sie die Berechtigung zum Registrieren von Ressourcenanbietern. Diese Berechtigung ist in den Rollen „Mitwirkender“ und „Besitzer“ enthalten.
  • Eine Ressourcengruppe mit mindestens einer VM, die keine verwalteten Datenträger verwendet.

Herstellen einer Verbindung mit Azure

Stellen Sie in einer Visual Studio Code-Terminalsitzung eine Verbindung mit Azure her. Wenn Sie über mehrere Abonnements verfügen, führen Sie die Befehle aus, um den Kontext für Ihr Abonnement festzulegen. Ersetzen Sie <subscriptionID> durch Ihre Azure-Abonnement-ID.

Connect-AzAccount

# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -Subscription <subscriptionID>

Registrieren des Ressourcenanbieters

Wenn ein Ressourcenanbieter registriert ist, ist er zur Verwendung in Ihrem Azure-Abonnement verfügbar.

Führen Sie Get-AzResourceProvider aus, um zu überprüfen, ob Microsoft.PolicyInsights registriert ist. Der Ressourcenanbieter enthält mehrere Ressourcentypen. Wenn das Ergebnis NotRegistered ist, führen Sie Register-AzResourceProvider aus:

 Get-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights' |
   Select-Object -Property ResourceTypes, RegistrationState

Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'

Weitere Informationen finden Sie unter Get-AzResourceProvider und Register-AzResourceProvider.

Erstellen einer Richtlinienzuweisung

Verwenden Sie die folgenden Befehle, um eine neue Richtlinienzuweisung für Ihre Ressourcengruppe zu erstellen. In diesem Beispiel wird eine vorhandene Ressourcengruppe verwendet, die eine VM ohne verwaltete Datenträger enthält. Die Ressourcengruppe ist der Bereich für die Richtlinienzuweisung. Dieses Beispiel verwendet die integrierte Richtliniendefinition Virtuelle Computer überwachen, die keine verwalteten Datenträger verwenden.

Führen Sie die folgenden Befehle aus, und ersetzen Sie <resourceGroupName> durch Ihren Ressourcengruppennamen:

$rg = Get-AzResourceGroup -Name '<resourceGroupName>'

$definition = Get-AzPolicyDefinition |
  Where-Object { $_.DisplayName -eq 'Audit VMs that do not use managed disks' }

Die Variable $rg speichert Eigenschaften für die Ressourcengruppe, und die Variable $definition speichert die Eigenschaften der Richtliniendefinition. Die Eigenschaften werden in nachfolgenden Befehlen verwendet.

Führen Sie den folgenden Befehl aus, um die Richtlinienzuweisung zu erstellen:

$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

Die Variable $policyparms verwendet Splatting, um Parameterwerte zu erstellen und die Lesbarkeit zu verbessern. Der Befehl New-AzPolicyAssignment verwendet die Parameterwerte, die in der Variablen $policyparms definiert sind.

  • Name erstellt den Richtlinienzuweisungsnamen, der in der ResourceId der Zuordnung verwendet wird.
  • DisplayName ist der Name für die Richtlinienzuweisung und ist im Azure-Portal sichtbar.
  • Scope verwendet die Eigenschaft $rg.ResourceId, um die Richtlinie der Ressourcengruppe zuzuweisen.
  • PolicyDefinition weist die in der Variablen $definition gespeicherte Richtliniendefinition zu.
  • Description kann verwendet werden, um Kontext zur Richtlinienzuweisung hinzuzufügen.

Die Ergebnisse der Richtlinienzuweisung ähneln dem folgenden Beispiel:

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

Weitere Informationen finden Sie unter New-AzPolicyAssignment.

Wenn Sie die Informationen zur Richtlinienzuweisung erneut anzeigen möchten, führen Sie den folgenden Befehl aus:

Get-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId

Identifizieren nicht konformer Ressourcen

Es dauert einige Minuten, bis der Konformitätszustand für eine neue Richtlinienzuweisung aktiviert ist und Ergebnisse zum Status der Richtlinie liefert.

Verwenden Sie folgenden Befehl, um Ressourcen zu ermitteln, die nicht mit der erstellten Richtlinienzuweisung konform sind:

$complianceparms = @{
ResourceGroupName = $rg.ResourceGroupName
PolicyAssignmentName = 'audit-vm-managed-disks'
Filter = 'IsCompliant eq false'
}

Get-AzPolicyState @complianceparms

Die Variable $complianceparms verwendet Splatting zum Erstellen von Parameterwerten, die im Befehl Get-AzPolicyState verwendet werden.

  • ResourceGroupName ruft den Ressourcengruppennamen aus der Eigenschaft $rg.ResourceGroupName ab.
  • PolicyAssignmentName gibt den Namen an, der beim Erstellen der Richtlinienzuweisung verwendet wird.
  • Filter verwendet einen Ausdruck, um Ressourcen zu finden, die nicht mit der Richtlinienzuweisung kompatibel sind.

Ihre Ergebnisse ähneln dem folgenden Beispiel, und ComplianceState zeigt 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, ]}

Weitere Informationen finden Sie unter Get-AzPolicyState.

Bereinigen von Ressourcen

Führen Sie den folgenden Befehl aus, um die Richtlinienzuweisung zu entfernen:

Remove-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId

Abmeldung von Ihrer Azure PowerShell-Sitzung:

Disconnect-AzAccount

Nächste Schritte

In diesem Schnellstart haben Sie eine Richtliniendefinition zum Identifizieren nicht kompatibler Ressourcen in Ihrer Azure-Umgebung zugewiesen.

Fahren Sie mit dem Tutorial fort, um mehr über das Zuweisen von Richtlinien zu lernen, die überprüfen, ob Ressourcen konform sind.