Určení příčin nedodržování předpisů
Když se zjistí, že prostředek Azure nevyhovuje pravidlu zásad, je užitečné pochopit, která část pravidla prostředek nevyhovuje. Je také užitečné pochopit, která změna změnila dříve vyhovující prostředek, aby nedodržoval předpisy. Tyto informace můžete najít dvěma způsoby:
Podrobnosti o dodržování předpisů
Pokud prostředek nedodržuje předpisy, podrobnosti o dodržování předpisů pro daný prostředek jsou k dispozici na stránce Dodržování zásad . Podokno podrobností o dodržování předpisů obsahuje následující informace:
- Podrobnosti o prostředku, jako je název, typ, umístění a ID prostředku.
- Stav dodržování předpisů a časové razítko posledního vyhodnocení pro aktuální přiřazení zásady
- Seznam důvodů, proč prostředek nedodržuje předpisy.
Důležité
Vzhledem k tomu, že podrobnosti o dodržování předpisů pro prostředek nedodržování předpisů zobrazují aktuální hodnotu vlastností daného prostředku, musí mít uživatel operaci čtení pro typ prostředku. Pokud je Microsoft.Compute/virtualMachines
například prostředek nedodržování předpisů, musí mít Microsoft.Compute/virtualMachines/read
uživatel operaci. Pokud uživatel nemá potřebnou operaci, zobrazí se chyba přístupu.
Pokud chcete zobrazit podrobnosti o dodržování předpisů, postupujte takto:
Spusťte službu Azure Policy na webu Azure Portal tak, že vyberete Všechny služby a pak vyhledáte a vyberete Zásady.
Na stránce Přehled nebo Dodržování předpisů vyberte zásadu ve stavu dodržování předpisů, který nedodržuje předpisy.
Na kartě Dodržování předpisů pro prostředky na stránce Dodržování zásad vyberte a podržte (nebo klikněte pravým tlačítkem) nebo vyberte tři tečky prostředku ve stavu dodržování předpisů, který nedodržuje předpisy. Pak vyberte Zobrazit podrobnosti o dodržování předpisů.
V podokně Podrobností o dodržování předpisů se zobrazují informace z nejnovějšího vyhodnocení prostředku k aktuálnímu přiřazení zásad. V tomto příkladu se zjistí, že pole
Microsoft.Sql/servers/version
je 12,0 , zatímco definice zásady očekává 14.0. Pokud prostředek nedodržuje předpisy z několika důvodů, je každý uvedený v tomto podokně.auditIfNotExists
Podrobnosti o definici nebodeployIfNotExists
definici zásad zahrnují vlastnost details.type a všechny volitelné vlastnosti. Seznam naleznete v tématu auditIfNotExists vlastnosti a deployIfNotExists vlastnosti. Poslední vyhodnocený prostředek je související prostředek z části podrobností definice.Příklad částečné
deployIfNotExists
definice:{ "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": { ... } } } }
Poznámka:
Chcete-li chránit data, je-li hodnota vlastnosti tajným kódem, zobrazí aktuální hodnota hvězdičky.
Tyto podrobnosti vysvětlují, proč prostředek momentálně nedodržuje předpisy, ale nezobrazují se, kdy došlo ke změně prostředku, který způsobil, že nedodržuje předpisy. Informace najdete v tématu Historie změn (Preview).
Důvody dodržování předpisů
Režimy Resource Manageru a režimy poskytovatele prostředků mají různé důvody pro nedodržení předpisů.
Obecné důvody dodržování předpisů v režimu Resource Manageru
Následující tabulka mapuje každý důvod režimu Resource Manageru na zodpovědný stav v definici zásady:
Důvod | Podmínka |
---|---|
Aktuální hodnota musí obsahovat cílovou hodnotu jako klíč. | containsKey nebo notContainsKey |
Aktuální hodnota musí obsahovat cílovou hodnotu. | obsahuje nebo notContains |
Aktuální hodnota musí být rovna cílové hodnotě. | rovná se nebo není |
Aktuální hodnota musí být menší než cílová hodnota. | menší nebo ne greaterOrEquals |
Aktuální hodnota musí být větší nebo rovna cílové hodnotě. | greaterOrEquals nebo ne méně |
Aktuální hodnota musí být větší než cílová hodnota. | greater or not lessOrEquals |
Aktuální hodnota musí být menší nebo rovna cílové hodnotě. | lessOrEquals nebo ne větší |
Aktuální hodnota musí existovat. | existuje |
Aktuální hodnota musí být v cílové hodnotě. | in or notIn |
Aktuální hodnota musí být podobná cílové hodnotě. | like or notLike |
Aktuální hodnota musí rozlišovat malá a velká písmena s cílovou hodnotou. | match or notMatch |
Aktuální hodnota musí být nerozlišující malá a velká písmena odpovídající cílové hodnotě. | matchInsensitively or notMatchInsensitivelyly |
Aktuální hodnota nesmí obsahovat cílovou hodnotu jako klíč. | notContainsKey nebo neobsahujeKey |
Aktuální hodnota nesmí obsahovat cílovou hodnotu. | notContains nebo neobsahuje |
Aktuální hodnota nesmí být rovna cílové hodnotě. | notEquals or not equals |
Aktuální hodnota nesmí existovat. | neexistuje |
Aktuální hodnota nesmí být v cílové hodnotě. | notIn or not in |
Aktuální hodnota nesmí být podobná cílové hodnotě. | notLike nebo ne like |
Aktuální hodnota nesmí rozlišovat malá a velká písmena s cílovou hodnotou. | notMatch nebo neodpovídá |
Aktuální hodnota nesmí být nerozlišující malá a velká písmena shodná s cílovou hodnotou. | notMatchInsensensitively or not MatchInsensitively |
Žádné související prostředky neodpovídají podrobnostem o efektu v definici zásady. | Prostředek typu definovaného v then.details.type prostředku definovaném v části pravidla zásad a související s ním, pokud část pravidla zásad neexistuje. |
Důvody dodržování předpisů v režimu poskytovatele prostředků Azure Policy
Následující tabulka mapuje kód důvodu každého Microsoft.PolicyInsights
zprostředkovatele prostředků na odpovídající vysvětlení:
Kód důvodu dodržování předpisů | Chybová zpráva a vysvětlení |
---|---|
NonModifiablePolicyAlias | NonModifiableAliasConflict: Alias {alias} není možné upravit v požadavcích pomocí verze rozhraní API {apiVersion}. K této chybě dochází v případě, že požadavek používající verzi rozhraní API, ve které alias nepodporuje efekt modify nebo podporuje pouze efekt modify s jiným typem tokenu. |
AppendPoliciesNotApplicable | AppendPoliciesUnableToAppend: Aliasy: {aliases }, které nelze upravit v požadavcích pomocí verze rozhraní API: {apiVersion }. K tomu může dojít v požadavcích pomocí verzí rozhraní API, pro které aliasy nepodporují účinek "modify" nebo podporují efekt "modify" s jiným typem tokenu. |
KonfliktníAppendPolicies | Konfliktní ZásadyAppendPolicies: Byla nalezena konfliktní přiřazení zásad, která upravují pole {notApplicableFields}. Identifikátory zásad: {policy}. Požádejte správce předplatného, aby aktualizoval přiřazení zásad. |
AppendPoliciesFieldsExist | AppendPoliciesFieldsExistWithDifferentValues: Přiřazení zásad se pokusila připojit pole, která již v požadavku existují s různými hodnotami. Pole: {existingFields}. Identifikátory zásad: {policy}. Pokud chcete zásady aktualizovat, obraťte se na správce předplatného. |
AppendPoliciesUndefinedFields | AppendPoliciesUndefinedFields: Byla nalezena definice zásady odkazující na nedefinovanou vlastnost pole pro verzi rozhraní API {apiVersion}. Pole: {nonExistingFields}. Identifikátory zásad: {policy}. Pokud chcete zásady aktualizovat, obraťte se na správce předplatného. |
MissingRegistrationForType | MissingRegistrationForResourceType: Předplatné není zaregistrované pro typ prostředku {ResourceType}. Zkontrolujte, jestli typ prostředku existuje a že je zaregistrovaný typ prostředku. |
NejednoznačnéPolicyEvaluationPaths | Obsah požadavku má jednu nebo více nejednoznačných cest: "{0}' vyžadované zásadami: '{1}'. |
InvalidResourceNameWildcardPosition | Přiřazení{0} zásady přidružené k definici{1} zásady nebylo možné vyhodnotit. Název prostředku '{2}' v podmínce ifNotExists obsahuje zástupný znak '?' v neplatné pozici. Zástupné cardy mohou být umístěny pouze na konci názvu v segmentu sami (např. TopLevelResourceName/?). Opravte zásadu nebo zrušte odblokování přiřazení zásad. |
TooManyResourceNameSegments | Přiřazení{0} zásady přidružené k definici{1} zásady nebylo možné vyhodnotit. Název prostředku v{2} podmínce ifNotExists obsahuje příliš mnoho segmentů názvů. Počet segmentů názvů musí být roven nebo menší než počet segmentů typu (s výjimkou oboru názvů poskytovatele prostředků). Opravte definici zásady nebo odeberte přiřazení zásady, které chcete odblokovat. |
InvalidPolicyFieldPath | Cesta pole v{0} definici zásady je neplatná. Cesty k polím nesmí obsahovat žádné prázdné segmenty. Mohou obsahovat pouze alfanumerické znaky s výjimkou znaku "." pro rozdělení segmentů a sekvence znaků [*] pro přístup k vlastnostem pole. |
Důvody dodržování předpisů v režimu poskytovatele prostředků AKS
Následující tabulka mapuje Microsoft.Kubernetes.Data
každý důvod režimu poskytovatele prostředků na zodpovědný stav šablony omezení v definici zásady:
Důvod | Popis důvodu šablony omezení |
---|---|
Constraint/TemplateCreateFailed | Prostředek se nepodařilo vytvořit pro definici zásady s omezením nebo šablonou, která neodpovídá existujícímu omezení nebo šabloně v clusteru podle názvu metadat prostředků. |
Constraint/TemplateUpdateFailed | Nepodařilo se aktualizovat definici zásady s omezením nebo šablonou, která odpovídá existujícímu omezení nebo šabloně v clusteru podle názvu metadat prostředků. |
Constraint/TemplateInstallFailed | Nepodařilo se sestavit omezení nebo šablonu a nepodařilo se ji nainstalovat do clusteru pro operaci vytvoření nebo aktualizace. |
ConstraintTemplateConflicts | Šablona je v konfliktu s jednou nebo více definicemi zásad, které používají stejný název šablony s jiným zdrojem. |
ConstraintStatusStale | Existuje stav Audit, ale Gatekeeper během poslední hodiny neprovedli audit. |
ConstraintNotProcessed | Stav neexistuje a Gatekeeper během poslední hodiny neprovedli audit. |
InvalidConstraint/Template | Prostředek byl odmítnut z jednoho z následujících důvodů: neplatný obsah šablony omezení Rego, neplatný YAML nebo neshoda typu parametru mezi omezením a šablonou omezení (poskytnutí řetězcové hodnoty, pokud se očekávalo celé číslo). |
Poznámka:
U existujících přiřazení zásad a šablon omezení, které už jsou v clusteru, je-li toto omezení nebo šablona neúspěšné, je cluster chráněn udržováním existujícího omezení nebo šablony. Cluster hlásí, že nedodržuje předpisy, dokud se selhání nevyřeší při přiřazení zásad nebo samoobslužných opravach doplňků. Další informace o zpracování konfliktů naleznete v tématu Konflikty šablony omezení.
Podrobnosti o komponentách pro režimy poskytovatele prostředků
U přiřazení s režimem poskytovatele prostředků vyberte prostředek nedodržování předpisů a zobrazte záznamy o dodržování předpisů jeho součástí. Karta Dodržování předpisů komponent zobrazuje další informace specifické pro režim poskytovatele prostředků, jako je název komponenty, ID komponenty a typ.
Podrobnosti o dodržování předpisů pro konfiguraci hosta
U definic zásad v kategorii Konfigurace hosta může být uvnitř virtuálního počítače vyhodnoceno více nastavení a potřebujete zobrazit podrobnosti o jednotlivých nastaveních. Pokud například auditujete seznam nastavení zabezpečení a jenom jeden z nich má stav Nedodržování předpisů, musíte vědět, která konkrétní nastavení nedodržují předpisy a proč.
Také možná nemáte přístup k přihlášení k virtuálnímu počítači přímo, ale potřebujete nahlásit, proč virtuální počítač nedodržuje předpisy.
portál Azure
Začněte stejným postupem v části Podrobnosti o dodržování předpisů a zobrazte podrobnosti o dodržování zásad.
V zobrazení podrobností o dodržování předpisů vyberte odkaz Poslední vyhodnocený prostředek.
Na stránce Zadání hosta se zobrazí všechny dostupné podrobnosti o dodržování předpisů. Každý řádek v zobrazení představuje vyhodnocení, které bylo provedeno v počítači. Ve sloupci Důvod se zobrazí fráze popisující, proč přiřazení hosta nedodržuje předpisy. Pokud například auditujete zásady hesel, zobrazí se ve sloupci Důvod text včetně aktuální hodnoty pro každé nastavení.
Zobrazení podrobností o přiřazení konfigurace ve velkém měřítku
Funkci konfigurace hosta je možné použít mimo přiřazení azure Policy. Azure Automanage například vytváří přiřazení konfigurace hosta nebo můžete při nasazování počítačů přiřazovat konfigurace.
Pokud chcete zobrazit všechna přiřazení konfigurace hosta ve vašem tenantovi, otevřete na webu Azure Portal stránku Přiřazení hostů. Pokud chcete zobrazit podrobné informace o dodržování předpisů, vyberte každé přiřazení pomocí odkazu ve sloupci Název.
Historie změn (Preview)
V rámci nové verze Public Preview jsou historie změn za posledních 14 dnů dostupná pro všechny prostředky Azure, které podporují úplné odstranění režimu. Historie změn obsahuje podrobnosti o tom, kdy byla zjištěna změna, a rozdíl vizuálu pro každou změnu. Detekce změn se aktivuje při přidání, odebrání nebo změně vlastností Azure Resource Manageru.
Spusťte službu Azure Policy na webu Azure Portal tak, že vyberete Všechny služby a pak vyhledáte a vyberete Zásady.
Na stránce Přehled nebo Dodržování předpisů vyberte zásadu v libovolném stavu dodržování předpisů.
Na kartě Dodržování předpisů prostředků na stránce Dodržování zásad vyberte prostředek.
Na stránce Dodržování předpisů prostředků vyberte kartu Historie změn (Preview). Zobrazí se seznam zjištěných změn, pokud existují.
Vyberte jednu z zjištěných změn. Rozdíl vizuálu prostředku se zobrazí na stránce Historie změn.
Vizuál se oddává při identifikaci změn prostředku. Zjištěné změny nemusí souviset s aktuálním stavem dodržování předpisů prostředku.
Data historie změn poskytuje Azure Resource Graph. Pokud se chcete dotazovat na tyto informace mimo azure Portal, přečtěte si téma Získání změn prostředků.
Další kroky
- Projděte si příklady v ukázkách azure Policy.
- Projděte si strukturu definic Azure Policy.
- Projděte si Vysvětlení efektů zásad.
- Seznamte se s programovým vytvářením zásad.
- Zjistěte, jak získat data dodržování předpisů.
- Zjistěte, jak napravit nevyhovující prostředky.
- Zkontrolujte, co je skupina pro správu pomocí uspořádání prostředků pomocí skupin pro správu Azure.