Korygowanie niezgodnych zasobów za pomocą usługi Azure Policy

Zasoby niezgodne z zasadami z funkcją deployIfNotExists lub efekty modyfikacji można umieścić w stanie zgodnym za pomocą korygowania. Korygowanie odbywa się za pomocą zadań korygujących, które wdrażają szablon deployIfNotExists lub modyfikują operacje przypisanych zasad w istniejących zasobach i subskrypcjach, niezależnie od tego, czy przypisanie znajduje się w grupie zarządzania, subskrypcji, grupie zasobów, czy pojedynczym zasobie. W tym artykule przedstawiono kroki niezbędne do zrozumienia i wykonania korygowania za pomocą usługi Azure Policy.

Jak działa kontrola dostępu korygowania

Gdy usługa Azure Policy uruchamia wdrożenie szablonu podczas oceniania zasad deployIfNotExists lub modyfikuje zasób podczas oceniania zasad modyfikacji , robi to przy użyciu tożsamości zarządzanej skojarzonej z przypisaniem zasad. Przypisania zasad używają tożsamości zarządzanych na potrzeby autoryzacji zasobów platformy Azure. Możesz użyć przypisanej przez system tożsamości zarządzanej utworzonej przez usługę zasad lub tożsamości przypisanej przez użytkownika dostarczonej przez użytkownika. Tożsamość zarządzana musi mieć przypisaną minimalną rolę kontroli dostępu na podstawie ról (RBAC) wymaganą do skorygowania zasobów. Jeśli tożsamość zarządzana nie ma ról, podczas przypisywania zasad lub inicjatywy w portalu jest wyświetlany błąd. W przypadku korzystania z portalu usługa Azure Policy automatycznie przypisuje tożsamości zarządzanej wskazane role po rozpoczęciu przypisywania. W przypadku korzystania z zestawu Azure Software Development Kit (SDK) role muszą zostać przypisane tożsamości zarządzanej ręcznie. Lokalizacja tożsamości zarządzanej nie ma wpływu na jej operację w usłudze Azure Policy.

Uwaga

Zmiana definicji zasad nie powoduje automatycznej aktualizacji przypisania ani skojarzonej tożsamości zarządzanej.

Zabezpieczenia korygowania można skonfigurować za pomocą następujących kroków:

Konfigurowanie definicji zasad

Zgodnie z wymaganiami wstępnymi definicja zasad musi definiować role, które wdrażają klasyIfNotExists i modyfikować , muszą pomyślnie wdrożyć zawartość dołączonego szablonu. Dla wbudowanej definicji zasad nie jest wymagana żadna akcja, ponieważ te role są wstępnie wypełniane. W przypadku definicji zasad niestandardowych w obszarze właściwości details dodaj właściwość roleDefinitionIds . Ta właściwość jest tablicą ciągów pasujących do ról w danym środowisku. Aby zapoznać się z pełnym przykładem, zobacz przykład deployIfNotExists lub przykłady modyfikacji.

"details": {
    ...
    "roleDefinitionIds": [
        "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
        "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
    ]
}

Właściwość roleDefinitionIds używa pełnego identyfikatora zasobu i nie bierze krótkiej roli roleName . Aby uzyskać identyfikator roli "Współautor" w środowisku, użyj następującego kodu interfejsu wiersza polecenia platformy Azure:

az role definition list --name "Contributor"

Ważne

Uprawnienia powinny być ograniczone do najmniejszego możliwego zestawu podczas definiowania identyfikatorów roleDefinitionId w definicji zasad lub przypisywania uprawnień do tożsamości zarządzanej ręcznie. Aby uzyskać więcej najlepszych rozwiązań, zobacz Zalecenia dotyczące najlepszych rozwiązań dotyczących tożsamości zarządzanej.

Konfigurowanie tożsamości zarządzanej

Każde przypisanie usługi Azure Policy może być skojarzone tylko z jedną tożsamością zarządzaną. Tożsamość zarządzana może mieć jednak przypisane wiele ról. Konfiguracja odbywa się w dwóch krokach: najpierw utwórz tożsamość zarządzaną przypisaną przez system lub przypisaną przez użytkownika, a następnie przyznaj jej niezbędne role.

Uwaga

Podczas tworzenia tożsamości zarządzanej za pośrednictwem portalu role zostaną automatycznie przyznane tożsamości zarządzanej. Jeśli identyfikatory roleDefinitionId są później edytowane w definicji zasad, nowe uprawnienia muszą zostać przyznane ręcznie, nawet w portalu.

Tworzenie tożsamości zarządzanej

Podczas tworzenia przypisania przy użyciu portalu usługa Azure Policy może wygenerować tożsamość zarządzaną przypisaną przez system i przyznać jej role zdefiniowane w rolach definicji zasadDefinitionIds. Alternatywnie można określić tożsamość zarządzaną przypisaną przez użytkownika, która odbiera to samo przypisanie roli.

Screenshot of a policy assignment creating a system-assigned managed identity in East US with Log Analytics Contributor permissions.

Aby ustawić tożsamość zarządzaną przypisaną przez system w portalu:

  1. Na karcie Korygowanie widoku tworzenia/edytowania przypisania w obszarze Typy tożsamości zarządzanej upewnij się, że wybrano tożsamość zarządzaną przypisaną przez system.

  2. Określ lokalizację, w której ma znajdować się tożsamość zarządzana.

  3. Nie przypisuj zakresu tożsamości zarządzanej przypisanej przez system, ponieważ zakres zostanie odziedziczony z zakresu przypisania.

Aby ustawić tożsamość zarządzaną przypisaną przez użytkownika w portalu:

  1. Na karcie Korygowanie widoku tworzenia/edytowania przypisania w obszarze Typy tożsamości zarządzanej upewnij się, że wybrano opcję Tożsamość zarządzana przypisana przez użytkownika.

  2. Określ zakres, w którym jest hostowana tożsamość zarządzana. Zakres tożsamości zarządzanej nie musi być zgodny z zakresem przypisania, ale musi znajdować się w tej samej dzierżawie.

  3. W obszarze Istniejące tożsamości przypisane przez użytkownika wybierz tożsamość zarządzaną.

Udzielanie uprawnień tożsamości zarządzanej za pomocą zdefiniowanych ról

Ważne

Jeśli tożsamość zarządzana nie ma uprawnień wymaganych do wykonania wymaganego zadania korygowania, zostanie ona udzielona automatycznie tylko za pośrednictwem portalu. Ten krok można pominąć w przypadku tworzenia tożsamości zarządzanej za pośrednictwem portalu.

W przypadku wszystkich innych metod tożsamość zarządzana przypisania musi zostać ręcznie udzielona przez dodanie ról lub w przeciwnym razie wdrożenie korygowania zakończy się niepowodzeniem.

Przykładowe scenariusze wymagające uprawnień ręcznych:

  • Jeśli przypisanie jest tworzone za pomocą zestawu Sdk (Software Development Kit) platformy Azure
  • Jeśli zasób zmodyfikowany przez element deployIfNotExists lub modyfikuje się poza zakresem przypisania zasad
  • Jeśli szablon uzyskuje dostęp do właściwości zasobów poza zakresem przypisania zasad

Istnieją dwa sposoby udzielania tożsamości zarządzanej przypisania zdefiniowanych ról przy użyciu portalu: przy użyciu kontroli dostępu (IAM) lub edytowania zasad lub przypisania inicjatywy i wybrania pozycji Zapisz.

Aby dodać rolę do tożsamości zarządzanej przypisania, 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. Wybierz pozycję Przypisania w lewej części strony usługi Azure Policy.

  3. Znajdź przypisanie, które ma tożsamość zarządzaną, i wybierz nazwę.

  4. Znajdź właściwość Identyfikator przypisania na stronie edycji. Identyfikator przypisania będzie podobny do następującego:

    /subscriptions/{subscriptionId}/resourceGroups/PolicyTarget/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5
    

    Nazwa tożsamości zarządzanej to ostatnia część identyfikatora zasobu przypisania, która znajduje się 2802056bfc094dfb95d4d7a5 w tym przykładzie. Skopiuj tę część identyfikatora zasobu przypisania.

  5. Przejdź do zasobu lub kontenera nadrzędnego zasobów (grupy zasobów, subskrypcji, grupy zarządzania), który wymaga ręcznego dodania definicji roli.

  6. Wybierz link Kontrola dostępu (IAM) na stronie zasobów, a następnie wybierz pozycję + Dodaj przypisanie roli w górnej części strony kontroli dostępu.

  7. Wybierz odpowiednią rolę zgodną z roląDefinitionId z definicji zasad. Pozostaw opcję Przypisz dostęp, aby ustawić wartość domyślną "użytkownik, grupa lub aplikacja usługi Azure AD". W polu Wybierz wklej lub wpisz część identyfikatora zasobu przypisania znajdującego się wcześniej. Po zakończeniu wyszukiwania wybierz obiekt o tej samej nazwie, aby wybrać identyfikator, a następnie wybierz pozycję Zapisz.

Tworzenie zadania korygowania

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.

Screenshot of searching for Policy in All Services.

Krok 1. Inicjowanie tworzenia zadania korygowania

Istnieją trzy sposoby tworzenia zadania korygowania za pośrednictwem portalu.

Opcja 1. Tworzenie zadania korygowania na stronie Korygowanie

  1. Wybierz pozycję Korygowanie po lewej stronie usługi Azure Policy.

    Screenshot of the Remediation node on the Policy page.

  2. Wszystkie wdrożeniaIfNotExists i modyfikowanie przypisań zasad są wyświetlane na karcie Zasady w celu skorygowania . Wybierz jeden z zasobami, które nie są zgodne, aby otworzyć stronę Zadania korygowania Nowy.

  3. Wykonaj kroki, aby określić szczegóły zadania korygowania.

Opcja 2. Tworzenie zadania korygowania na podstawie niezgodnego przypisania zasad

  1. Wybierz pozycję Zgodność po lewej stronie usługi Azure Policy.

  2. Wybierz niezgodne zasady lub przypisanie inicjatywy zawierające element deployIfNotExists lub modyfikuj efekty.

  3. Wybierz przycisk Utwórz zadanie korygowania w górnej części strony, aby otworzyć stronę Nowe zadanie korygowania.

  4. Wykonaj kroki, aby określić szczegóły zadania korygowania.

Opcja 3. Tworzenie zadania korygowania podczas przypisywania zasad

Jeśli definicja zasad lub inicjatywy do przypisania ma efekt deployIfNotExists lub Modify, karta Korygowanie kreatora oferuje opcję Utwórz zadanie korygowania, które tworzy zadanie korygowania w tym samym czasie co przypisanie zasad.

Uwaga

Jest to najbardziej usprawnione podejście do tworzenia zadania korygowania i jest obsługiwane w przypadku zasad przypisanych do subskrypcji. W przypadku zasad przypisanych do grupy zarządzania należy utworzyć zadania korygowania przy użyciu opcji 1 lub opcji 2 po przeprowadzeniu oceny określono zgodność zasobów.

  1. W kreatorze przypisania w portalu przejdź do karty Korygowanie . Zaznacz pole wyboru Utwórz zadanie korygowania.

  2. Jeśli zadanie korygowania jest inicjowane z przypisania inicjatywy, wybierz zasady, które mają skorygować z listy rozwijanej.

  3. Skonfiguruj tożsamość zarządzaną i wypełnij pozostałe czynności kreatora. Zadanie korygowania zostanie utworzone podczas tworzenia przypisania.

Krok 2. Określanie szczegółów zadania korygowania

Ten krok ma zastosowanie tylko w przypadku użycia opcji 1 lub opcji 2 do zainicjowania tworzenia zadania korygowania.

  1. Jeśli zadanie korygowania jest inicjowane z przypisania inicjatywy, wybierz zasady, które mają skorygować z listy rozwijanej. Jedno wdrożenieIfNotExists lub modyfikowanie zasad można skorygować za pomocą jednego zadania korygowania w danym momencie.

  2. Opcjonalnie zmodyfikuj ustawienia korygowania na stronie. Aby uzyskać informacje na temat kontrolek poszczególnych ustawień, zobacz Struktura zadań korygowania.

  3. Na tej samej stronie przefiltruj zasoby, aby skorygować za pomocą wielokropka zakresów , aby wybrać zasoby podrzędne, z których są przypisywane zasady (w tym do poszczególnych obiektów zasobów). Ponadto użyj listy rozwijanej Lokalizacje , aby dokładniej filtrować zasoby.

    Screenshot of the Remediate node and the grid of resources to remediate.

  4. Rozpocznij zadanie korygowania po przefiltrowaniu zasobów, wybierając pozycję Koryguj. Strona zgodności zasad zostanie otwarta na karcie Zadania korygowania, aby wyświetlić stan postępu zadań. Wdrożenia utworzone przez zadanie korygowania zaczynają się od razu.

    Screenshot of the Remediation tasks tab and progress of existing remediation tasks.

Krok 3. Śledzenie postępu zadania korygowania

  1. Przejdź do karty Zadania korygowania na stronie Korygowanie . Kliknij zadanie korygowania, aby wyświetlić szczegóły dotyczące używanego filtrowania, bieżącego stanu i listy skorygowanych zasobów.

  2. Na stronie Szczegóły zadania korygowania kliknij prawym przyciskiem myszy zasób, aby wyświetlić wdrożenie zadania korygowania lub zasób. Na końcu wiersza wybierz pozycję Powiązane zdarzenia , aby wyświetlić szczegóły, takie jak komunikat o błędzie.

    Screenshot of the context menu for a resource on the Remediate task tab.

Zasoby wdrożone za pomocą zadania korygowania są dodawane do karty Wdrożone zasoby na stronie szczegółów przypisania zasad.

Następne kroki