Rövid útmutató: Szabályzat-hozzárendelés létrehozása a nem megfelelő erőforrások azonosításához az Azure PowerShell használatával

Az Azure-ral való megfelelőség megértéséhez szükséges első lépés a saját erőforrásai állapotának megállapítása. Ebben a rövid útmutatóban egy szabályzat-hozzárendelést hoz létre, amely azonosítja a nem megfelelő erőforrásokat az Azure PowerShell használatával. A szabályzat egy erőforráscsoporthoz van rendelve, és naplóz egy felügyelt lemezt nem használó virtuális gépeket. A szabályzat-hozzárendelés létrehozása után azonosítja a nem megfelelő virtuális gépeket.

Az Azure PowerShell-modulok az Azure-erőforrások parancssorból vagy szkriptekben való kezelésére használhatók. Ez a cikk azt ismerteti, hogyan hozhat létre szabályzat-hozzárendelést az Azure PowerShell használatával.

Előfeltételek

  • Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.
  • Azure PowerShell.
  • Visual Studio Code.
  • Microsoft.PolicyInsightsRegisztrálni kell az Azure-előfizetésében. Erőforrás-szolgáltató regisztrálásához engedéllyel kell rendelkeznie az erőforrás-szolgáltatók regisztrálásához. Ez az engedély szerepel a közreműködői és tulajdonosi szerepkörökben.
  • Legalább egy olyan virtuális géppel rendelkező erőforráscsoport, amely nem használ felügyelt lemezeket.

Csatlakozás az Azure szolgáltatáshoz

Egy Visual Studio Code-terminál munkamenetből csatlakozzon az Azure-hoz. Ha több előfizetéssel rendelkezik, futtassa a parancsokat az előfizetés környezetének beállításához. Cserélje le a <subscriptionID> értékét a saját Azure-előfizetése azonosítójára.

Connect-AzAccount

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

Erőforrás-szolgáltató regisztrálása

Ha egy erőforrás-szolgáltató regisztrálva van, az elérhető az Azure-előfizetésben.

Annak ellenőrzéséhez, hogy regisztrálva van-e Microsoft.PolicyInsights , futtassa a következőt Get-AzResourceProvider: . Az erőforrás-szolgáltató számos erőforrástípust tartalmaz. Ha az eredmény NotRegistered fut Register-AzResourceProvider:

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

Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'

További információ: Get-AzResourceProvider és Register-AzResourceProvider.

Szabályzat-hozzárendelés létrehozása

Az alábbi parancsokkal hozzon létre egy új szabályzat-hozzárendelést az erőforráscsoporthoz. Ez a példa egy meglévő erőforráscsoportot használ, amely felügyelt lemezek nélküli virtuális gépet tartalmaz. Az erőforráscsoport a szabályzat-hozzárendelés hatóköre. Ez a példa a felügyelt lemezeket nem használó beépített szabályzatdefiníciós naplózási virtuális gépeket használja.

Futtassa a következő parancsokat, és cserélje le <resourceGroupName> az erőforráscsoport nevére:

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

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

A $rg változó az erőforráscsoport tulajdonságait tárolja, a változó pedig $definition a szabályzatdefiníció tulajdonságait. A tulajdonságokat a rendszer a következő parancsokban használja.

Futtassa a következő parancsot a szabályzat-hozzárendelés létrehozásához:

$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

A $policyparms változó splatting használatával hozza létre a paraméterértékeket, és javítja az olvashatóságot. A New-AzPolicyAssignment parancs a változóban definiált $policyparms paraméterértékeket használja.

  • Name létrehozza a hozzárendelésben ResourceIdhasznált házirend-hozzárendelés nevét.
  • DisplayName a szabályzat-hozzárendelés neve, és látható az Azure Portalon.
  • Scope A tulajdonság használatával $rg.ResourceId rendeli hozzá a szabályzatot az erőforráscsoporthoz.
  • PolicyDefinition hozzárendeli a változóban tárolt szabályzatdefiníciót $definition .
  • Description a szabályzat-hozzárendelés környezetének hozzáadására használható.

A szabályzat-hozzárendelés eredményei a következő példához hasonlítanak:

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

További információ: New-AzPolicyAssignment.

Ha vissza szeretné adni a szabályzat-hozzárendelés adatait, futtassa a következő parancsot:

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

A nem megfelelő erőforrások azonosítása

Az új szabályzat-hozzárendelés megfelelőségi állapota néhány percet vesz igénybe, amíg aktívvá válik, és eredményeket ad a szabályzat állapotáról.

Az alábbi paranccsal azonosíthatja azokat az erőforrásokat, amelyek nem felelnek meg a létrehozott szabályzat-hozzárendelésnek:

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

Get-AzPolicyState @complianceparms

A $complianceparms változó splatting használatával hozza létre a Get-AzPolicyState parancsban használt paraméterértékeket.

  • ResourceGroupName lekéri az erőforráscsoport nevét a $rg.ResourceGroupName tulajdonságból.
  • PolicyAssignmentName A szabályzat-hozzárendelés létrehozásakor használt nevet adja meg.
  • Filter kifejezéssel megkeresi azokat az erőforrásokat, amelyek nem felelnek meg a szabályzat-hozzárendelésnek.

Az eredmények az alábbi példához hasonlítanak, és ComplianceState a következőket jelenítik meg 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, ]}

További információ: Get-AzPolicyState.

Az erőforrások eltávolítása

A szabályzat-hozzárendelés eltávolításához futtassa a következő parancsot:

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

Kijelentkezés az Azure PowerShell-munkamenetből:

Disconnect-AzAccount

Következő lépések

Ebben a rövid útmutatóban hozzárendelt egy szabályzatdefiníciót az Azure-környezetben megtalálható, nem megfelelő erőforrások azonosítása céljából.

Ha többet szeretne megtudni az erőforrás-megfelelőséget érvényesítő szabályzatok hozzárendeléséről, folytassa az oktatóanyagban.