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:
Start de Azure Policy-service in Azure Portal door Alle services te selecteren en dan Beleid te zoeken en te selecteren.
Selecteer op de pagina Overzicht of Naleving een beleid in een nalevingsstatus die niet compatibel is.
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.
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.Voor een
auditIfNotExists
ofdeployIfNotExists
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": { ... } } } }
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-modus toe 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.PolicyInsights
redencode 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.Data
reden voor de resourceprovidermodus toe 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.
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.
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.
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.
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.
Start de Azure Policy-service in Azure Portal door Alle services te selecteren en dan Beleid te zoeken en te selecteren.
Selecteer op de pagina Overzicht of Naleving een beleid in een nalevingsstatus.
Selecteer een resource op het tabblad Resourcenaleving van de pagina Naleving van beleid.
Selecteer het tabblad Wijzigingsgeschiedenis (preview) op de pagina Resourcenaleving . Er wordt een lijst met gedetecteerde wijzigingen weergegeven, indien aanwezig.
Selecteer een van de gedetecteerde wijzigingen. De visuele verschillen voor de resource worden weergegeven op de pagina Wijzigingsgeschiedenis .
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
- Bekijk voorbeelden in Azure Policy-voorbeelden.
- Lees over de structuur van Azure Policy-definities.
- Lees Informatie over de effecten van het beleid.
- Meer informatie over het programmatisch maken van beleid.
- Meer informatie over het ophalen van nalevingsgegevens.
- Ontdek hoe u niet-compatibele resources kunt herstellen.
- Bekijk wat een beheergroep is met Uw resources organiseren met Azure-beheergroepen.