Oorzaken van niet-naleving bepalen

Wanneer wordt vastgesteld dat een Azure-resource niet-compatibel is met een beleidsregel, is het handig om te begrijpen met welk gedeelte van de regel de resource niet compatibel is. Het is ook handig om te begrijpen welke wijziging een eerder compatibele resource heeft gewijzigd om deze niet-compatibel te maken. Er zijn twee manieren om deze informatie te vinden:

Nalevingsdetails

Wanneer een resource niet-compatibel is, zijn de nalevingsgegevens voor die resource beschikbaar op de pagina Nalevingsbeleid . Het deelvenster Nalevingsdetails bevat de volgende informatie:

  • Resourcedetails, zoals naam, type, locatie en resource-id.
  • Nalevingsstatus en tijdstempel van de laatste evaluatie voor de huidige beleidstoewijzing.
  • Een lijst met redenen voor niet-naleving van resources.

Belangrijk

Aangezien in de nalevingsdetails voor een niet-compatibele resource de huidige waarde van eigenschappen voor die resource wordt weergegeven, moet de gebruiker leesbewerkingen hebben voor het type resource. Als de niet-compatibele resource bijvoorbeeld is Microsoft.Compute/virtualMachines , moet de gebruiker de Microsoft.Compute/virtualMachines/read bewerking hebben. Als de gebruiker niet over de benodigde bewerking beschikt, wordt er een toegangsfout weergegeven.

Voer de volgende stappen uit om de nalevingsdetails weer te geven:

  1. Start de Azure Policy-service in Azure Portal door Alle services te selecteren en dan Beleid te zoeken en te selecteren.

  2. Selecteer op de pagina Overzicht of Naleving een beleid in een nalevingsstatus die niet compatibel is.

  3. Selecteer op het tabblad Resourcenaleving van de pagina Beleidsnaleving de optie en houd deze ingedrukt (of klik erop met de rechtermuisknop) of selecteer het beletselteken van een resource in een nalevingsstatus die niet compatibel is. Selecteer vervolgens Details van naleving weergeven.

    Screenshot of the View compliance details link on the Resource compliance tab.

  4. In het deelvenster Nalevingsdetails wordt informatie weergegeven van de meest recente evaluatie van de resource naar de huidige beleidstoewijzing. In dit voorbeeld is het veld Microsoft.Sql/servers/version 12.0, terwijl de beleidsdefinitie 14.0 verwachtte. Als de resource om meerdere redenen niet aan het beleid voldoet, wordt deze in dit deelvenster weergegeven.

    Screenshot of the Compliance details pane and reasons for non-compliance that current value is 12 and target value is 14.

    Voor een auditIfNotExists of deployIfNotExists beleidsdefinitie bevatten de details de eigenschap details.type en eventuele optionele eigenschappen. Zie de eigenschappen auditIfNotExists en deployIfNotExists-eigenschappen voor een lijst. De laatst geëvalueerde resource is een gerelateerde resource uit de sectie details van de definitie.

    Voorbeeld van gedeeltelijke deployIfNotExists definitie:

    {
      "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": {
            ...
          }
        }
      }
    }
    

    Screenshot of Compliance details pane for ifNotExists including evaluated resource count.

Notitie

Als een eigenschapswaarde een geheim is, worden sterretjes weergegeven wanneer een eigenschapswaarde een geheim is.

In deze details wordt uitgelegd waarom een resource momenteel niet-compatibel is, maar niet wordt weergegeven wanneer de wijziging is aangebracht in de resource waardoor deze niet-compatibel is geworden. Zie Wijzigingsgeschiedenis (preview) voor deze informatie.

Nalevingsredenen

Resource Manager-modi en resourceprovidermodi hebben elk verschillende redenen voor niet-naleving.

Algemene nalevingsredenen voor de Resource Manager-modus

De volgende tabel wijst elke Reden voor de Resource Manager-modustoe aan de verantwoordelijke voorwaarde in de beleidsdefinitie:

Reden Conditie
De huidige waarde moet de doelwaarde als sleutel bevatten. containsKey of notContainsKey
De huidige waarde moet de doelwaarde bevatten. bevat of nietContains
De huidige waarde moet gelijk zijn aan de doelwaarde. is gelijk aan of niet Gelijk aan
De huidige waarde moet kleiner zijn dan de doelwaarde. kleiner of niet groterOrEquals
De huidige waarde moet groter zijn dan of gelijk zijn aan de doelwaarde. greaterOrEquals of niet minder
De huidige waarde moet groter zijn dan de doelwaarde. groter of niet minderOrEquals
De huidige waarde moet kleiner dan of gelijk zijn aan de doelwaarde. lessOrEquals or not greater
De huidige waarde moet bestaan. bestaat
De huidige waarde moet in de doelwaarde staan. in of niet inIn
De huidige waarde moet gelijk zijn aan de doelwaarde. like or notLike
De huidige waarde moet hoofdlettergevoelig zijn die overeenkomt met de doelwaarde. match or notMatch
De huidige waarde moet niet hoofdlettergevoelig zijn voor de doelwaarde. matchInsensitively or notMatchInsensitively
De huidige waarde mag de doelwaarde niet als sleutel bevatten. notContainsKey of not containsKey
De huidige waarde mag de doelwaarde niet bevatten. notContains or not contains
De huidige waarde mag niet gelijk zijn aan de doelwaarde. notEquals or not equals
De huidige waarde mag niet bestaan. bestaat niet
De huidige waarde mag niet in de doelwaarde staan. notIn of niet in
De huidige waarde mag niet lijken op de doelwaarde. notLike of not like
De huidige waarde mag niet hoofdlettergevoelig zijn voor de doelwaarde. komt niet overeen of komt niet overeen
De huidige waarde mag niet hoofdlettergevoelig zijn voor de doelwaarde. notMatchInsensitively or not matchInsensitively
Er zijn geen gerelateerde resources die overeenkomen met de effectdetails in de beleidsdefinitie. Een resource van het type dat is gedefinieerd in then.details.type en gerelateerd aan de resource die is gedefinieerd in het if-gedeelte van de beleidsregel niet bestaat.

Nalevingsredenen voor de resourceprovidermodus van Azure Policy

In de volgende tabel wordt elke Microsoft.PolicyInsightsredencode van de resourceprovidermodus toegewezen aan de bijbehorende uitleg:

Redencode voor naleving Foutbericht en uitleg
NonModifiablePolicyAlias NonModifiableAliasConflict: de alias {alias} kan niet worden gewijzigd in aanvragen met behulp van API-versie {apiVersion}. Deze fout treedt op wanneer een aanvraag met behulp van een API-versie waarbij de alias geen ondersteuning biedt voor het effect 'wijzigen' of alleen het effect 'wijzigen' ondersteunt met een ander tokentype.
AppendPoliciesNotApplicable AppendPoliciesUnableToAppend: De aliassen: {aliases }, kunnen niet worden gewijzigd in aanvragen met api-versie: {apiVersion }. Dit kan gebeuren in aanvragen die gebruikmaken van API-versies waarvoor de aliassen geen ondersteuning bieden voor het effect 'wijzigen' of het effect 'wijzigen' ondersteunen met een ander tokentype.
ConflictingAppendPolicies ConflictingAppendPolicies: Er zijn conflicterende beleidstoewijzingen gevonden die het veld {notApplicableFields} wijzigen. Beleids-id's: {policy}. Neem contact op met de abonnementsbeheerder om de beleidstoewijzingen bij te werken.
AppendPoliciesFieldsExist AppendPoliciesFieldsExistWithDifferentValues: Beleidstoewijzingen hebben geprobeerd velden toe te voegen die al bestaan in de aanvraag met verschillende waarden. Velden: {existingFields}. Beleids-id's: {policy}. Neem contact op met de abonnementsbeheerder om het beleid bij te werken.
AppendPoliciesUndefinedFields AppendPoliciesUndefinedFields: Beleidsdefinitie gevonden die verwijst naar een niet-gedefinieerde veldeigenschap voor API-versie {apiVersion}. Velden: {nonExistingFields}. Beleids-id's: {policy}. Neem contact op met de abonnementsbeheerder om het beleid bij te werken.
MissingRegistrationForType MissingRegistrationForResourceType: Het abonnement is niet geregistreerd voor het resourcetype {ResourceType}. Controleer of het resourcetype bestaat en of het resourcetype is geregistreerd.
AmbiguPolicyEvaluationPaths De inhoud van de aanvraag heeft een of meer dubbelzinnige paden: '{0}' vereist door beleid: '{1}'.
InvalidResourceNameWildcardPosition De beleidstoewijzing '{0}' die is gekoppeld aan de beleidsdefinitie '{1}' kan niet worden geëvalueerd. De resourcenaam '{2}' binnen een ifNotExists-voorwaarde bevat het jokerteken '?' in een ongeldige positie. Jokertekens kunnen zich alleen aan het einde van de naam in een segment bevinden (bijvoorbeeld TopLevelResourceName/?). Los het beleid op of verwijder de beleidstoewijzing om de blokkering op te heffen.
TooManyResourceNameSegments De beleidstoewijzing '{0}' die is gekoppeld aan de beleidsdefinitie '{1}' kan niet worden geëvalueerd. De resourcenaam '{2}' binnen een ifNotExists-voorwaarde bevat te veel naamsegmenten. Het aantal naamsegmenten moet gelijk zijn aan of kleiner zijn dan het aantal typesegmenten (met uitzondering van de naamruimte van de resourceprovider). Los de beleidsdefinitie op of verwijder de beleidstoewijzing om de blokkering op te heffen.
InvalidPolicyFieldPath Het veldpad '{0}' in de beleidsdefinitie is ongeldig. Veldpaden mogen geen lege segmenten bevatten. Ze kunnen alleen alfanumerieke tekens bevatten, met uitzondering van het teken '.' voor het splitsen van segmenten en de tekenreeks [*]voor toegang tot matrixeigenschappen.

Nalevingsredenen voor de AKS-resourceprovidermodus

De volgende tabel wijst elke Microsoft.Kubernetes.Datareden voor de resourceprovidermodustoe aan de verantwoordelijke status van de beperkingssjabloon in de beleidsdefinitie:

Reden Beschrijving van reden van beperkingssjabloon
Constraint/TemplateCreateFailed De resource kan niet worden gemaakt voor een beleidsdefinitie met een beperking/sjabloon die niet overeenkomt met een bestaande beperking/sjabloon in het cluster op basis van de naam van de resourcemetagegevens.
Constraint/TemplateUpdateFailed De beperking/sjabloon kan niet worden bijgewerkt voor een beleidsdefinitie met een beperking/sjabloon die overeenkomt met een bestaande beperking/sjabloon in het cluster op basis van de naam van de resourcemetagegevens.
Constraint/TemplateInstallFailed De beperking/sjabloon kan niet worden gemaakt en kan niet worden geïnstalleerd op het cluster voor het maken of bijwerken van bewerkingen.
ConstraintTemplateConflicts De sjabloon heeft een conflict met een of meer beleidsdefinities met dezelfde sjabloonnaam met een andere bron.
ConstraintStatusStale Er is een bestaande controlestatus, maar Gatekeeper heeft in het afgelopen uur geen controle uitgevoerd.
ConstraintNotProcessed Er is geen status en Gatekeeper heeft het afgelopen uur geen controle uitgevoerd.
InvalidConstraint/Template De resource is geweigerd vanwege een van de volgende redenen: ongeldige beperkingssjabloon Rego-inhoud, ongeldige YAML of een parametertype komt niet overeen tussen de beperkings- en beperkingssjabloon (waarbij een tekenreekswaarde wordt opgegeven wanneer een geheel getal werd verwacht).

Notitie

Voor bestaande beleidstoewijzingen en beperkingssjablonen die zich al in het cluster bevinden, wordt het cluster beveiligd door de bestaande beperking/sjabloon te onderhouden. Het cluster rapporteert als niet-compatibel totdat de fout is opgelost bij de beleidstoewijzing of de zelfherstelbewerking van de invoegtoepassing. Zie Conflictconflicten met beperkingen voor meer informatie over het afhandelen van conflicten.

Onderdeeldetails voor resourceprovidermodi

Voor toewijzingen met de modus Resourceprovider selecteert u de niet-compatibele resource om de bijbehorende nalevingsrecords voor onderdelen weer te geven. Op het tabblad Onderdeelnaleving ziet u meer informatie die specifiek is voor de resourceprovidermodus , zoals onderdeelnaam, onderdeel-id en type.

Screenshot of Component Compliance dashboard and compliance details for assignments with a Resource Provider mode.

Nalevingsdetails voor gastconfiguratie

Voor beleidsdefinities in de categorie Gastconfiguratie kunnen er meerdere instellingen worden geëvalueerd binnen de virtuele machine en moet u details per instelling weergeven. Als u bijvoorbeeld controleert op een lijst met beveiligingsinstellingen en slechts één van deze instellingen de status Niet-compatibel heeft, moet u weten welke specifieke instellingen niet compatibel zijn en waarom.

Mogelijk hebt u ook geen toegang om u rechtstreeks aan te melden bij de virtuele machine, maar moet u rapporteren waarom de virtuele machine niet-compatibel is.

Azure Portal

Volg eerst dezelfde stappen in de sectie Nalevingsdetails om nalevingsdetails van het beleid weer te geven.

Selecteer de koppeling Laatst geëvalueerde resource in het deelvenster Nalevingsdetails.

Screenshot of viewing the auditIfNotExists definition compliance details.

Op de pagina Gasttoewijzing worden alle beschikbare nalevingsgegevens weergegeven. Elke rij in de weergave vertegenwoordigt een evaluatie die op de computer is uitgevoerd. In de kolom Reden wordt een woordgroep weergegeven waarin wordt beschreven waarom de gasttoewijzing niet compatibel is. Als u bijvoorbeeld wachtwoordbeleid controleert, wordt in de kolom Reden tekst weergegeven, inclusief de huidige waarde voor elke instelling.

Screenshot of the Guest Assignment compliance details.

Details van configuratietoewijzing op schaal weergeven

De functie voor gastconfiguratie kan buiten Azure Policy-toewijzingen worden gebruikt. Azure Automanage maakt bijvoorbeeld gastconfiguratietoewijzingen of u kunt configuraties toewijzen wanneer u machines implementeert.

Als u alle gastconfiguratietoewijzingen in uw tenant wilt weergeven, opent u de pagina Gasttoewijzingen in Azure Portal. Als u gedetailleerde nalevingsinformatie wilt weergeven, selecteert u elke toewijzing met behulp van de koppeling in de kolomnaam.

Screenshot of the Guest Assignment page.

Wijzigingsoverzicht (preview)

Als onderdeel van een nieuwe openbare preview zijn de laatste 14 dagen van de wijzigingsgeschiedenis beschikbaar voor alle Azure-resources die volledige modusverwijdering ondersteunen. Wijzigingsgeschiedenis bevat details over wanneer een wijziging is gedetecteerd en een visuele verschillen voor elke wijziging. Er wordt een wijzigingsdetectie geactiveerd wanneer de Azure Resource Manager-eigenschappen worden toegevoegd, verwijderd of gewijzigd.

  1. Start de Azure Policy-service in Azure Portal door Alle services te selecteren en dan Beleid te zoeken en te selecteren.

  2. Selecteer op de pagina Overzicht of Naleving een beleid in een nalevingsstatus.

  3. Selecteer een resource op het tabblad Resourcenaleving van de pagina Naleving van beleid.

  4. Selecteer het tabblad Wijzigingsgeschiedenis (preview) op de pagina Resourcenaleving . Er wordt een lijst met gedetecteerde wijzigingen weergegeven, indien aanwezig.

    Screenshot of the Change History tab and detected change times on Resource Compliance page.

  5. Selecteer een van de gedetecteerde wijzigingen. De visuele verschillen voor de resource worden weergegeven op de pagina Wijzigingsgeschiedenis .

    Screenshot of the Change History Visual Diff of the before and after state of properties on the Change history page.

    De visuele verschillen bij het identificeren van wijzigingen in een resource. De gedetecteerde wijzigingen zijn mogelijk niet gerelateerd aan de huidige nalevingsstatus van de resource.

Wijzigingsgeschiedenisgegevens worden geleverd door Azure Resource Graph. Zie Resourcewijzigingen ophalen om deze informatie buiten Azure Portal op te vragen.

Volgende stappen