Az Azure Policy használatával kapcsolatos hibák elhárítása

Amikor szabályzatdefiníciókat hoz létre, SDK-kkal dolgozik, vagy beállítja az Azure Policy for Kubernetes bővítményt, hibákba ütközhet. Ez a cikk különböző általános hibákat ismertet, és megoldási módszereket javasol.

A hiba részleteinek megkeresése

A hiba részleteinek helye attól függ, hogy az Azure Policy mely jellemzőit használja.

  • Ha egyéni szabályzatot használ, lépjen az Azure Portalra a sémával kapcsolatos linting-visszajelzés megtekintéséhez, vagy tekintse meg az eredményül kapott megfelelőségi adatokat, hogy megtudhassa, hogyan történt az erőforrások kiértékelése.
  • Ha a különböző SDK-k valamelyikét használja, az SDK részleteket nyújt a függvény meghiúsulásának okával kapcsolatban.
  • Ha a Kuberneteshez készült bővítményt használja, kezdje a fürtben lévő naplózással.

Általános hibák

Forgatókönyv: Az alias nem található

Probléma

Egy szabályzatdefinícióban helytelen vagy nem létező alias van használatban. Az Azure Policy aliasokat használ az Azure Resource Manager-tulajdonságok leképezéséhez.

Ok

Egy szabályzatdefinícióban helytelen vagy nem létező alias van használatban.

Resolution (Osztás)

Először ellenőrizze, hogy a Resource Manager tulajdonság rendelkezik-e aliasnévvel. Az elérhető aliasok megtekintéséhez navigáljon a Visual Studio Code-hoz készült Azure Policy-bővítményhez vagy az SDK-hoz. Ha egy Resource Manager-tulajdonság aliasa nem létezik, hozzon létre egy támogatási jegyet.

Forgatókönyv: A kiértékelés részletei nem naprakészek

Probléma

Egy erőforrás Nincs elindítva állapotban van, vagy a megfelelőség részletei nem tükrözik a jelenlegi állapotot.

Ok

Egy új szabályzat vagy kezdeményezés hozzárendelésének alkalmazása körülbelül öt percet vesz igénybe. A meglévő hozzárendelés hatókörében lévő új vagy frissített erőforrások körülbelül 15 perc alatt elérhetővé válnak. 24 óránként történik szabványoknak való megfelelőségi vizsgálat. További információért lásd: kiértékelési triggerek.

Resolution (Osztás)

Előbb várja meg, amíg befejeződik az értékelés, és a megfelelőségi eredmények elérhetővé válnak az Azure Portalon vagy az SDK-ban. Új értékelési vizsgálat indításához az Azure PowerShell vagy a REST API használatával lásd: Igény szerinti értékelési vizsgálat.

Forgatókönyv: A megfelelőség nem egyezik a várttal

Probléma

Az erőforrás nincsen a várt Megfelelő vagy Nem megfelelő értékelési állapotban.

Ok

A erőforrás nincs a megfelelő szabályzat-hozzárendelési hatókörben, vagy a szabályzatdefiníció nem működik megfelelően.

Resolution (Osztás)

A szabályzatdefiníció hibaelhárításához tegye a következőket:

  1. Előbb várja meg, amíg befejeződik az értékelés, és a megfelelőségi eredmények elérhetővé válnak az Azure Portalon vagy az SDK-ban.

  2. Új értékelési vizsgálat indításához az Azure PowerShell vagy a REST API használatával lásd: Igény szerinti értékelési vizsgálat.

  3. Győződjön meg arról, hogy a hozzárendelési paraméterek és a hozzárendelés hatóköre megfelelően van beállítva.

  4. Ellenőrizze a szabályzatdefiníciós módot:

    • A módnak minden erőforrástípushoz meg kell lennie all .
    • A módnak akkor kell lennie indexed , ha a szabályzatdefiníció címkéket vagy helyet keres.
  5. Győződjön meg arról, hogy az erőforrás hatóköre nincs kizárva vagy kivétel nélkül.

  6. Ha a szabályzat-hozzárendelések megfelelősége erőforrásokat mutat 0/0 , a rendszer nem állapította meg, hogy az erőforrások alkalmazhatók-e a hozzárendelés hatókörében. Ellenőrizze a szabályzatdefiníciót és a hozzárendelés hatókörét.

  7. A nem megfelelő, de megfelelőnek várt erőforrások esetében lásd a nem megfelelőség okainak meghatározásával foglalkozó részt. A definíció és a kiértékelt tulajdonság értékének összehasonlítása mutatja meg az erőforrás nem megfelelőségének okát.

    • Ha a célérték helytelen, módosítsa a szabályzatdefiníciót.
    • Ha az aktuális érték helytelen, ellenőrizze az erőforrás hasznos adatait resources.azure.com.
  8. RegEx-sztringparamétert támogató erőforrás-szolgáltatói mód-definíciók esetében (például Microsoft.Kubernetes.Data a beépített "Tárolólemezképeket csak megbízható adatbázisból kell üzembe helyezni"), ellenőrizze, hogy a RegEx sztringparaméter helyes-e.

  9. Egyéb gyakori problémákért és megoldásokért lásd: Hibaelhárítás: A betartatás nem a várt módon működik.

Ha továbbra is problémát tapasztal a duplikált és testre szabott beépített szabályzatdefinícióval vagy egyéni definícióval kapcsolatban, a probléma megfelelő kezeléséhez a Szabályzat létrehozása kategóriában hozzon létre támogatási jegyet.

Forgatókönyv: A betartatás nem a várt módon működik

Probléma

Az Azure Policy nem hajtja végre a várt műveleteket egy erőforráson, és az Azure-tevékenységnaplóban nem szerepel bejegyzés.

Ok

A szabályzat-hozzárendelés enforcementMode tulajdonsága Letiltva beállítással lett konfigurálva. Bár a enforcementMode le van tiltva, a szabályzat hatása nincs kényszerítve, és nincs bejegyzés a tevékenységnaplóban.

Resolution (Osztás)

A szabályzat-hozzárendelés kényszerítésének hibaelhárításához tegye a következőket:

  1. Ellőbb várja meg, amíg befejeződik az értékelés, és a megfelelőségi eredmények elérhetővé válnak az Azure Portalon vagy az SDK-ban.

  2. Új értékelési vizsgálat indításához az Azure PowerShell vagy a REST API használatával lásd: Igény szerinti értékelési vizsgálat.

  3. Győződjön meg arról, hogy a hozzárendelési paraméterek és a hozzárendelés hatóköre helyesen van beállítva, és hogy a enforcementMode engedélyezve van.

  4. Ellenőrizze a szabályzatdefiníciós módot:

    • A módnak minden erőforrástípushoz meg kell lennie all .
    • A módnak akkor kell lennie indexed , ha a szabályzatdefiníció címkéket vagy helyet keres.
  5. Győződjön meg arról, hogy az erőforrás hatóköre nincs kizárva vagy kivétel nélkül.

  6. Ellenőrizze, hogy az erőforrás hasznos adatai megegyeznek-e a szabályzatlogikával. Ezt megteheti egy HTTP-archívumhoz kapcsolódó (HAR-) nyomkövetés rögzítésével vagy az Azure Resource Manager- (ARM-) sablon tulajdonságainak áttekintésével.

  7. Egyéb gyakori problémákért és megoldásokért lásd: Hibaelhárítás: A megfelelőség nem a várt módon működik.

Ha továbbra is problémát tapasztal a duplikált és testre szabott beépített szabályzatdefinícióval vagy egyéni definícióval kapcsolatban, a probléma megfelelő kezeléséhez a Szabályzat létrehozása kategóriában hozzon létre támogatási jegyet.

Forgatókönyv: Az Azure Policy megtagadja a műveletet

Probléma

Az erőforrás létrehozását vagy frissítését a rendszer elutasítja.

Ok

Az új vagy frissített erőforrásra vonatkozó szabályzat-hozzárendelés megfelel egy Megtagadás hatású szabályzatdefiníció feltételeinek. Az e definícióknak megfelelő erőforrások nem hozhatók létre és nem frissíthetők.

Resolution (Osztás)

Az elutasításiszabályzat-hozzárendelésből származó hibaüzenetben szerepel a szabályzatdefiníció és a szabályzat-hozzárendelés azonosítója. Ha nem tekintette meg az üzenetben szereplő hibainformációkat, elérheti azokat a Tevékenységnaplóban is. Ezen információk révén részletesebben tájékozódhat az erőforrás-korlátozásokról, illetve módosíthatja a kérelemben szereplő erőforrás-tulajdonságokat az engedélyezett értékeknek megfelelően.

Forgatókönyv: A definíció több erőforrástípusra vonatkozik

Probléma

A több erőforrástípust tartalmazó szabályzatdefiníció ellenőrzése a létrehozás vagy a frissítés során a következő hibaüzenettel meghiúsul:

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}'.

Ok

A szabályzatdefiníció szabályában van legalább egy olyan feltétel, amelyet a cél erőforrástípusok nem értékelnek.

Resolution (Osztás)

Ha aliast használ, győződjön meg arról, hogy az alias csak a hozzá tartozó erőforrástípussal lesz kiértékelve, ha előtte egy típusfeltételt ad hozzá. Alternatív megoldásként ossza fel a szabályzatdefiníciót több különálló definícióra, így elkerülheti, hogy a definíció több erőforrástípusra vonatkozzon.

Forgatókönyv: Túllépte az előfizetés korlátait

Probléma

Az Azure Portal megfelelőségi oldalán hibaüzenet jelenik meg a szabályzat-hozzárendelések megfelelőségének lekérésekor.

Ok

A kérelemben kiválasztott hatókörökben lévő előfizetések száma túllépte az 5000 előfizetésre vonatkozó korlátot. A megfelelőségi eredmények hiányosan jelenhetnek meg.

Resolution (Osztás)

Az eredmények egészének megtekintéséhez válasszon részletesebb, kevesebb gyermek előfizetést tartalmazó hatókört.

Sablonhibák

Forgatókönyv: Szabályzat által támogatott függvények sablon alapján feldolgozva

Probléma

Az Azure Policy számos ARM-sablonfüggvényt és függvényt támogat, amelyek csak szabályzatdefiníciókban érhetők el. A Resource Manager ezeket a függvényeket a házirenddefiníció helyett az üzembe helyezés részeként dolgozza fel.

Ok

A támogatott függvények( például parameter() vagy resourceGroup()) használata a függvény feldolgozott eredményét eredményezi az üzembe helyezéskor, ahelyett, hogy lehetővé tenné a függvény feldolgozását a szabályzatdefiníció és az Azure Policy-motor számára.

Resolution (Osztás)

Ha egy függvényt egy szabályzatdefiníció részeként szeretne átadni, a teljes sztringet [ úgy kell feloldani, hogy a tulajdonság így nézzen [[resourceGroup().tags.myTag]ki. A feloldó karakter hatására a Resource Manager sztringként kezeli az értéket, amikor feldolgozza a sablont. Az Azure Policy ezután a függvényt a szabályzatdefinícióba helyezi, amely lehetővé teszi, hogy a várt módon dinamikus legyen. További információ: Szintaxis és kifejezések az Azure Resource Manager-sablonokban.

A Kubernetes telepítési hibáinak bővítménye

Forgatókönyv: A Helm-diagram használatával történő telepítés jelszóhiba miatt meghiúsul

Probléma

A helm install azure-policy-addon parancs sikertelen, és az alábbi hibák egyikét adja vissza:

  • !: event not found
  • Error: failed parsing --set data: key "<key>" has no value (cannot end with ,)

Ok

A létrehozott jelszó tartalmaz egy vesszőt (,), amelyre a Helm-diagram fel van osztva.

Resolution (Osztás)

Futtatáskor helm install azure-policy-addona jelszóérték vesszőjének (,) feloldása fordított perjellel (\).

Forgatókönyv: A Helm-diagram használatával történő telepítés meghiúsul, mert a név már létezik

Probléma

A helm install azure-policy-addon parancs sikertelen, és a következő hibát adja vissza:

  • Error: cannot re-use a name that is still in use

Ok

A Helm-diagram azure-policy-addon neve már telepítve van, vagy részben telepítve van.

Resolution (Osztás)

Kövesse az utasításokat az Azure Policy for Kubernetes bővítmény eltávolításához, majd futtassa újra a helm install azure-policy-addon parancsot.

Forgatókönyv: Az Azure-beli virtuális gépek felhasználó által hozzárendelt identitásai helyébe rendszer által hozzárendelt felügyelt identitások kerülnek

Probléma

Miután hozzárendelte a vendégkonfigurációs házirend kezdeményezéseit a gép naplózási beállításaihoz, a géphez rendelt felhasználó által hozzárendelt felügyelt identitások már nem lesznek hozzárendelve. Csak rendszer által hozzárendelt felügyelt identitás van hozzárendelve.

Ok

A vendégkonfigurációs DeployIfNotExists-definíciókban korábban használt szabályzatdefiníciók gondoskodtak arról, hogy egy rendszer által hozzárendelt identitás legyen hozzárendelve a géphez, de a felhasználó által hozzárendelt identitás-hozzárendeléseket is eltávolították.

Resolution (Osztás)

A korábban ezt a problémát okozó definíciók [Elavult] néven jelennek meg, és olyan szabályzatdefiníciók lépnek rájuk, amelyek a felhasználó által hozzárendelt felügyelt identitások eltávolítása nélkül kezelik az előfeltételeket. Manuális lépésre van szükség. Törölje az [Elavultként] megjelölt meglévő szabályzat-hozzárendeléseket, és cserélje le azokat a frissített előfeltétel-házirend-kezdeményezésre és szabályzatdefiníciókra, amelyek neve megegyezik az eredetivel.

Részletes leírásért tekintse meg a vendégkonfigurációs naplózási szabályzatokhoz kiadott fontos módosításokat ismertető blogbejegyzést.

A Kubernetes általános hibáinak bővítménye

Forgatókönyv: A bővítmény a kimenő forgalom korlátozásai miatt nem éri el az Azure Policy szolgáltatás végpontját

Probléma

A bővítmény nem éri el az Azure Policy szolgáltatásvégpontot, és az alábbi hibák egyikét adja vissza:

  • failed to fetch token, service not reachable
  • Error 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

Ok

Ez a probléma akkor fordul elő, ha a fürt kimenő forgalmát zárolták.

Resolution (Osztás)

Győződjön meg arról, hogy a következő cikkben említett tartományok és portok nyitva vannak:

Forgatókönyv: A bővítmény az aad-pod-identity konfigurációja miatt nem éri el az Azure Policy szolgáltatás végpontját

Probléma

A bővítmény nem éri el az Azure Policy szolgáltatásvégpontot, és az alábbi hibák egyikét adja vissza:

  • 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=404
  • adal: 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>

Ok

Ez a hiba akkor fordul elő, ha az aad-pod-identity telepítve van a fürtön, és a kube-system podok nincsenek kizárva az aad-pod-identity-ban.

Az aad-pod-identity component Node Managed Identity (NMI) podok módosítják a csomópontok iptable-jait, hogy elfogják az Azure-példány metaadat-végpontjához intézett hívásokat. Ez a beállítás azt jelenti, hogy a metaadat-végpontra irányuló kéréseket az NMI elfogja, még akkor is, ha a pod nem használ aad-pod-identitást. Az AzurePodIdentityException CustomResourceDefinition (CRD) konfigurálható úgy, hogy tájékoztassa az aad-pod-identitást arról, hogy a CRD-ben definiált címkéknek megfelelő podból származó metaadat-végpontra irányuló kéréseket az NMI-ben történő feldolgozás nélkül kell kiépíteni.

Resolution (Osztás)

Az AzurePodIdentityException CRD konfigurálásával zárja ki azokat a rendszer podokat, amelyek címkéje a kubernetes.azure.com/managedby: aks kube-system névtérben található aad-pod-identityban .

További információ: Az Azure Active Directory (Azure AD) podidentitásának letiltása egy adott pod/alkalmazás esetében.

Kivétel konfigurálásához kövesse az alábbi példát:

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

Forgatókönyv: Az erőforrás-szolgáltató nincs regisztrálva

Probléma

A bővítmény elérheti az Azure Policy szolgáltatás végpontját, de a bővítménynaplók az alábbi hibák egyikét jelenítik meg:

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

Ok

A "Microsoft.Policy Elemzések" erőforrás-szolgáltató nincs regisztrálva. Regisztrálni kell a bővítményhez a szabályzatdefiníciók lekéréséhez és a megfelelőségi adatok visszaadásához.

Resolution (Osztás)

Regisztrálja a "Microsoft.Policy Elemzések" erőforrás-szolgáltatót a fürt-előfizetésben. Útmutatásért lásd: Erőforrás-szolgáltató regisztrálása.

Forgatókönyv: Az előfizetés le van tiltva

Probléma

A bővítmény elérheti az Azure Policy szolgáltatásvégpontot, de a következő hiba jelenik meg:

The subscription '{subId}' has been disabled for azure data-plane policy. Please contact support.

Ok

Ez a hiba azt jelenti, hogy az előfizetés problémásnak lett megállapítva, és a funkciójelző Microsoft.PolicyInsights/DataPlaneBlocked hozzá lett adva az előfizetés letiltásához.

Resolution (Osztás)

A probléma kivizsgálásához és megoldásához forduljon a szolgáltatáscsoporthoz.

Forgatókönyv: A "Vendégkonfiguráció" kategória definíciói nem duplikálhatók az Azure Portalról

Probléma

Amikor egyéni szabályzatdefiníciót próbál létrehozni az Azure Portal oldaláról a szabályzatdefiníciókhoz, válassza a "Duplikált definíció" gombot. A szabályzat hozzárendelése után úgy találja, hogy a gépek nem megfelelőek , mert nincs vendégkonfiguráció-hozzárendelési erőforrás.

Ok

A vendégkonfiguráció a szabályzatdefiníciókhoz hozzáadott egyéni metaadatokra támaszkodik a vendégkonfiguráció-hozzárendelési erőforrások létrehozásakor. Az Azure Portal "Duplikált definíció" tevékenysége nem másol egyéni metaadatokat.

Resolution (Osztás)

A portál használata helyett duplikálja a szabályzatdefiníciót a Policy Elemzések API használatával. Az alábbi PowerShell-minta egy lehetőséget kínál.

# 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' | % Properties
New-AzPolicyDefinition -name (new-guid).guid -DisplayName "$($def.DisplayName) (Copy)" -Description $def.Description -Metadata ($def.Metadata | convertto-json) -Parameter ($def.Parameters | convertto-json) -Policy ($def.PolicyRule | convertto-json -depth 15)

Forgatókönyv: A Kubernetes-erőforrás a csatlakozási hiba során jön létre annak ellenére, hogy a megtagadási szabályzat hozzárendelése folyamatban van

Probléma

Kubernetes-fürt csatlakozási hibája esetén az újonnan létrehozott vagy frissített erőforrások kiértékelése megkerülhető a Gatekeeper sikertelen megnyitási viselkedése miatt.

Ok

A GK feladatmegnyitási modell kialakítása és a közösségi visszajelzések alapján történik. A Gatekeeper dokumentációja a következő okokra terjed ki: https://open-policy-agent.github.io/gatekeeper/website/docs/failing-closed#considerations.

Resolution (Osztás)

A fenti eseményben a hibaeset a kube-apiserver által biztosított belépési webhook-metrikákból figyelhető. És még ha a kiértékelést a létrehozáskor megkerülik, és létrehoz egy objektumot, akkor is az Azure Policy-megfelelőséget jelenti, mint az ügyfelek számára jelölőként.

A fentiektől függetlenül egy ilyen forgatókönyvben az Azure Policy továbbra is megőrzi a fürt utolsó ismert szabályzatát, és megőrzi a védőkorlátokat.

Következő lépések

Ha a probléma nem szerepel a cikkben, vagy nem tudja megoldani, az alábbi csatornák egyikének felkeresésével kérhet támogatást:

  • Szakértők válaszolnak a Microsoft Q&A-n keresztül.
  • Csatlakozás @AzureSupport. Ez a Hivatalos Microsoft Azure-erőforrás a Twitteren segít az ügyfélélmény javításában azáltal, hogy összekapcsolja az Azure-közösséget a megfelelő válaszokkal, támogatással és szakértőkkel.
  • Ha továbbra is segítségre van szüksége, lépjen a Azure-támogatás webhelyre, és válassza a Támogatási kérelem elküldése lehetőséget.