Nem megfelelő erőforrások szervizelése Azure PolicyRemediate non-compliant resources with Azure Policy

Azok az erőforrások, amelyek nem felelnek meg a deployIfNotExists vagy a házirend- módosítási szabályzatoknak, szervizelésselkompatibilis állapotba helyezhetők.Resources that are non-compliant to a deployIfNotExists or modify policy can be put into a compliant state through Remediation. A szervizelést a rendszer arra utasítja, Azure Policy hogy futtassa a deployIfNotExists hatást vagy a hozzárendelt szabályzat címkézési műveleteit a meglévő erőforrásokon.Remediation is accomplished by instructing Azure Policy to run the deployIfNotExists effect or the tag operations of the assigned policy on your existing resources. Ez a cikk azokat a lépéseket mutatja be, amelyekkel megismerheti és elvégezheti a szervizelést Azure Policy.This article shows the steps needed to understand and accomplish remediation with Azure Policy.

A Szervizelési biztonság működéseHow remediation security works

Ha Azure Policy futtatja a sablont a deployIfNotExists házirend-definíciójában, akkor azt felügyelt identitáshasználatával végzi el.When Azure Policy runs the template in the deployIfNotExists policy definition, it does so using a managed identity. Azure Policy létrehoz egy felügyelt identitást az egyes hozzárendelésekhez, de a felügyelt identitást megadó szerepkörökkel kapcsolatos részletekkel kell rendelkeznie.Azure Policy creates a managed identity for each assignment, but must have details about what roles to grant the managed identity. Ha a felügyelt identitásból hiányzik egy szerepkör, akkor ez a hiba a házirend vagy egy kezdeményezés hozzárendelésekor jelenik meg.If the managed identity is missing roles, this error is displayed during the assignment of the policy or an initiative. A portál használatakor Azure Policy automatikusan megadja a felügyelt identitást a felsorolt szerepköröknek a hozzárendelés elindítása után.When using the portal, Azure Policy will automatically grant the managed identity the listed roles once assignment is started.

Felügyelt identitás – hiányzó szerepkör

Fontos

Ha egy deployIfNotExists vagy módosítás által módosított erőforrás kívül esik a házirend-hozzárendelés hatókörén, vagy a sablon a szabályzat-hozzárendelés hatókörén kívüli erőforrásokhoz fér hozzá, akkor a hozzárendelés felügyelt identitásának manuálisan kell hozzáférést adni , vagy a Szervizelési telepítés sikertelen lesz.If a resource modified by deployIfNotExists or modify is outside the scope of the policy assignment or the template accesses properties on resources outside the scope of the policy assignment, the assignment's managed identity must be manually granted access or the remediation deployment will fail.

Házirend-definíció konfigurálásaConfigure policy definition

Első lépésként meg kell határozni azokat a szerepköröket, amelyek deployIfNotExists és módosítása szükséges a házirend-definícióban a tartalmazott sablon tartalmának sikeres telepítéséhez.The first step is to define the roles that deployIfNotExists and modify needs in the policy definition to successfully deploy the content of your included template. A részletek tulajdonságban adjon hozzá egy roleDefinitionIds tulajdonságot.Under the details property, add a roleDefinitionIds property. Ez a tulajdonság olyan karakterláncok tömbje, amelyek megfelelnek a környezet szerepköreinek.This property is an array of strings that match roles in your environment. Teljes példaként tekintse meg a deployIfNotExists példát vagy a példák módosításait.For a full example, see the deployIfNotExists example or the modify examples.

"details": {
    ...
    "roleDefinitionIds": [
        "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
        "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
    ]
}

A roleDefinitionIds tulajdonság a teljes erőforrás-azonosítót használja, és nem veszi igénybe a szerepkör rövid roleName .The roleDefinitionIds property uses the full resource identifier and doesn't take the short roleName of the role. A "közreműködő" szerepkör AZONOSÍTÓjának lekéréséhez a környezetben használja a következő kódot:To get the ID for the 'Contributor' role in your environment, use the following code:

az role definition list --name 'Contributor'

Felügyelt identitás manuális konfigurálásaManually configure the managed identity

Ha a portál használatával hoz létre hozzárendelést, Azure Policy mindkét esetben létrehoz egy felügyelt identitást, és megadja a roleDefinitionIds-ben definiált szerepköröket.When creating an assignment using the portal, Azure Policy both generates the managed identity and grants it the roles defined in roleDefinitionIds. A következő feltételekben manuálisan kell végrehajtani a felügyelt identitás létrehozásához és az engedélyek hozzárendeléséhez szükséges lépéseket:In the following conditions, steps to create the managed identity and assign it permissions must be done manually:

  • Az SDK használata közben (például Azure PowerShell)While using the SDK (such as Azure PowerShell)
  • Ha a sablon módosítja a hozzárendelési Hatókörön kívüli erőforrástWhen a resource outside the assignment scope is modified by the template
  • Ha a sablon a hozzárendelési Hatókörön kívüli erőforrást olvas beWhen a resource outside the assignment scope is read by the template

Megjegyzés

A Azure PowerShell és a .NET az egyetlen olyan SDK, amely jelenleg támogatja ezt a funkciót.Azure PowerShell and .NET are the only SDKs that currently support this capability.

Felügyelt identitás létrehozása a PowerShell-lelCreate managed identity with PowerShell

Ha felügyelt identitást szeretne létrehozni a szabályzat hozzárendelése során, a helyet definiálni és AssignIdentity kell használni.To create a managed identity during the assignment of the policy, Location must be defined and AssignIdentity used. A következő példa beolvassa a beépített házirend definícióját, amely az SQL db transzparens adattitkosítását telepíti, beállítja a célként megadott erőforráscsoportot, majd létrehozza a hozzárendelést.The following example gets the definition of the built-in policy Deploy SQL DB transparent data encryption, sets the target resource group, and then creates the assignment.

# Login first with Connect-AzAccount if not using Cloud Shell

# Get the built-in "Deploy SQL DB transparent data encryption" policy definition
$policyDef = Get-AzPolicyDefinition -Id '/providers/Microsoft.Authorization/policyDefinitions/86a912f6-9a06-4e26-b447-11b16ba8659f'

# Get the reference to the resource group
$resourceGroup = Get-AzResourceGroup -Name 'MyResourceGroup'

# Create the assignment using the -Location and -AssignIdentity properties
$assignment = New-AzPolicyAssignment -Name 'sqlDbTDE' -DisplayName 'Deploy SQL DB transparent data encryption' -Scope $resourceGroup.ResourceId -PolicyDefinition $policyDef -Location 'westus' -AssignIdentity

A $assignment változó most már tartalmazza a felügyelt identitás elsődleges AZONOSÍTÓját, valamint a szabályzat-hozzárendelés létrehozásakor visszaadott szabványos értékeket.The $assignment variable now contains the principal ID of the managed identity along with the standard values returned when creating a policy assignment. $assignment.Identity.PrincipalIdhasználatával érhető el.It can be accessed through $assignment.Identity.PrincipalId.

Definiált szerepkörök megadása a PowerShell-lelGrant defined roles with PowerShell

Az új felügyelt identitásnak a Azure Active Directoryon keresztül kell végrehajtania a replikálást, mielőtt a szükséges szerepköröket megadhatja.The new managed identity must complete replication through Azure Active Directory before it can be granted the needed roles. A replikáció befejezését követően a következő példa megismétli a roleDefinitionIds $policyDef a házirend-definícióját, és a New-AzRoleAssignment használatával adja meg a szerepkörök új felügyelt identitását.Once replication is complete, the following example iterates the policy definition in $policyDef for the roleDefinitionIds and uses New-AzRoleAssignment to grant the new managed identity the roles.

# Use the $policyDef to get to the roleDefinitionIds array
$roleDefinitionIds = $policyDef.Properties.policyRule.then.details.roleDefinitionIds

if ($roleDefinitionIds.Count -gt 0)
{
    $roleDefinitionIds | ForEach-Object {
        $roleDefId = $_.Split("/") | Select-Object -Last 1
        New-AzRoleAssignment -Scope $resourceGroup.ResourceId -ObjectId $assignment.Identity.PrincipalId -RoleDefinitionId $roleDefId
    }
}

Definiált szerepkörök megadása a portálon keresztülGrant defined roles through portal

A hozzárendelések felügyelt identitását kétféleképpen lehet megadnia a portál használatával, a hozzáférés-vezérlés (iam) használatával, vagy a házirend vagy a kezdeményezés hozzárendelésének szerkesztésével, és a Mentésgombra kattintva.There are two ways to grant an assignment's managed identity the defined roles using the portal, by using Access control (IAM) or by editing the policy or initiative assignment and clicking Save.

Ha szerepkört szeretne hozzáadni a hozzárendelés felügyelt identitásához, kövesse az alábbi lépéseket:To add a role to the assignment's managed identity, follow these steps:

  1. Indítsa el az Azure Policy szolgáltatást az Azure Portalon. Ehhez kattintson a Minden szolgáltatás elemre, majd keresse meg, és válassza ki a Szabályzat elemet.Launch the Azure Policy service in the Azure portal by clicking All services, then searching for and selecting Policy.

  2. Válassza ki a Hozzárendelések elemet az Azure Policy oldal bal oldalán.Select Assignments on the left side of the Azure Policy page.

  3. Keresse meg a felügyelt identitással rendelkező hozzárendelést, és kattintson a névre.Locate the assignment that has a managed identity and click on the name.

  4. Keresse meg a hozzárendelés-azonosító tulajdonságot a szerkesztés oldalon.Find the Assignment ID property on the edit page. A hozzárendelés azonosítója a következőhöz hasonló lesz:The assignment ID will be something like:

    /subscriptions/{subscriptionId}/resourceGroups/PolicyTarget/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5
    

    A felügyelt identitás neve a hozzárendelési erőforrás AZONOSÍTÓjának utolsó része, amely 2802056bfc094dfb95d4d7a5 ebben a példában.The name of the managed identity is the last portion of the assignment resource ID, which is 2802056bfc094dfb95d4d7a5 in this example. Másolja a hozzárendelési erőforrás-azonosító ezen részét.Copy this portion of the assignment resource ID.

  5. Navigáljon az erőforráshoz vagy az erőforrások szülő-tárolóhoz (erőforráscsoport, előfizetés, felügyeleti csoport), amelyhez manuálisan hozzá kell adni a szerepkör-definíciót.Navigate to the resource or the resources parent container (resource group, subscription, management group) that needs the role definition manually added.

  6. Kattintson a hozzáférés-vezérlés (iam) hivatkozásra az erőforrások lapon, majd a hozzáférés-vezérlés lap tetején kattintson a + szerepkör-hozzárendelés hozzáadása lehetőségre.Click the Access control (IAM) link in the resources page and click + Add role assignment at the top of the access control page.

  7. Válassza ki a megfelelő szerepkört, amely megfelel egy roleDefinitionIds a házirend-definícióban.Select the appropriate role that matches a roleDefinitionIds from the policy definition. Az "Azure AD-felhasználó, csoport vagy alkalmazás" alapértelmezett értékének beállításához hagyja a hozzáférés-hozzárendelést .Leave Assign access to set to the default of 'Azure AD user, group, or application'. A kiválasztás mezőben illessze be vagy írja be a korábban megjelenő hozzárendelési erőforrás-azonosító részét.In the Select box, paste or type the portion of the assignment resource ID located earlier. A keresés befejeződése után kattintson az azonos nevű objektumra az azonosító kiválasztásához, majd kattintson a Mentésgombra.Once the search completes, click the object with the same name to select ID and click Save.

Szervizelési feladat létrehozásaCreate a remediation task

Szervizelési feladat létrehozása a portálon keresztülCreate a remediation task through portal

Az értékelés során a szabályzat-hozzárendelés deployIfNotExists vagy a hatások módosítása meghatározza, hogy vannak-e nem megfelelő erőforrások.During evaluation, the policy assignment with deployIfNotExists or modify effects determines if there are non-compliant resources. Ha nem megfelelő erőforrásokat talál, a részletek a szervizelés oldalon találhatók.When non-compliant resources are found, the details are provided on the Remediation page. A nem megfelelő erőforrásokkal rendelkező szabályzatok listája mellett lehetőség van egy szervizelési feladatelindítására.Along with the list of policies that have non-compliant resources is the option to trigger a remediation task. Ez a beállítás azt eredményezi, hogy a központi telepítést a deployIfNotExists sablonból vagy a módosítási műveletekkel hozza létre.This option is what creates a deployment from the deployIfNotExists template or the modify operations.

Szervizelési feladatlétrehozásához kövesse az alábbi lépéseket:To create a remediation task, follow these steps:

  1. Indítsa el az Azure Policy szolgáltatást az Azure Portalon. Ehhez kattintson a Minden szolgáltatás elemre, majd keresse meg, és válassza ki a Szabályzat elemet.Launch the Azure Policy service in the Azure portal by clicking All services, then searching for and selecting Policy.

    Szabályzat keresése az összes szolgáltatásban

  2. Válassza a szervizelés elemet a Azure Policy lap bal oldalán.Select Remediation on the left side of the Azure Policy page.

    Szervizelés kiválasztása a szabályzat lapon

  3. A nem megfelelő erőforrásokkal rendelkező szabályzat-hozzárendelések minden deployIfNotExists és módosítása a lap és az adattábla szervizeléséhez szükséges.All deployIfNotExists and modify policy assignments with non-compliant resources are included on the Policies to remediate tab and data table. Kattintson egy olyan házirendre, amelynek erőforrásai nem megfelelőek.Click on a policy with resources that are non-compliant. Megnyílik az új szervizelési feladat lap.The New remediation task page opens.

    Megjegyzés

    A szervizelési feladat lap megnyitásának másik módja, ha megkeresi és rákattint a szabályzatra a megfelelőség lapon, majd kattintson a szervizelési feladat létrehozása gombra.An alternate way to open the remediation task page is to find and click on the policy from the Compliance page, then click the Create Remediation Task button.

  4. Az új szervizelési feladat lapon a hatóköri ellipszisek használatával szűrheti a kijavítani kívánt erőforrásokat, hogy kiválassza a gyermek erőforrásokat, amelyekről a szabályzat hozzá van rendelve (beleértve az egyes erőforrás-objektumokat is).On the New remediation task page, filter the resources to remediate by using the Scope ellipses to pick child resources from where the policy is assigned (including down to the individual resource objects). Emellett az erőforrások további szűréséhez használja a helyszínek legördülő listát.Additionally, use the Locations drop-down to further filter the resources. Csak a táblázatban felsorolt erőforrások lesznek szervizelve.Only resources listed in the table will be remediated.

    Szervizelés – kiválaszthatja, hogy mely erőforrások legyenek szervizelve

  5. Indítsa el a Szervizelési feladatot az erőforrások szűrése után, a szervizelésgombra kattintva.Begin the remediation task once the resources have been filtered by clicking Remediate. A szabályzat megfelelősége lap megnyílik a szervizelési feladatok lapon, hogy megjelenjen a feladatok állapota.The policy compliance page will open to the Remediation tasks tab to show the state of the tasks progress.

    Szervizelés – szervizelési feladatok állapota

  6. Kattintson a szervizelési feladatra a szabályzat megfelelősége lapon a folyamat részleteinek megismeréséhez.Click on the remediation task from the policy compliance page to get details about the progress. A feladathoz használt szűrés megjelenik a szervizelt erőforrások listájával együtt.The filtering used for the task is shown along with a list of the resources being remediated.

  7. A szervizelési feladat lapon kattintson a jobb gombbal egy erőforrásra a Szervizelési feladat központi telepítésének vagy erőforrásának megtekintéséhez.From the remediation task page, right-click on a resource to view either the remediation task's deployment or the resource. A sor végén kattintson a kapcsolódó események elemre, hogy megtekintse a részleteket, például a hibaüzenetet.At the end of the row, click on Related events to see details such as an error message.

    Szervizelés – erőforrás-feladat helyi menüje

A szervizelési feladattal üzembe helyezett erőforrások hozzáadódnak a szabályzat megfelelősége lap telepített erőforrások lapjához.Resources deployed through a remediation task are added to the Deployed Resources tab on the policy compliance page.

Szervizelési feladat létrehozása az Azure CLI-n keresztülCreate a remediation task through Azure CLI

Ha az Azure CLI-vel szeretne szervizelési feladatot létrehozni, használja a az policy remediation parancsokat.To create a remediation task with Azure CLI, use the az policy remediation commands. Cserélje le a {subscriptionId}t az előfizetési AZONOSÍTÓra, és {myAssignmentId} a deployIfNotExists , vagy módosítsa a szabályzat-hozzárendelés azonosítóját.Replace {subscriptionId} with your subscription ID and {myAssignmentId} with your deployIfNotExists or modify policy assignment ID.

# Login first with az login if not using Cloud Shell

# Create a remediation for a specific assignment
az policy remediation create --name myRemediation --policy-assignment '/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyAssignments/{myAssignmentId}'

További szervizelési parancsokért és példákért tekintse meg az az Policy szervizelési parancsokat.For other remediation commands and examples, see the az policy remediation commands.

Szervizelési feladat létrehozása Azure PowerShell használatávalCreate a remediation task through Azure PowerShell

Ha Azure PowerShell használatával szeretne szervizelési feladatot létrehozni, használja a Start-AzPolicyRemediation parancsokat.To create a remediation task with Azure PowerShell, use the Start-AzPolicyRemediation commands. Cserélje le a {subscriptionId}t az előfizetési AZONOSÍTÓra, és {myAssignmentId} a deployIfNotExists , vagy módosítsa a szabályzat-hozzárendelés azonosítóját.Replace {subscriptionId} with your subscription ID and {myAssignmentId} with your deployIfNotExists or modify policy assignment ID.

# Login first with Connect-AzAccount if not using Cloud Shell

# Create a remediation for a specific assignment
Start-AzPolicyRemediation -Name 'myRemedation' -PolicyAssignmentId '/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyAssignments/{myAssignmentId}'

Más szervizelési parancsmagok és példák esetében tekintse meg az az . PolicyInsights modult.For other remediation cmdlets and examples, see the Az.PolicyInsights module.

Következő lépésekNext steps