Udostępnij za pośrednictwem


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 spowodowała, że wcześniej zgodny zasób stał się niezgodny. 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. Na przykład, jeśli zasób niezgodny jest Microsoft.Compute/virtualMachines, to 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 strony Zgodność z zasadami wybierz i przytrzymaj (lub kliknij prawym przyciskiem myszy) lub wybierz wielokropek zasobu znajdującego się w stanie zgodności, który jest niezgodny. Następnie wybierz Wyświetl szczegóły zgodności.

    Zrzut ekranu przedstawiający link Wyświetl szczegóły zgodności na karcie zgodności zasobów.

  4. W okienku Szczegóły zgodności są wyświetlane informacje z najnowszej oceny zasobu w ramach bieżącego przypisania zasad. W tym przykładzie pole Microsoft.Sql/servers/version okazuje się, że jest 12.0, podczas gdy definicja zasad oczekiwała 14.0. Jeśli zasób jest niezgodny z wielu powodów, każdy z nich jest wyświetlany w tym okienku.

    Zrzut ekranu przedstawiający okienko Szczegóły zgodności i przyczyny niezgodności, że bieżąca wartość to 12, a wartość docelowa to 14.

    W przypadku definicji polityk typu auditIfNotExists lub deployIfNotExists szczegóły obejmują właściwość details.type oraz wszelkie opcjonalne właściwości. 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": {
            ...
          }
        }
      }
    }
    

    Zrzut ekranu przedstawiający okienko Szczegóły zgodności dla elementu ifNotExists, w tym szacowaną liczbę zasobów.

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 Resource Manager i Tryby Resource Provider mają różne przyczyny niezgodności.

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

Poniższa tabela mapuje każdy powód trybu usługi Resource Manager na odpowiedzialny warunek 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 nie zawiera
Bieżąca wartość musi być równa wartości docelowej. equals lub nie nieEquals
Bieżąca wartość musi być mniejsza niż wartość docelowa. mniejsze lub nie większe równe
Bieżąca wartość musi być większa lub równa wartości docelowej. większy lub równy lub nie mniej
Bieżąca wartość musi być większa niż wartość docelowa. większa lub nie mniejsza lub równa
Bieżąca wartość musi być mniejsza lub równa wartości docelowej. mniejsze lub równe lub nie jest większe
Bieżąca wartość musi istnieć. istnieje
Bieżąca wartość musi być w wartości docelowej. in lub nie nieIn
Bieżąca wartość musi być podobna do wartości docelowej. lub nie nie Lubię
Bieżąca wartość musi rozróżniać wielkość liter i zgadzać się z wartością docelową. dopasowanie lub brak_dopasowania
Bieżąca wartość musi być bez uwzględniania wielkości liter zgodnie z wartością docelową. matchInsensitively lub not 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 not zawiera
Bieżąca wartość nie może być równa wartości docelowej. nie równa się lub nie równa się
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ą. niePasuje lub nie pasuje
Bieżąca wartość nie może dopasowywać się bez uwzględniania wielkości liter do wartości docelowej. notMatchInsensitively lub not matchInsensitively
Brak powiązanych zasobów pasujących do szczegółów efektu w definicji zasad. Zasób typu zdefiniowanego w then.details.type i powiązany z zasobem zdefiniowanym w części reguły zasad określonej przez if nie istnieje.

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

Poniższa tabela mapuje każdy kod przyczyny trybu Microsoft.PolicyInsightsdostawcy zasobów na odpowiednie wyjaśnienie:

Kod przyczyny zgodności Komunikat o błędzie i wyjaśnienie
AliasPolitykiNiepodlegającyModyfikacji NonModifiableAliasConflict: alias "{alias}" nie można modyfikować w żądaniach przy użyciu wersji interfejsu API "{apiVersion}". Błąd ten występuje, gdy żądanie wykorzystuje wersję API, w której alias nie obsługuje efektu „modyfikuj” lub obsługuje tylko efekt „modyfikuj” z innym typem tokenu.
DołączNieodpowiednieZasady AppendPoliciesUnableToAppend: Aliasów: "{ 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.
KonfliktującePolitykiDodawania KonfliktAppendPolicies: Znaleziono sprzeczne przypisania zasad, które modyfikują pole "{notApplicableFields}". Identyfikatory zasad: "{policy}". Skontaktuj się z administratorem subskrypcji, aby zaktualizować przypisania zasad.
DodajPolaPolitykIstnieją 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.
DodajZasadyNiezdefiniowanePola 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.
BrakRejestracjiDlaTypu MissingRegistrationForResourceType: subskrypcja nie jest zarejestrowana dla typu zasobu "{ResourceType}". Sprawdź, czy typ zasobu istnieje i czy typ zasobu jest zarejestrowany.
NiejasneŚcieżkiOcenyPolityki Zawartość żądania ma co najmniej jedną niejednoznaczną ścieżkę: "{0}" wymaganą przez zasady: "{1}".
NieprawidłowaPozycjaSymboluZastępczegoWNazwieZasobu Nie można przeanalizować przypisania zasad "{0}" związanego 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 politykę lub usuń przypisanie polityki, aby odblokować.
Zbyt wiele segmentów nazwy zasobu 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 "." do rozdzielania segmentów i sekwencji znaków "[*]" do uzyskania dostępu do właściwości tablicy.

Przyczyny zgodności w trybie dostawcy zasobów AKS

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

Przyczyna Opis przyczyny szablonu ograniczenia
Ograniczenie/SzablonUtworzenieNiepowiodło się Nie udało się utworzyć zasobu dla definicji zasad z ograniczeniami/szablonami, które nie odpowiadają istniejącym ograniczeniom/szablonom w klastrze według nazwy metadanych zasobu.
Ograniczenie/AktualizacjaSzablonuNiepowiodłaSię Nie można zaktualizować ograniczenia/szablonu dla definicji zasad z ograniczeniem/szablonem zgodnym z istniejącymi ograniczeniami/szablonem w klastrze na podstawie nazwy metadanych zasobu.
Ograniczenie/szablonInstalacjaNiepowiodłaSię Kompilacja ograniczenia/szablonu nie powiodła się i nie można go zainstalować w klastrze podczas operacji tworzenia ani aktualizowania.
KonfliktySzablonuRestrykcji Szablon ma konflikt z co najmniej jedną definicją zasad używającą tej samej nazwy szablonu z innym źródłem.
OgraniczenieStatusStale Istnieje stan "Kontrola", ale usługa Gatekeeper nie przeprowadziła kontroli w ostatniej godzinie.
OgraniczenieNiePrzetworzone Nie ma statusu i program Gatekeeper nie przeprowadził audytu w ciągu ostatniej godziny.
NieprawidłoweOgraniczenie/Szablon 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ń a ograniczeniem (podając wartość ciągu, gdy oczekiwano liczby całkowitej).

Uwaga

W przypadku istniejących przypisań zasad i szablonów ograniczeń w klastrze, jeśli dany segment ograniczeń lub szablon nie zadziała poprawnie, klaster jest chroniony przez zachowanie istniejącego segmentu ograniczeń lub szablonu. Klaster jest zgłaszany jako niezgodny, dopóki błąd nie zostanie rozwiązany w przypisaniu polityki lub dodatek sam się nie naprawi. Aby uzyskać więcej informacji na temat obsługi konfliktów, zobacz Konflikty szablonów ograniczeń.

Szczegóły komponentu 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.

Zrzut ekranu pokazujący pulpit nawigacyjny zgodności składników oraz szczegóły zgodności dla przypisań w trybie dostawcy zasobów.

Szczegóły zgodności konfiguracji gościa

W przypadku definicji zasad w kategorii Konfiguracja gościa może być wiele ustawień ocenianych wewnątrz maszyny wirtualnej i należy 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.

Zrzut ekranu przedstawiający szczegóły zgodności definicji auditIfNotExists.

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 wyświetlana jest fraza opisująca, dlaczego przypisanie gościa jest niezgodne z wymogami. 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.

Zrzut ekranu przedstawiający szczegóły zgodności przypisania gościa.

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 dla gości lub można przypisać konfiguracje podczas wdrażania maszyn.

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

Zrzut ekranu strony przypisywania gości.

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 politykę w dowolnym stanie zgodności.

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

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

    Zrzut ekranu przedstawiający kartę Historia zmian oraz wykryte czasy zmian na stronie dotyczącej zgodności zasobów.

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

    Zrzut ekranu przedstawiający różnice wizualne historii zmian stanu właściwości przed i po na stronie Historia zmian.

    Różnice wizualne pomagają w identyfikacji 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 portalem Azure, zobacz Pobieranie zmian zasobów.

Następne kroki