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.
Beépített szabályzat- vagy kezdeményezésdefiníciók hozzárendelésekor nem kötelező egy verzióra hivatkozni. A beépített definíciók házirend-hozzárendelései alapértelmezés szerint a legújabb verzióhoz lesznek hozzárendelve, és ha másként nincs megadva, automatikusan öröklik az alverzió módosításait.
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.PolicyInsights
Regisztrá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 { $_.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ésbenResourceId
haszná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.