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:

  1. Starta Azure Policy-tjänsten i Azure Portal genom att välja Alla tjänster och sedan söka efter och välja Princip.

  2. På sidan Översikt eller Efterlevnad väljer du en princip i ett efterlevnadstillstånd som är Icke-kompatibelt.

  3. 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.

    Skärmbild av länken Visa efterlevnadsinformation på fliken Resursefterlevnad.

  4. 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.

    Skärmbild av fönstret Efterlevnadsinformation och orsaker till att det aktuella värdet inte är 12 och målvärdet är 12.

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

    Skärmbild av fönstret Efterlevnadsinformation för ifNotExists, inklusive utvärderat resursantal.

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.

Skärmbild av fliken Komponentefterlevnad och kompatibilitetsinformation för tilldelning av resursproviderläge.

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.

Skärmbild av granskningsinformationen för definition av auditIfNotExists.

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.

Skärmbild av efterlevnadsinformation för gästtilldelning.

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".

Skärmbild av sidan Gästtilldelning.

Ä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.

  1. Starta tjänsten Azure Policy i Azure Portal genom att välja Alla tjänster och sedan söka efter och välja Princip.

  2. På sidan Översikt eller Efterlevnad väljer du en princip i val annat efterlevnadstillstånd.

  3. Under fliken Resursefterlevnad på sidan Principefterlevnad väljer du en resurs.

  4. Välj fliken Ändringshistorik (förhandsversion)sidan Resursefterlevnad. En lista över identifierade ändringar, om några finns, visas.

    Skärmbild av fliken Ändringshistorik och identifierade ändringstider på sidan Resursefterlevnad.

  5. Välj en av de identifierade ändringarna. Den visuella differensen för resursen visas på sidan Ändringshistorik.

    Skärmbild av ändringshistorikens visuella differens för egenskaperna före och efter på sidan Ändra historik.

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