Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Wanneer u beleidsdefinities maakt, werkt met SDK's of de Azure Policy voor Kubernetes-invoegtoepassing instelt, kunnen er fouten optreden. In dit artikel worden verschillende algemene fouten beschreven die kunnen optreden en worden manieren voorgesteld om ze op te lossen.
Foutdetails vinden
De locatie van de foutdetails is afhankelijk van het aspect van Azure Policy waar u mee werkt.
- Als u met een aangepast beleid werkt, gaat u naar de Azure-portal om linting-feedback over het schema te krijgen of bekijkt u de resulterende nalevingsgegevens om te zien hoe resources zijn geëvalueerd.
- Als u met een van de vele SDK's werkt, geeft de SDK details over waarom de functie is mislukt.
- Als u werkt met de invoegtoepassing voor Kubernetes, begin dan met het loggen in het cluster.
Algemene fouten
Scenario: Alias niet gevonden
Probleem
Een onjuiste of niet-bestaande alias wordt gebruikt in een beleidsdefinitie. Azure Policy maakt gebruik van aliassen om te koppelen aan Azure Resource Manager-eigenschappen.
Oorzaak
Een onjuiste of niet-bestaande alias wordt gebruikt in een beleidsdefinitie.
Resolutie
Controleer eerst of de eigenschap Resource Manager een alias heeft. Als u de beschikbare aliassen wilt opzoeken, gaat u naar Azure Policy-extensie voor Visual Studio Code of de SDK. Als de alias voor een Resource Manager-eigenschap niet bestaat, maakt u een ondersteuningsticket aan.
Scenario: evaluatiedetails zijn niet up-to-date
Probleem
Een resource heeft de status Niet gestart of de nalevingsgegevens zijn niet actueel.
Oorzaak
Het duurt ongeveer vijf minuten om een nieuw beleid of initiatieftoewijzing toe te passen. Nieuwe of bijgewerkte resources binnen het bereik van een bestaande toewijzing worden binnen ongeveer 15 minuten beschikbaar. Een standaard nalevingsscan vindt iedere 24 uur plaats. Zie Evaluatietriggers voor meer informatie.
Resolutie
Wacht eerst de juiste hoeveelheid tijd totdat een evaluatie is voltooid en de nalevingsresultaten beschikbaar zijn in de Azure-portal of de SDK. Als u een nieuwe evaluatiescan wilt beginnen voor Azure PowerShell of de REST API, raadpleegt u de evaluatiescan op aanvraag.
Scenario: de naleving is niet zoals verwacht
Probleem
Een resource bevindt zich niet in de evaluatiestatus Compatibel of Niet-compatibel die voor de resource wordt verwacht.
Oorzaak
De resource bevindt zich niet in het juiste bereik voor de beleidstoewijzing of de beleidsdefinitie werkt niet zoals bedoeld.
Resolutie
Voer de volgende stappen uit om problemen met uw beleidsdefinitie op te lossen:
- Wacht de juiste hoeveelheid tijd totdat een evaluatie is voltooid en de nalevingsresultaten beschikbaar zijn in de Azure-portal of SDK.
- Als u een nieuwe evaluatiescan wilt beginnen voor Azure PowerShell of de REST API, raadpleegt u de evaluatiescan op aanvraag.
- Zorg ervoor dat de toewijzingsparameters en het toewijzingsbereik juist zijn ingesteld.
- Controleer de beleidsdefinitiemodus:
- De modus moet voor alle resourcetypen zijn
all. - De modus moet zijn
indexedals de beleidsdefinitie controleert op tags of locatie.
- De modus moet voor alle resourcetypen zijn
- Zorg ervoor dat het bereik van de resource niet is uitgesloten of vrijgesteld.
- Als bij naleving voor een beleidstoewijzing
0/0middelen worden weergegeven, zijn er geen middelen binnen het toewijzingsbereik vastgesteld als toepasselijk. Controleer zowel de beleidsdefinitie als het toewijzingsbereik. - Zie Redenen voor niet-naleving bepalen voor een niet-compatibele resource die naar verwachting compatibel moet zijn. De vergelijking van de definitie met de waarde van de geëvalueerde eigenschap geeft aan waarom een resource niet compatibel was.
- Als de doelwaarde onjuist is, wijzigt u de beleidsdefinitie.
- Als de huidige waarde onjuist is, valideert u de payload van de resource via
resources.azure.com.
- Voor een resourceprovidermodusdefinitie die ondersteuning biedt voor een RegEx-tekenreeksparameter (zoals
Microsoft.Kubernetes.Dataen de ingebouwde definitie 'Containerinstallatiekopieën moeten alleen worden geïmplementeerd vanuit vertrouwde registers'), controleert u of de RegEx-tekenreeksparameter juist is. - Zie Problemen oplossen: naleving niet zoals verwacht voor andere veelvoorkomende problemen en oplossingen.
Als u nog steeds een probleem hebt met uw gedupliceerde en aangepaste, ingebouwde beleidsdefinitie of aangepaste definitie, maakt u een ondersteuningsticket onder Beleid creëren om het probleem correct te routeren.
Scenario: beleidsafdwinging niet zoals verwacht
Probleem
Een resource waarvoor u verwacht Azure Policy actie moet ondernemen, wordt niet uitgevoerd en er is geen vermelding in het Azure-activiteitenlogboek.
Oorzaak
De beleidstoewijzing is geconfigureerd voor een enforcementMode-instelling van Disabled. Hoewel enforcementMode dit is uitgeschakeld, wordt het beleidseffect niet afgedwongen en is er geen vermelding in het activiteitenlogboek.
Resolutie
Los problemen met de uitvoering van uw toewijzingsbeleid op door de volgende stappen uit te voeren:
- Wacht eerst de juiste hoeveelheid tijd totdat een evaluatie is voltooid en de nalevingsresultaten beschikbaar zijn in de Azure-portal of de SDK.
- Als u een nieuwe evaluatiescan wilt beginnen voor Azure PowerShell of de REST API, raadpleegt u de evaluatiescan op aanvraag.
- Zorg ervoor dat de toewijzingsparameters en het toewijzingsbereik juist zijn ingesteld en dat
enforcementModeis ingeschakeld. - Controleer de beleidsdefinitiemodus:
- De modus moet voor alle resourcetypen zijn
all. - De modus moet zijn
indexedals de beleidsdefinitie controleert op tags of locatie.
- De modus moet voor alle resourcetypen zijn
- Zorg ervoor dat het bereik van de resource niet is uitgesloten of vrijgesteld.
- Controleer of de inhoud van de resource overeenkomt met de beleidslogica. Deze verificatie kan worden uitgevoerd door een HTTP Archive-tracering (HAR) vast te leggen of de Azure Resource Manager-sjablooneigenschappen (ARM-sjablooneigenschappen) te controleren.
- Raadpleeg Problemen oplossen: Naleving niet zoals verwacht voor andere veelvoorkomende problemen en oplossingen.
Als u nog steeds een probleem hebt met uw gedupliceerde en aangepaste, ingebouwde beleidsdefinitie of aangepaste definitie, maakt u een ondersteuningsticket onder Beleid creëren om het probleem correct te routeren.
Scenario: Geweigerd door Azure Policy
Probleem
Het maken of bijwerken van een resource wordt geweigerd.
Oorzaak
Een beleidstoewijzing binnen de reikwijdte van uw nieuwe of bijgewerkte resource voldoet aan de criteria van een beleidsdefinitie met een ontkennend effect. De resources die aan deze definities voldoen, kunnen niet worden gemaakt of bijgewerkt.
Resolutie
Het foutbericht van een weigeringsbeleidstoewijzing bevat beleidsdefinitie- en beleidstoewijzings-id's. Als de foutinformatie in het bericht wordt gemist, is het ook beschikbaar in het activiteitenlogboek. Gebruik dit voor meer informatie om inzicht te krijgen in de resourcebeperkingen en om de resource-eigenschappen in uw aanvraag aan te passen zodat deze overeenkomen met toegestane waarden.
Scenario: definitie is gericht op meerdere brontypen
Probleem
Een beleidsdefinitie met meerdere brontypen faalt in de validatie tijdens het aanmaken of bijwerken met de volgende fout:
The policy definition '{0}' targets multiple resource types, but the policy rule is authored in a way that makes the policy not applicable to the target resource types '{1}'.
Oorzaak
De regel voor beleidsdefinities bevat een of meer voorwaarden die niet worden geëvalueerd door de doelbrontypen.
Resolutie
Als een alias wordt gebruikt, moet u ervoor zorgen dat de alias alleen wordt geëvalueerd op basis van het resourcetype waartoe deze behoort door een typevoorwaarde toe te voegen voordat deze wordt gebruikt. Een alternatief is het splitsen van de beleidsdefinitie in meerdere definities om te voorkomen dat er meerdere brontypen worden gebruikt.
Scenario: abonnementslimiet overschreden
Probleem
Er wordt een foutbericht weergegeven op de nalevingspagina in Azure Portal bij het ophalen van naleving voor beleidstoewijzingen.
Oorzaak
Het aantal abonnementen binnen de geselecteerde domeinen in het verzoek heeft de limiet van 5.000 abonnementen overschreden. De nalevingsresultaten kunnen gedeeltelijk worden weergegeven.
Resolutie
Als u de volledige resultaten wilt zien, selecteert u een gedetailleerder bereik met minder onderliggende abonnementen.
Sjabloonfouten
Scenario: Door beleid ondersteunde functies die per sjabloon worden verwerkt
Probleem
Azure Policy ondersteunt veel ARM-sjabloonfuncties en -functies die alleen beschikbaar zijn in een beleidsdefinitie. Resource Manager verwerkt deze functies als onderdeel van een implementatie in plaats van als onderdeel van een beleidsdefinitie.
Oorzaak
Het gebruik van ondersteunde functies, zoals parameter() of resourceGroup(), leidt ertoe dat het resultaat van de functie al tijdens de implementatie wordt verwerkt. Hierdoor kan de functie niet door de beleidsdefinitie en de Azure Policy-engine worden verwerkt.
Resolutie
Als u een functie wilt doorgeven als onderdeel van een beleidsdefinitie, escape dan de hele tekenreeks, zodat de eigenschap eruitziet als [. Het escapeteken zorgt ervoor dat Resource Manager de waarde als een tekenreeks behandelt wanneer deze de sjabloon verwerkt. Azure Policy plaatst de functie vervolgens in de beleidsdefinitie, zodat deze dynamisch kan zijn zoals verwacht. Zie Syntaxis en expressies in Azure Resource Manager-sjablonen voor meer informatie.
Invoegtoepassing voor Kubernetes-installatiefouten
Scenario: Installatie met behulp van een Helm-grafiek mislukt vanwege een wachtwoordfout
Probleem
De helm install azure-policy-addon opdracht mislukt en retourneert een van de volgende fouten:
!: event not foundError: failed parsing --set data: key "<key>" has no value (cannot end with ,)
Oorzaak
Het gegenereerde wachtwoord bevat een komma (,), waarop de Helm Chart splitst.
Resolutie
Voer helm install azure-policy-addon uit en ontsnap de komma (,) in de wachtwoordwaarde met een backslash (\).
Scenario: Installatie met behulp van een Helm-grafiek mislukt omdat de naam al bestaat
Probleem
De helm install azure-policy-addon opdracht mislukt en retourneert de volgende fout:
Error: cannot re-use a name that is still in use
Oorzaak
De Helm-grafiek met de naam azure-policy-addon is al geïnstalleerd of gedeeltelijk geïnstalleerd.
Resolutie
Volg de instructies om de invoegtoepassing Azure Policy voor Kubernetes te verwijderen en voer de helm install azure-policy-addon opdracht opnieuw uit.
Scenario: door de gebruiker toegewezen identiteiten van virtuele Azure-machines worden vervangen door door het systeem toegewezen beheerde identiteiten
Probleem
Nadat u initiatieven voor gastconfiguratiebeleid hebt toegewezen om instellingen op een computer te controleren, worden de door de gebruiker toegewezen beheerde identiteiten die aan de machine zijn toegewezen, niet meer toegewezen. Alleen een door het systeem toegewezen beheerde identiteit wordt toegewezen.
Oorzaak
De beleidsdefinities die eerder werden gebruikt in gastconfiguratiedefinities deployIfNotExists , zorgden ervoor dat een door het systeem toegewezen identiteit aan de computer is toegewezen. Maar ze hebben ook de door de gebruiker toegewezen identiteitstoewijzingen verwijderd.
Resolutie
De definities die dit probleem eerder hebben veroorzaakt, worden weergegeven als \[Deprecated\]en worden vervangen door beleidsdefinities die vereisten beheren zonder door de gebruiker toegewezen beheerde identiteiten te verwijderen. Er is een handmatige stap vereist. Verwijder eventuele bestaande beleidstoewijzingen die zijn gemarkeerd als \[Deprecated\]en vervang deze door het bijgewerkte initiatief voor het vereiste beleid en beleidsdefinities met dezelfde naam als het origineel.
Zie voor een gedetailleerd verhaal het blogbericht Belangrijke wijziging uitgebracht voor controlebeleid van gastconfiguratie.
Invoegtoepassing voor algemene Kubernetes-fouten
Scenario: De invoegtoepassing kan het Azure Policy-service-eindpunt niet bereiken vanwege beperkingen voor uitgaand verkeer
Probleem
De invoegtoepassing kan het Azure Policy-service-eindpunt niet bereiken en retourneert een van de volgende fouten:
failed to fetch token, service not reachableError getting file "Get https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-allowed-images/template.yaml: dial tcp 151.101.228.133.443: connect: connection refused
Oorzaak
Dit probleem treedt op wanneer een cluster-egress is vergrendeld.
Resolutie
Zorg ervoor dat de domeinen en poorten die in het volgende artikel worden genoemd, open zijn:
Scenario: De invoegtoepassing kan het Azure Policy-service-eindpunt niet bereiken vanwege de configuratie van de aad-pod-identity
Probleem
De invoegtoepassing kan het Azure Policy-service-eindpunt niet bereiken en retourneert een van de volgende fouten:
azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request to https://gov-prod-policy-data.trafficmanager.net/checkDataPolicyCompliance?api-version=2019-01-01-preview: StatusCode=404adal: Refresh request failed. Status Code = '404'. Response body: getting assigned identities for pod kube-system/azure-policy-8c785548f-r882p in CREATED state failed after 16 attempts, retry duration [5]s, error: <nil>
Oorzaak
Deze fout treedt op wanneer aad-pod-identity is geïnstalleerd op het cluster en de kube-system pods niet worden uitgesloten in aad-pod-identity.
De Node Managed Identity (NMI)-pods wijzigen de iptables van de knooppunten om oproepen naar het metagegevens-eindpunt van de Azure-instantie te onderscheppen. Deze instelling betekent dat elke aanvraag die is ingediend bij het eindpunt voor metagegevens wordt onderschept door NMI, zelfs als de pod niet wordt gebruikt aad-pod-identity. De AzurePodIdentityException CRD (CustomResourceDefinition) kan worden geconfigureerd om te informeren aad-pod-identity dat aanvragen naar een metagegevenseindpunt dat afkomstig is van een pod die overeenkomt met de labels die zijn gedefinieerd in de CRD, moeten worden geproxied zonder dat er in NMI wordt verwerkt.
Resolutie
Configureer de kubernetes.azure.com/managedby: aks CRD om systeempods met het label in de aad-pod-identity namespace uit te sluiten in AzurePodIdentityException.
Zie De Azure Ad-podidentiteit (Azure Active Directory) uitschakelen voor een specifieke pod/toepassing voor meer informatie.
Als u een uitzondering wilt configureren, volgt u dit voorbeeld:
apiVersion: "aadpodidentity.k8s.io/v1"
kind: AzurePodIdentityException
metadata:
name: mic-exception
namespace: default
spec:
podLabels:
app: mic
component: mic
---
apiVersion: "aadpodidentity.k8s.io/v1"
kind: AzurePodIdentityException
metadata:
name: aks-addon-exception
namespace: kube-system
spec:
podLabels:
kubernetes.azure.com/managedby: aks
Scenario: de resourceprovider is niet geregistreerd
Probleem
De invoegtoepassing kan het Azure Policy-service-eindpunt bereiken, maar in de invoegtoepassingslogboeken wordt een van de volgende fouten weergegeven:
The resource provider 'Microsoft.PolicyInsights' is not registered in subscription '{subId}'. See https://aka.ms/policy-register-subscription for how to register subscriptions.policyinsightsdataplane.BaseClient#CheckDataPolicyCompliance: Failure responding to request: StatusCode=500 -- Original Error: autorest/azure: Service returned an error. Status=500 Code="InternalServerError" Message="Encountered an internal server error.
Oorzaak
De Microsoft.PolicyInsights resourceprovider is niet geregistreerd. Deze moet worden geregistreerd voor de invoegtoepassing om beleidsdefinities op te halen en nalevingsgegevens te retourneren.
Resolutie
Registreer de Microsoft.PolicyInsights resourceprovider in het clusterabonnement. Zie Een resourceprovider registreren voor instructies.
Scenario: Het abonnement is uitgeschakeld
Probleem
De invoegtoepassing kan het Azure Policy-service-eindpunt bereiken, maar de volgende fout wordt weergegeven:
The subscription '{subId}' has been disabled for azure data-plane policy. Please contact support.
Oorzaak
Deze fout betekent dat het abonnement problematisch is en dat de functievlag Microsoft.PolicyInsights/DataPlaneBlocked is toegevoegd om het abonnement te blokkeren.
Resolutie
Neem contact op met het functieteam om dit probleem te onderzoeken en op te lossen.
Scenario: Definities in de categorie Gastconfiguratie kunnen niet worden gedupliceerd vanuit De Azure-portal
Probleem
Wanneer u een aangepaste beleidsdefinitie probeert te maken op de azure-portalpagina voor beleidsdefinities, selecteert u de knop Dubbele definitie . Nadat u het beleid hebt toegewezen, vindt u dat computers niet compatibel zijn omdat er geen resource voor gastconfiguratietoewijzing bestaat.
Oorzaak
Gastconfiguratie is afhankelijk van aangepaste metagegevens die zijn toegevoegd aan beleidsdefinities bij het maken van resources voor gastconfiguratietoewijzing. Met de activiteit Dubbele definitie in Azure Portal worden geen aangepaste metagegevens gekopieerd.
Resolutie
In plaats van de portal te gebruiken, moet u de beleidsdefinitie dupliceren met behulp van de Policy Insights-API. Met het volgende PowerShell-voorbeeld kunt u de beleidsdefinitie kopiëren, inclusief de metagegevens met behulp van Az.Resources 7.3.0 of hoger.
# duplicates the built-in policy which audits Windows machines for pending reboots
$def = Get-AzPolicyDefinition -id "/providers/Microsoft.Authorization/policyDefinitions/4221adbc-5c0f-474f-88b7-037a99e6114c"
New-AzPolicyDefinition -name (new-guid).guid -DisplayName "$($def.DisplayName) (Copy)" -Description $def.Description -Metadata ($def.Metadata | convertto-json) -Parameter ($def.Parameter | convertto-json) -Policy ($def.PolicyRule | convertto-json -depth 15)
Scenario: Kubernetes-resource wordt gemaakt tijdens een connectiviteitsfout, ondanks een toegewezen weigeringbeleid.
Probleem
Als er een Kubernetes-clusterverbindingsfout optreedt, kan de evaluatie voor nieuw gemaakte of bijgewerkte resources worden overgeslagen vanwege het gedrag van Gatekeeper dat niet kan worden geopend.
Oorzaak
Het GK fail-open model is standaard en gebaseerd op feedback van de community. Gatekeeper-documentatie breidt deze redenen hier uit: https://open-policy-agent.github.io/gatekeeper/website/docs/failing-closed#considerations.
Resolutie
Bij het vorige evenement kan het foutgeval worden bewaakt aan de hand van de metrics van de toegangswebhook die worden verstrekt door de kube-apiserver. Als evaluatie wordt overgeslagen tijdens het aanmaken en er een object wordt gemaakt, wordt het gerapporteerd over naleving van Azure Policy als niet-conform als een waarschuwing aan klanten.
Ongeacht het scenario behoudt Azure Policy het laatst bekende beleid op het cluster en blijven de beveiligingsmaatregelen van kracht.
Scenario: De regex die ik in mijn beleidstoewijzing heb opgegeven, komt niet overeen met de resources waarvan ik verwachtte dat ze overeen zouden komen.
Oorzaak
De regex.match functie in rego maakt gebruik van RE2, wat niet de standaard regex-variant is die wordt aangeboden door veel online regex matchers. Als u uw regex test in een online matcher, ziet u mogelijk verschillende resultaten van wat op het cluster wordt geëvalueerd.
Resolutie
U moet de RE2- of golang-versie van de regex selecteren in uw matcher. Zie de rego-documenten voor meer informatie over de RE2-smaak en welke online tooling wordt aanbevolen om uw regex te testen.
Scenario: Ik zie een groot aantal updates op constraint.gatekeeper.sh CRD's en andere Gatekeeper-resources
Oorzaak
Dit wordt veroorzaakt door een zelfstandig exemplaar van Gatekeeper dat naast het Gatekeeper-exemplaar van de addon wordt geïnstalleerd.
Resolutie
Controleer of er meerdere Gatekeeper-installaties bestaan. Verwijder alle Gatekeeper-onderdelen die niet worden beheerd door AKS.
Volgende stappen
Als uw probleem niet wordt vermeld in dit artikel of als u het probleem niet kunt oplossen, kunt u ondersteuning krijgen door een van de volgende kanalen te bezoeken:
- Krijg antwoorden van experts via Microsoft Q&A.
- Maak verbinding met @AzureSupport. Deze officiële Microsoft Azure-resource op X helpt de klantervaring te verbeteren door de Azure-community te verbinden met de juiste antwoorden, ondersteuning en experts.
- Als u nog steeds hulp nodig hebt, gaat u naar de ondersteuning voor Azure site en selecteert u Een ondersteuningsticket indienen.