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:
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.
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.
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.
- A módnak minden erőforrástípushoz meg kell lennie
Győződjön meg arról, hogy az erőforrás hatóköre nincs kizárva vagy kivétel nélkül.
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.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
.
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.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:
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.
Ú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.
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.
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.
- A módnak minden erőforrástípushoz meg kell lennie
Győződjön meg arról, hogy az erőforrás hatóköre nincs kizárva vagy kivétel nélkül.
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.
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-addon
a 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.