Fastställa orsaker till icke-kompatibilitetDetermine causes of non-compliance

När en Azure-resurs bedöms vara icke-kompatibel med en princip regel är det bra att förstå vilken del av regeln som resursen inte är kompatibel med.When an Azure resource is determined to be non-compliant to a policy rule, it's helpful to understand which portion of the rule the resource isn't compliant with. Det är också bra att förstå vilken ändring som har ändrat en tidigare kompatibel resurs för att göra den icke-kompatibel.It's also useful to understand what change altered a previously compliant resource to make it non-compliant. Det finns två sätt att hitta den här informationen:There are two ways to find this information:

Information om efterlevnadCompliance details

Om en resurs är icke-kompatibel, är kompatibilitetsinformation för resursen tillgängliga från sidan efterlevnadsprincip .When a resource is non-compliant, the compliance details for that resource are available from the Policy compliance page. I fönstret information om efterlevnad finns följande information:The compliance details pane includes the following information:

  • Resurs information som namn, typ, plats och resurs-IDResource details such as name, type, location, and resource ID
  • Kompatibilitetstillstånd och tidsstämpel för den senaste utvärderings versionen för den aktuella princip tilldelningenCompliance state and timestamp of the last evaluation for the current policy assignment
  • En lista över orsaker till att resursen inte uppfyller kravenA list of reasons for the resource non-compliance

Viktigt

Eftersom kompatibilitetsinformation för en icke-kompatibel resurs visar det aktuella värdet för egenskaperna för den resursen, måste användaren ha Läs åtgärd för resurs typen .As the compliance details for a Non-compliant resource shows the current value of properties on that resource, the user must have read operation to the type of resource. Om den icke-kompatibla resursen till exempel är Microsoft. Compute/virtualMachines måste användaren ha åtgärden Microsoft. Compute/virtualMachines/Read .For example, if the Non-compliant resource is Microsoft.Compute/virtualMachines then the user must have the Microsoft.Compute/virtualMachines/read operation. Om användaren inte har den nödvändiga åtgärden visas ett åtkomst fel.If the user doesn't have the needed operation, an access error is displayed.

Följ dessa steg om du vill visa kompatibilitetsinformation:To view the compliance details, follow these steps:

  1. Starta tjänsten Azure Policy i Azure Portal genom att välja alla tjänsteroch sedan söka efter och välja princip.Launch the Azure Policy service in the Azure portal by selecting All services, then searching for and selecting Policy.

  2. På sidan Översikt eller efterlevnad väljer du en princip i ett kompatibilitetstillstånd som inte är kompatibelt.On the Overview or Compliance page, select a policy in a compliance state that is Non-compliant.

  3. På fliken Resource Compliance (Resource Compliance ) på sidan efterlevnadsprincip högerklickar du på eller väljer tre punkter i en resurs i ett kompatibelt tillstånd som inte är kompatibelt.Under the Resource compliance tab of the Policy compliance page, right-click or select the ellipsis of a resource in a compliance state that is Non-compliant. Välj sedan Visa Kompatibilitetsrapport.Then select View compliance details.

    Skärm bild av länken Visa Kompatibilitetsrapport på fliken resurs efterlevnad.

  4. I fönstret kompatibilitetsinformation visas information från den senaste utvärderings versionen av resursen till den aktuella princip tilldelningen.The Compliance details pane displays information from the latest evaluation of the resource to the current policy assignment. I det här exemplet finns fältet Microsoft. SQL/Servers/version som 12,0 medan princip definitionen förväntar sig 14,0.In this example, the field Microsoft.Sql/servers/version is found to be 12.0 while the policy definition expected 14.0. Om resursen inte är kompatibel av flera orsaker visas varje lista i det här fönstret.If the resource is non-compliant for multiple reasons, each is listed on this pane.

    Skärm bild av länken Visa Kompatibilitetsrapport på fliken resurs efterlevnad.

    För en auditIfNotExists -eller deployIfNotExists -princip definition innehåller informationen information. Type -egenskapen och eventuella valfria egenskaper.For an auditIfNotExists or deployIfNotExists policy definition, the details include the details.type property and any optional properties. En lista finns i auditIfNotExists egenskaper och deployIfNotExists egenskaper.For a list, see auditIfNotExists properties and deployIfNotExists properties. Den senaste utvärderade resursen är en relaterad resurs från avsnittet information i definitionen.Last evaluated resource is a related resource from the details section of the definition.

    Exempel på partiell deployIfNotExists -definition:Example partial deployIfNotExists definition:

    {
        "if": {
            "field": "type",
            "equals": "[parameters('resourceType')]"
        },
        "then": {
            "effect": "DeployIfNotExists",
            "details": {
                "type": "Microsoft.Insights/metricAlerts",
                "existenceCondition": {
                    "field": "name",
                    "equals": "[concat(parameters('alertNamePrefix'), '-', resourcegroup().name, '-', field('name'))]"
                },
                "existenceScope": "subscription",
                "deployment": {
                    ...
                }
            }
        }
    }
    

    Skärm bild av länken Visa Kompatibilitetsrapport på fliken resurs efterlevnad.

Anteckning

Om ett egenskaps värde är hemligt för att skydda data visas asterisker i det aktuella värdet.To protect data, when a property value is a secret the current value displays asterisks.

Informationen förklarar varför en resurs för närvarande inte är kompatibel, men visas inte när ändringen gjordes till den resurs som gjorde att den blev inkompatibel.These details explain why a resource is currently non-compliant, but don't show when the change was made to the resource that caused it to become non-compliant. Mer information finns i ändrings historik (förhands granskning) nedan.For that information, see Change history (Preview) below.

Orsaker till efterlevnadCompliance reasons

Följande matris mappar varje tänkbar orsak till det ansvariga villkoret i princip definitionen:The following matrix maps each possible reason to the responsible condition in the policy definition:

OrsakReason Condition (Väderförhållanden)Condition
Det aktuella värdet måste innehålla målvärdet som en nyckel.Current value must contain the target value as a key. containsKey eller inte notContainsKeycontainsKey or not notContainsKey
Det aktuella värdet måste innehålla målvärdet.Current value must contain the target value. innehåller eller inte notContainscontains or not notContains
Det aktuella värdet måste vara lika med målvärdet.Current value must be equal to the target value. lika med eller inte notEqualsequals or not notEquals
Det aktuella värdet måste vara mindre än målvärdet.Current value must be less than the target value. mindre eller inte störreless or not greaterOrEquals
Det aktuella värdet måste vara större än eller lika med målvärdet.Current value must be greater than or equal to the target value. Större eller inte mindregreaterOrEquals or not less
Det aktuella värdet måste vara större än målvärdet.Current value must be greater than the target value. större eller icke -lessOrEqualsgreater or not lessOrEquals
Det aktuella värdet måste vara mindre än eller lika med målvärdet.Current value must be less than or equal to the target value. lessOrEquals eller inte störrelessOrEquals or not greater
Det aktuella värdet måste finnas.Current value must exist. finnsexists
Det aktuella värdet måste vara i målvärdet.Current value must be in the target value. i eller inte notInin or not notIn
Det aktuella värdet måste vara samma som målvärdet.Current value must be like the target value. gilla eller inte notLikelike or not notLike
Det aktuella värdet måste Skift läges känsligt matcha målvärdet.Current value must case-sensitive match the target value. matcha eller not notMatchmatch or not notMatch
Det aktuella värdet måste vara Skift läges okänsligt matcha målvärdet.Current value must case-insensitive match the target value. matchInsensitively eller inte notMatchInsensitivelymatchInsensitively or not notMatchInsensitively
Det aktuella värdet får inte innehålla målvärdet som en nyckel.Current value must not contain the target value as a key. notContainsKey eller inte containsKeynotContainsKey or not containsKey
Det aktuella värdet får inte innehålla målvärdet.Current value must not contain the target value. notContains eller inte innehållernotContains or not contains
Det aktuella värdet får inte vara samma som målvärdet.Current value must not be equal to the target value. notEquals eller inte lika mednotEquals or not equals
Det aktuella värdet får inte finnas.Current value must not exist. finns intenot exists
Det aktuella värdet får inte vara i målvärdet.Current value must not be in the target value. notIn eller inte inotIn or not in
Det aktuella värdet får inte vara samma som målvärdet.Current value must not be like the target value. notLike eller inte gillanotLike or not like
Det aktuella värdet får inte Skift läges känsligt matcha målvärdet.Current value must not case-sensitive match the target value. notMatch eller not matchnotMatch or not match
Det aktuella värdet får inte Skift läges okänsligt matcha målvärdet.Current value must not case-insensitive match the target value. notMatchInsensitively eller inte matchInsensitivelynotMatchInsensitively or not matchInsensitively
Inga relaterade resurser matchar träd informationen i princip definitionen.No related resources match the effect details in the policy definition. En resurs av den typ som definierats i sedan. details. Type och relaterad till den resurs som definierats i IF -delen i princip regeln finns inte.A resource of the type defined in then.details.type and related to the resource defined in the if portion of the policy rule doesn't exist.

Komponent information för resurs leverantörs lägenComponent details for Resource Provider modes

För tilldelningar med ett resurs leverantörs lägeväljer du den icke-kompatibla resursen för att öppna en djupare vy.For assignments with a Resource Provider mode, select the Non-compliant resource to open a deeper view. Under fliken komponent efterlevnad finns ytterligare information som är speciell för resurs leverantörens läge på den tilldelade principen som visar den icke-kompatibla komponenten och komponent-ID: t.Under the Component Compliance tab is additional information specific to the Resource Provider mode on the assigned policy showing the Non-compliant Component and Component ID.

Skärm bild av länken Visa Kompatibilitetsrapport på fliken resurs efterlevnad.

Efterlevnadsinformation för gästkonfigurationCompliance details for Guest Configuration

För auditIfNotExists -principer i kategorin gäst konfiguration kan flera inställningar utvärderas i den virtuella datorn och du måste visa information om varje inställning.For auditIfNotExists policies in the Guest Configuration category, there could be multiple settings evaluated inside the virtual machine and you'll need to view per-setting details. Om du till exempel granskar en lista över lösen ords principer och bara en av dem har status inkompatibel, behöver du veta vilka principer för lösen ord som inte är kompatibla och varför.For example, if you're auditing for a list of password policies and only one of them has status Non-compliant, you'll need to know which specific password policies are out of compliance and why.

Du kanske inte har behörighet att logga in på den virtuella datorn direkt, men du måste rapportera om varför den virtuella datorn inte är kompatibel.You also might not have access to sign in to the virtual machine directly but you need to report on why the virtual machine is Non-compliant.

Azure PortalAzure portal

Börja med att följa samma steg i avsnittet ovan för att visa information om efterlevnad av policy.Begin by following the same steps in the section above for viewing policy compliance details.

I fönstret kompatibilitetsinformation väljer du länken senast utvärderade resursen.In the Compliance details pane view, select the link Last evaluated resource.

Skärm bild av länken Visa Kompatibilitetsrapport på fliken resurs efterlevnad.

På sidan gäst tilldelning visas all tillgänglig information om kompatibilitet.The Guest Assignment page displays all available compliance details. Varje rad i vyn representerar en utvärdering som utförts i datorn.Each row in the view represents an evaluation that was performed inside the machine. I kolumnen orsak visas en fras som beskriver varför gäst tilldelningen inte är kompatibel.In the Reason column, a phrase is shown describing why the Guest Assignment is Non-compliant. Om du till exempel granskar lösen ords principer visar kolumnen orsak att texten innehåller det aktuella värdet för varje inställning.For example, if you're auditing password policies, the Reason column would display text including the current value for each setting.

Skärm bild av länken Visa Kompatibilitetsrapport på fliken resurs efterlevnad.

Azure PowerShellAzure PowerShell

Du kan också visa information om efterlevnad från Azure PowerShell.You can also view compliance details from Azure PowerShell. Kontrol lera först att du har modulen gäst konfiguration installerad.First, make sure you have the Guest Configuration module installed.

Install-Module Az.GuestConfiguration

Du kan visa den aktuella statusen för alla gäst tilldelningar för en virtuell dator med hjälp av följande kommando:You can view the current status of all Guest Assignments for a VM using the following command:

Get-AzVMGuestPolicyStatus -ResourceGroupName <resourcegroupname> -VMName <vmname>
PolicyDisplayName                                                         ComplianceReasons
-----------------                                                         -----------------
Audit that an application is installed inside Windows VMs                 {[InstalledApplication]bwhitelistedapp}
Audit that an application is not installed inside Windows VMs.            {[InstalledApplication]NotInstalledApplica...

Om du bara vill visa orsaken till varför den virtuella datorn är icke-kompatibel, returnerar du endast den underordnade egenskapen orsak.To view only the reason phrase that describes why the VM is Non-compliant, return only the Reason child property.

Get-AzVMGuestPolicyStatus -ResourceGroupName <resourcegroupname> -VMName <vmname> | % ComplianceReasons | % Reasons | % Reason
The following applications are not installed: '<name>'.

Du kan också skriva ut en efterlevnadsprincip för gäst tilldelningar i omfånget för datorn.You can also output a compliance history for Guest Assignments in scope for the machine. Utdata från det här kommandot innehåller information om varje rapport för den virtuella datorn.The output from this command includes the details of each report for the VM.

Anteckning

Utdata kan returnera en stor mängd data.The output may return a large volume of data. Vi rekommenderar att du lagrar utdata i en variabel.It's recommended to store the output in a variable.

$guestHistory = Get-AzVMGuestPolicyStatusHistory -ResourceGroupName <resourcegroupname> -VMName <vmname>
$guestHistory
PolicyDisplayName                                                         ComplianceStatus ComplianceReasons StartTime              EndTime                VMName LatestRepor
                                                                                                                                                                  tId
-----------------                                                         ---------------- ----------------- ---------              -------                ------ -----------
[Preview]: Audit that an application is installed inside Windows VMs      NonCompliant                       02/10/2019 12:00:38 PM 02/10/2019 12:00:41 PM VM01  ../17fg0...
<truncated>

Använd parametern ShowChanged för att förenkla den här vyn.To simplify this view, use the ShowChanged parameter. Utdata från det här kommandot innehåller bara rapporter som följde en ändring av kompatibilitetsstatus.The output from this command only includes the reports that followed a change in compliance status.

$guestHistory = Get-AzVMGuestPolicyStatusHistory -ResourceGroupName <resourcegroupname> -VMName <vmname> -ShowChanged
$guestHistory
PolicyDisplayName                                                         ComplianceStatus ComplianceReasons StartTime              EndTime                VMName LatestRepor
                                                                                                                                                                  tId
-----------------                                                         ---------------- ----------------- ---------              -------                ------ -----------
Audit that an application is installed inside Windows VMs                 NonCompliant                       02/10/2019 10:00:38 PM 02/10/2019 10:00:41 PM VM01  ../12ab0...
Audit that an application is installed inside Windows VMs.                Compliant                          02/09/2019 11:00:38 AM 02/09/2019 11:00:39 AM VM01  ../e3665...
Audit that an application is installed inside Windows VMs                 NonCompliant                       02/09/2019 09:00:20 AM 02/09/2019 09:00:23 AM VM01  ../15ze1...

Ändrings historik (förhands granskning)Change history (Preview)

Som en del av en ny offentlig för hands versionär de 14 senaste dagarna i ändrings historiken tillgängliga för alla Azure-resurser som stöder borttagning av fullständigt läge.As part of a new public preview, the last 14 days of change history are available for all Azure resources that support complete mode deletion. Ändrings historiken innehåller information om när en ändring upptäcktes och en visuell skillnad för varje ändring.Change history provides details about when a change was detected and a visual diff for each change. En ändrings identifiering utlöses när Azure Resource Manager egenskaper läggs till, tas bort eller ändras.A change detection is triggered when the Azure Resource Manager properties are added, removed, or altered.

  1. Starta tjänsten Azure Policy i Azure Portal genom att välja alla tjänsteroch sedan söka efter och välja princip.Launch the Azure Policy service in the Azure portal by selecting All services, then searching for and selecting Policy.

  2. På sidan Översikt eller efterlevnad väljer du en princip i valfritt kompatibilitetstillstånd.On the Overview or Compliance page, select a policy in any compliance state.

  3. På fliken Resource Compliance (Resource Compliance ) på sidan efterlevnadsprincip väljer du en resurs.Under the Resource compliance tab of the Policy compliance page, select a resource.

  4. Välj fliken ändrings historik (förhands granskning) på sidan resurs efterlevnad .Select the Change History (preview) tab on the Resource Compliance page. En lista över identifierade ändringar, om sådana finns, visas.A list of detected changes, if any exist, are displayed.

    Skärm bild av länken Visa Kompatibilitetsrapport på fliken resurs efterlevnad.

  5. Välj en av de identifierade ändringarna.Select one of the detected changes. Den visuella differensen för resursen visas på sidan Ändra historik .The visual diff for the resource is presented on the Change history page.

    Skärm bild av länken Visa Kompatibilitetsrapport på fliken resurs efterlevnad.

Den visuella diff -aides för att identifiera ändringar av en resurs.The visual diff aides in identifying changes to a resource. De ändringar som upptäcktes kanske inte är relaterade till resursens aktuella kompatibilitetstillstånd.The changes detected may not be related to the current compliance state of the resource.

Data för ändrings historiken tillhandahålls av Azure Resource Graph.Change history data is provided by Azure Resource Graph. Information om hur du frågar den här informationen utanför Azure Portal finns i Hämta resurs ändringar.To query this information outside of the Azure portal, see Get resource changes.

Nästa stegNext steps