Fastställa orsaker till icke-kompatibilitet
När en Azure-resurs fastställs vara icke-kompatibel med en principregel är det bra att förstå vilken del av regeln som resursen inte är kompatibel med. Det är också användbart att förstå vilken ändring som har ändrat en tidigare kompatibel resurs så att den inte är kompatibel. Det finns två sätt att hitta den här informationen:
Efterlevnadsinformation
När en resurs inte är kompatibel finns efterlevnadsinformationen för den resursen på sidan Principefterlevnad. Fönstret kompatibilitetsinformation innehåller följande information:
- Resursinformation som namn, typ, plats och resurs-ID
- Kompatibilitetstillstånd och tidsstämpel för den senaste utvärderingen för den aktuella principtilldelningen
- En lista över orsaker till att resursen inte uppfyller efterlevnadsvillkoren
Viktigt
Eftersom kompatibilitetsinformationen för en icke-kompatibel resurs visar det aktuella värdet för egenskaper för resursen, måste användaren ha läsåtgärd till typen av resurs. Om den icke-kompatibla resursen till exempel är Microsoft.Compute/virtualMachines måste användaren ha åtgärden Microsoft.Compute/virtualMachines/read. Om användaren inte har den nödvändiga åtgärden visas ett åtkomstfel.
Följ dessa steg om du vill visa efterlevnadsinformationen:
Starta Azure Policy-tjänsten i Azure Portal genom att välja Alla tjänster och sedan söka efter och välja Princip.
På sidan Översikt eller Efterlevnad väljer du en princip i ett efterlevnadstillstånd som är Icke-kompatibelt.
På fliken Resursefterlevnad på sidan Principefterlevnad väljer du och håller ned (eller högerklickar) eller väljer ellipsen för en resurs i ett kompatibilitetstillstånd som är Icke-kompatibelt. Välj sedan Visa efterlevnadsinformation.
Fönstret Efterlevnadsinformation visar information från den senaste utvärderingen av resursen till den aktuella principtilldelningen. I det här exemplet är fältet Microsoft.Sql/servers/version 12.0 medan principdefinitionen förväntades 14.0. Om resursen inte är kompatibel av flera orsaker visas var och en i det här fönstret.
För en principdefinition för auditIfNotExists eller deployIfNotExists innehåller informationen egenskapen details.type och eventuella valfria egenskaper. En lista finns i auditIfNotExists-egenskaper och deployIfNotExists-egenskaper. Senast utvärderad resurs är en relaterad resurs från informationsavsnittet i definitionen.
Exempel på partiell 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": { ... } } } }
Anteckning
När ett egenskapsvärde är en hemlighet visar det aktuella värdet asterisker för att skydda data.
Den här informationen förklarar varför en resurs för närvarande inte är kompatibel, men visar inte när ändringen gjordes för resursen som gjorde att den blev icke-kompatibel. Mer information finns i Ändra historik (förhandsversion) nedan.
Efterlevnadsskäl
Resource Manager lägena och resursprovidern har olika orsaker till bristande efterlevnad.
Allmänna Resource Manager kompatibilitetsskäl
I följande tabell mappar varje Resource Manager-lägesorsaken till det ansvariga villkoret i principdefinitionen:
| Anledning | Villkor |
|---|---|
| Aktuellt värde måste innehålla målvärdet som en nyckel. | containsKey eller notContainsKey |
| Aktuellt värde måste innehålla målvärdet. | contains eller notContains |
| Det aktuella värdet måste vara lika med målvärdet. | lika med eller inteEquals |
| Det aktuella värdet måste vara mindre än målvärdet. | mindre eller inte störreeller lika med |
| Det aktuella värdet måste vara större än eller lika med målvärdet. | större än eller lika med eller inte mindre |
| Det aktuella värdet måste vara större än målvärdet. | större än eller inte mindre än eller lika med |
| Det aktuella värdet måste vara mindre än eller lika med målvärdet. | mindre än eller lika med eller inte större |
| Aktuellt värde måste finnas. | Finns |
| Det aktuella värdet måste finnas i målvärdet. | in eller notIn |
| Det aktuella värdet måste vara som målvärdet. | like or notLike |
| Det aktuella värdet måste vara fallkänsligt och matcha målvärdet. | matcha eller intematcha |
| Det aktuella värdet måste vara okänsligt för att matcha målvärdet. | matchInsensitively eller notMatchInsensitively |
| Aktuellt värde får inte innehålla målvärdet som en nyckel. | notContainsKey eller not containsKey |
| Det aktuella värdet får inte innehålla målvärdet. | notContains eller innehåller inte |
| Det aktuella värdet får inte vara lika med målvärdet. | notEquals eller not equals |
| Det aktuella värdet får inte finnas. | finns inte |
| Det aktuella värdet får inte finnas i målvärdet. | notIn eller inte i |
| Det aktuella värdet får inte vara som målvärdet. | notLike eller not like |
| Det aktuella värdet får inte vara fallkänsligt och matcha målvärdet. | notMatch eller not match |
| Det aktuella värdet får inte vara okänsligt för att matcha målvärdet. | notMatchInsensitively eller not matchInsensitively |
| Inga relaterade resurser matchar effektinformationen i principdefinitionen. | En resurs av typen som definieras i then.details.type och som är relaterad till resursen som definierats i if-delen av principregeln inte finns. |
Kompatibilitetsorsaker för AKS-resursproviderläge
I följande tabell mappar varje Microsoft.Kubernetes.Data
orsak till resursproviderläget till det ansvarsfulla tillståndet för begränsningsmallen i principdefinitionen:
| Anledning | Beskrivning av orsak till begränsningsmall |
|---|---|
| Constraint/TemplateCreateFailed | Det gick inte att skapa resursen för en principdefinition med en begränsning/mall som inte matchar en befintlig begränsning/mall i klustret efter resursmetadatanamn. |
| Constraint/TemplateUpdateFailed | Begränsningen/mallen kunde inte uppdateras för en principdefinition med en begränsning/mall som matchar en befintlig begränsning/mall i klustret efter resursmetadatanamn. |
| Constraint/TemplateInstallFailed | Begränsningen/mallen kunde inte skapas och kunde inte installeras i klustret för antingen create- eller update-åtgärd. |
| ConstraintTemplateConflicts | Mallen har en konflikt med en eller flera principdefinitioner som använder samma mallnamn med en annan källa. |
| ConstraintStatusStale | Det finns en befintlig granskningsstatus, men Gatekeeper har inte utfört någon granskning under den senaste timmen. |
| ConstraintNotProcessed | Det finns ingen status och Gatekeeper har inte utfört någon granskning under den senaste timmen. |
| InvalidConstraint/Mall | API Server har avvisat resursen på grund av en felaktig YAML. Den här orsaken kan också orsakas av ett matchningsfel för parametertyp (exempel: sträng som anges för ett heltal) |
Anteckning
För befintliga principtilldelningar och begränsningsmallar som redan finns i klustret, och om begränsningen/mallen misslyckas, skyddas klustret genom att behålla den befintliga begränsningen/mallen. Klustret rapporterar som icke-kompatibelt tills felet har lösts vid principtilldelningen eller tillägget självläser. Mer information om hantering av konflikter finns i Begränsningsmallkonflikter.
Komponentinformation för resursproviderlägen
För tilldelningar med läget Resursprovider väljerdu resursen Icke-kompatibel för att öppna en djupare vy. På fliken Komponentefterlevnad finns ytterligare information som är specifik för resursproviderläget för den tilldelade principen, som visar den icke-kompatibla komponenten och komponent-ID:t.
Efterlevnadsinformation för gästkonfiguration
För principdefinitioner i kategorin Gästkonfiguration kan det finnas flera inställningar som utvärderas i den virtuella datorn och du måste visa information per inställning. Om du till exempel granskar en lista över säkerhetsinställningar och endast en av dem har statusen Icke-kompatibel måste du veta vilka specifika inställningar som inte är kompatibla och varför.
Du kanske inte heller har åtkomst till att logga in på den virtuella datorn direkt, men du måste rapportera om varför den virtuella datorn är icke-kompatibel.
Azure Portal
Börja med att följa samma steg i avsnittet ovan för att visa information om principefterlevnad.
I fönstret Efterlevnadsinformation väljer du länken Senast utvärderad resurs.
På sidan Gästtilldelning visas all tillgänglig efterlevnadsinformation. Varje rad i vyn representerar en utvärdering som utfördes på datorn. I kolumnen Orsak visas en fras som beskriver varför gästtilldelningen är icke-kompatibel. Om du till exempel granskar lösenordsprinciper visar kolumnen Orsak text, inklusive det aktuella värdet för varje inställning.
Visa information om konfigurationstilldelning i stor skala
Gästkonfigurationsfunktionen kan användas utanför Azure Policy tilldelningar. Till exempel skapar Azure AutoManage gästkonfigurationstilldelningar, eller så kan du tilldela konfigurationer när du distribuerar datorer.
Om du vill visa alla gästkonfigurationstilldelningar i klientorganisationen öppnar Azure Portal på sidan Gästtilldelningar. Om du vill visa detaljerad efterlevnadsinformation markerar du varje tilldelning med hjälp av länken i kolumnen "Namn".
Ändra historik (förhandsversion)
Som en del av en ny offentlig förhandsversion är de senaste 14 dagarnas ändringshistorik tillgängliga för alla Azure-resurser som stöder borttagning i fullständigt läge. Ändringshistoriken innehåller information om när en ändring identifierades och en visuell skillnad för varje ändring. En ändringsidentifiering utlöses när Azure Resource Manager egenskaper läggs till, tas bort eller ändras.
Starta tjänsten Azure Policy i Azure Portal genom att välja Alla tjänster och sedan söka efter och välja Princip.
På sidan Översikt eller Efterlevnad väljer du en princip i val annat efterlevnadstillstånd.
Under fliken Resursefterlevnad på sidan Principefterlevnad väljer du en resurs.
Välj fliken Ändringshistorik (förhandsversion) på sidan Resursefterlevnad. En lista över identifierade ändringar, om några finns, visas.
Välj en av de identifierade ändringarna. Den visuella differensen för resursen visas på sidan Ändringshistorik.
Det visuella differensområdet vid identifiering av ändringar i en resurs. De identifierade ändringarna kanske inte är relaterade till resursens aktuella kompatibilitetstillstånd.
Ändringshistorikdata tillhandahålls av Azure Resource Graph. Information om hur du frågar efter den här Azure Portal finns i Hämta resursändringar.
Nästa steg
- Granska exempel på Azure Policy exempel.
- Granska Azure Policy-definitionsstrukturen.
- Granska Förstå policy-effekter.
- Förstå hur du programmässigt skapar principer.
- Lär dig hur du hämtar efterlevnadsdata.
- Lär dig hur du åtgärdar icke-kompatibla resurser.
- Granska vad en hanteringsgrupp är med Organisera dina resurser med Azure-hanteringsgrupper.