Ustalanie przyczyn niezgodności

Jeśli zasób platformy Azure jest określany jako niezgodny z regułą zasad, warto zrozumieć, która część reguły, z którą zasób nie jest zgodny. Warto również zrozumieć, która zmiana zmieniła wcześniej zgodny zasób, aby nie była zgodna. Istnieją dwa sposoby znajdowania tych informacji:

Szczegóły zgodności

Jeśli zasób jest niezgodny, szczegóły zgodności dla tego zasobu są dostępne na stronie Zgodność z zasadami . Okienko szczegółów zgodności zawiera następujące informacje:

  • Szczegóły zasobu, takie jak nazwa, typ, lokalizacja i identyfikator zasobu.
  • Stan zgodności i sygnatura czasowa ostatniej oceny dla bieżącego przypisania zasad.
  • Lista przyczyn niezgodności zasobu.

Ważne

Ponieważ szczegóły zgodności zasobu Niezgodne pokazują bieżącą wartość właściwości tego zasobu, użytkownik musi mieć operację odczytu dla typu zasobu. Jeśli na przykład zasób niezgodny jest Microsoft.Compute/virtualMachines , użytkownik musi mieć operację Microsoft.Compute/virtualMachines/read . Jeśli użytkownik nie ma wymaganej operacji, zostanie wyświetlony błąd dostępu.

Aby wyświetlić szczegóły zgodności, wykonaj następujące kroki:

  1. Uruchom usługę Azure Policy w witrynie Azure Portal, wybierając pozycję Wszystkie usługi, a następnie wyszukując i wybierając pozycję Zasady.

  2. Na stronie Przegląd lub Zgodność wybierz zasady w stanie zgodności, który jest niezgodny.

  3. Na karcie Zgodność zasobów na stronie Zgodność z zasadami wybierz i przytrzymaj (lub kliknij prawym przyciskiem myszy) lub wybierz wielokropek zasobu w stanie zgodności, który jest niezgodny. Następnie wybierz pozycję Wyświetl szczegóły zgodności.

    Screenshot of the View compliance details link on the Resource compliance tab.

  4. W okienku Szczegóły zgodności są wyświetlane informacje z najnowszej oceny zasobu do bieżącego przypisania zasad. W tym przykładzie można znaleźć pole Microsoft.Sql/servers/version 12.0, a definicja zasad powinna mieć wartość 14.0. Jeśli zasób jest niezgodny z wielu powodów, każdy z nich jest wyświetlany w tym okienku.

    Screenshot of the Compliance details pane and reasons for non-compliance that current value is 12 and target value is 14.

    auditIfNotExists W przypadku definicji zasad lub deployIfNotExists szczegóły obejmują właściwość details.type i wszelkie właściwości opcjonalne. Aby uzyskać listę, zobacz właściwości auditIfNotExists i właściwości deployIfNotExists. Ostatnio oceniony zasób to powiązany zasób z sekcji szczegółów definicji.

    Przykładowa definicja częściowa deployIfNotExists :

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

    Screenshot of Compliance details pane for ifNotExists including evaluated resource count.

Uwaga

Aby chronić dane, gdy wartość właściwości jest wpisem tajnym, bieżąca wartość wyświetla gwiazdki.

Te szczegóły wyjaśniają, dlaczego zasób jest obecnie niezgodny, ale nie pokazuj, kiedy wprowadzono zmianę zasobu, który spowodował jego niezgodność. Aby uzyskać te informacje, zobacz Historia zmian (wersja zapoznawcza).

Przyczyny zgodności

Tryby usługi Resource Manager i tryby dostawcy zasobów mają różne przyczyny niezgodności.

Ogólne przyczyny zgodności trybu usługi Resource Manager

Poniższa tabela mapuje każdą przyczynę trybuusługi Resource Manager na warunek odpowiedzialny w definicji zasad:

Przyczyna Stan
Bieżąca wartość musi zawierać wartość docelową jako klucz. containsKey lub notContainsKey
Bieżąca wartość musi zawierać wartość docelową. zawiera lub niecontains
Bieżąca wartość musi być równa wartości docelowej. equals lub notEquals
Bieżąca wartość musi być mniejsza niż wartość docelowa. mniejsze lub nie większe Lub większe
Bieżąca wartość musi być większa lub równa wartości docelowej. greaterOrEquals lub nie mniej
Bieżąca wartość musi być większa niż wartość docelowa. większa lub nie mniejsza
Bieżąca wartość musi być mniejsza lub równa wartości docelowej. lessOrEquals lub nie większe
Bieżąca wartość musi istnieć. istnieje
Bieżąca wartość musi być w wartości docelowej. in lub notIn
Bieżąca wartość musi być podobna do wartości docelowej. lub nie Lubię
Bieżąca wartość musi być uwzględniana wielkość liter zgodną z wartością docelową. dopasowanie lub notMatch
Bieżąca wartość musi być bez uwzględniania wielkości liter zgodnie z wartością docelową. matchInsensitively lub notMatchInsensitively
Bieżąca wartość nie może zawierać wartości docelowej jako klucza. notContainsKey lub nie containsKey
Bieżąca wartość nie może zawierać wartości docelowej. notContains lub nie zawiera
Bieżąca wartość nie może być równa wartości docelowej. notEquals lub not equals
Bieżąca wartość nie może istnieć. nie istnieje
Bieżąca wartość nie może być w wartości docelowej. notIn lub not in
Bieżąca wartość nie może być podobna do wartości docelowej. notLike lub nie lubię
Bieżąca wartość nie może być uwzględniana wielkości literą zgodną z wartością docelową. notMatch lub nie jest zgodny
Bieżąca wartość nie może być bez uwzględniania wielkości liter zgodnie z wartością docelową. notMatchInsensitively lub not matchInsensitively
Brak powiązanych zasobów jest zgodny ze szczegółami efektu w definicji zasad. Zasób typu zdefiniowanego w then.details.type pliku i powiązany z zasobem zdefiniowanym w części, jeśli część reguły zasad nie istnieje.

Przyczyny zgodności trybu dostawcy zasobów usługi Azure Policy

Poniższa tabela mapuje Microsoft.PolicyInsightskod przyczyny trybu dostawcy zasobów na odpowiednie wyjaśnienie:

Kod przyczyny zgodności Komunikat o błędzie i wyjaśnienie
NonModifiablePolicyAlias NonModifiableAliasConflict: alias "{alias}" nie można modyfikować w żądaniach przy użyciu wersji interfejsu API "{apiVersion}". Ten błąd występuje, gdy żądanie przy użyciu wersji interfejsu API, w której alias nie obsługuje efektu "modyfikuj" lub obsługuje tylko efekt "modyfikuj" z innym typem tokenu.
AppendPoliciesNotApplicable AppendPoliciesUnableToAppend: aliasy: "{ aliases }" nie można modyfikować w żądaniach przy użyciu wersji interfejsu API: "{ apiVersion }". Może się to zdarzyć w żądaniach przy użyciu wersji interfejsu API, dla których aliasy nie obsługują efektu "modyfikuj" lub obsługują efekt "modyfikuj" z innym typem tokenu.
KonfliktyAppendPolicies KonfliktAppendPolicies: Znaleziono sprzeczne przypisania zasad, które modyfikują pole "{notApplicableFields}". Identyfikatory zasad: "{policy}". Skontaktuj się z administratorem subskrypcji, aby zaktualizować przypisania zasad.
AppendPoliciesFieldsExist AppendPoliciesFieldsExistWithDifferentValues: przypisania zasad próbowały dołączyć pola, które już istnieją w żądaniu z różnymi wartościami. Pola: "{existingFields}". Identyfikatory zasad: "{policy}". Skontaktuj się z administratorem subskrypcji, aby zaktualizować zasady.
AppendPoliciesUndefinedFields AppendPoliciesUndefinedFields: Znaleziono definicję zasad odwołującą się do niezdefiniowanej właściwości pola dla wersji interfejsu API "{apiVersion}". Pola: "{nonExistingFields}". Identyfikatory zasad: "{policy}". Skontaktuj się z administratorem subskrypcji, aby zaktualizować zasady.
MissingRegistrationForType MissingRegistrationForResourceType: subskrypcja nie jest zarejestrowana dla typu zasobu "{ResourceType}". Sprawdź, czy typ zasobu istnieje i czy typ zasobu jest zarejestrowany.
AmbiguousPolicyEvaluationPaths Zawartość żądania ma co najmniej jedną niejednoznaczną ścieżkę: "{0}" wymaganą przez zasady: "{1}".
InvalidResourceNameWildcardPosition Nie można ocenić przypisania zasad "{0}" skojarzonego z definicją zasad "{1}". Nazwa zasobu "{2}" w warunku ifNotExists zawiera symbol wieloznaczny "?", w nieprawidłowej pozycji. Symbole wieloznaczne mogą znajdować się tylko na końcu nazwy segmentu (np. TopLevelResourceName/?). Napraw zasady lub usuń przypisanie zasad w celu odblokowania.
TooManyResourceNameSegments Nie można ocenić przypisania zasad "{0}" skojarzonego z definicją zasad "{1}". Nazwa zasobu "{2}" w warunku ifNotExists zawiera zbyt wiele segmentów nazw. Liczba segmentów nazw musi być równa lub mniejsza niż liczba segmentów typów (z wyłączeniem przestrzeni nazw dostawcy zasobów). Napraw definicję zasad lub usuń przypisanie zasad w celu odblokowania.
InvalidPolicyFieldPath Ścieżka pola "{0}" w definicji zasad jest nieprawidłowa. Ścieżki pól nie mogą zawierać pustych segmentów. Mogą zawierać tylko znaki alfanumeryczne z wyjątkiem znaku "." dla segmentów podziału i sekwencji znaków "[*]" w celu uzyskania dostępu do właściwości tablicy.

Przyczyny zgodności trybu dostawcy zasobów usługi AKS

Poniższa tabela mapuje każdą Microsoft.Kubernetes.Dataprzyczynę trybudostawcy zasobów na stan odpowiedzialny szablonu ograniczenia w definicji zasad:

Przyczyna Opis przyczyny szablonu ograniczenia
Ograniczenie/szablonUtwórzFailed Nie można utworzyć zasobu dla definicji zasad z ograniczeniem/szablonem, który nie jest zgodny z istniejącym ograniczeniem/szablonem w klastrze według nazwy metadanych zasobu.
Ograniczenie/TemplateUpdateFailed Nie można zaktualizować ograniczenia/szablonu dla definicji zasad z ograniczeniem/szablonem zgodnym z istniejącą ograniczeniami/szablonem w klastrze według nazwy metadanych zasobu.
Ograniczenie/szablonInstallFailed Kompilacja ograniczenia/szablonu nie powiodła się i nie można jej zainstalować w klastrze dla operacji tworzenia lub aktualizowania.
ConstraintTemplateConflicts Szablon ma konflikt z co najmniej jedną definicją zasad używającą tej samej nazwy szablonu z innym źródłem.
OgraniczenieStatusStale Istnieje stan "Inspekcja", ale usługa Gatekeeper nie przeprowadziła inspekcji w ciągu ostatniej godziny.
ConstraintNotProcessed Nie ma stanu, a program Gatekeeper nie przeprowadził inspekcji w ciągu ostatniej godziny.
InvalidConstraint/Template Zasób został odrzucony z jednego z następujących powodów: nieprawidłowa zawartość rego szablonu ograniczeń, nieprawidłowa zawartość YAML lub niezgodność typów parametrów między szablonem ograniczeń i ograniczeń (podając wartość ciągu, gdy oczekiwano liczby całkowitej).

Uwaga

W przypadku istniejących przypisań zasad i szablonów ograniczeń już w klastrze, jeśli to ograniczenie/szablon zakończy się niepowodzeniem, klaster jest chroniony przez zachowanie istniejącego ograniczenia/szablonu. Klaster zgłasza jako niezgodny, dopóki błąd nie zostanie rozwiązany w przypisaniu zasad lub samonależności dodatku. Aby uzyskać więcej informacji na temat obsługi konfliktów, zobacz Konflikty szablonów ograniczeń.

Szczegóły składnika dla trybów dostawcy zasobów

W przypadku przypisań w trybie dostawcy zasobów wybierz zasób Niezgodny , aby wyświetlić jego rekordy zgodności składników. Karta Zgodność składników zawiera więcej informacji specyficznych dla trybu dostawcy zasobów, takich jak nazwa składnika, identyfikator składnika i typ.

Screenshot of Component Compliance dashboard and compliance details for assignments with a Resource Provider mode.

Szczegóły zgodności konfiguracji gościa

W przypadku definicji zasad w kategorii Konfiguracja gościa może istnieć wiele ustawień ocenianych wewnątrz maszyny wirtualnej i trzeba wyświetlić szczegóły poszczególnych ustawień. Jeśli na przykład przeprowadzasz inspekcję dla listy ustawień zabezpieczeń i tylko jeden z nich ma stan Niezgodne, musisz wiedzieć, które określone ustawienia są niezgodne i dlaczego.

Być może nie masz również dostępu do logowania się bezpośrednio do maszyny wirtualnej, ale musisz zgłosić, dlaczego maszyna wirtualna jest niezgodna.

Azure Portal

Zacznij od wykonania tych samych kroków w sekcji Szczegóły zgodności, aby wyświetlić szczegóły zgodności zasad.

W widoku okienka Szczegóły zgodności wybierz link Ostatnio oceniony zasób.

Screenshot of viewing the auditIfNotExists definition compliance details.

Na stronie Przypisanie gościa są wyświetlane wszystkie dostępne szczegóły zgodności. Każdy wiersz w widoku reprezentuje ocenę, która została wykonana wewnątrz maszyny. W kolumnie Przyczyna jest wyświetlana fraza opisująca, dlaczego przypisanie gościa jest niezgodne. Jeśli na przykład przeprowadzasz inspekcję zasad haseł, w kolumnie Przyczyna będzie wyświetlany tekst zawierający bieżącą wartość dla każdego ustawienia.

Screenshot of the Guest Assignment compliance details.

Wyświetlanie szczegółów przypisania konfiguracji na dużą skalę

Funkcja konfiguracji gościa może być używana poza przypisaniami usługi Azure Policy. Na przykład usługa Azure Automanage tworzy przypisania konfiguracji gościa lub można przypisać konfiguracje podczas wdrażania maszyn.

Aby wyświetlić wszystkie przypisania konfiguracji gościa w dzierżawie, w witrynie Azure Portal otwórz stronę Przypisania gościa . Aby wyświetlić szczegółowe informacje o zgodności, wybierz każde przypisanie przy użyciu linku w kolumnie Nazwa.

Screenshot of the Guest Assignment page.

Historia zmian (wersja zapoznawcza)

W ramach nowej publicznej wersji zapoznawczej historia zmian z ostatnich 14 dni jest dostępna dla wszystkich zasobów platformy Azure, które obsługują usuwanie trybu pełnego. Historia zmian zawiera szczegółowe informacje o tym, kiedy została wykryta zmiana, oraz różnice wizualne dla każdej zmiany. Wykrywanie zmian jest wyzwalane po dodaniu, usunięciu lub zmianie właściwości usługi Azure Resource Manager.

  1. Uruchom usługę Azure Policy w witrynie Azure Portal, wybierając pozycję Wszystkie usługi, a następnie wyszukując i wybierając pozycję Zasady.

  2. Na stronie Przegląd lub Zgodność wybierz zasady w dowolnym stanie zgodności.

  3. Na karcie Zgodność zasobów na stronie Zgodność z zasadami wybierz zasób.

  4. Wybierz kartę Historia zmian (wersja zapoznawcza) na stronie Zgodność zasobów. Zostanie wyświetlona lista wykrytych zmian, jeśli istnieją.

    Screenshot of the Change History tab and detected change times on Resource Compliance page.

  5. Wybierz jedną z wykrytych zmian. Różnica wizualna zasobu jest wyświetlana na stronie Historia zmian.

    Screenshot of the Change History Visual Diff of the before and after state of properties on the Change history page.

    Wizualizacja różnicuje elementy w identyfikowaniu zmian w zasobie. Wykryte zmiany mogą nie być powiązane z bieżącym stanem zgodności zasobu.

Dane historii zmian są udostępniane przez usługę Azure Resource Graph. Aby wykonywać zapytania dotyczące tych informacji poza witryną Azure Portal, zobacz Pobieranie zmian zasobów.

Następne kroki