Korygowanie niezgodnych zasobów za pomocą usługi Azure Policy
Zasoby niezgodne z zasadami deployIfNotExists
lub modify
efekty można umieścić w stanie zgodnym za pomocą korygowania. Korygowanie odbywa się za pomocą zadań korygujących, które wdrażają deployIfNotExists
szablon lub modify
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 lub modyfikuje zasób podczas oceniania deployIfNotExists
modify
zasad, robi to przy użyciu tożsamości zarządzanej skojarzonej z przypisaniem zasad. Przypisania zasad używają tożsamości zarządzanych do autoryzacji zasobów platformy Azure. Można użyć tożsamości zarządzanej przypisanej przez system utworzonej przez usługę zasad lub tożsamości przypisanej przez użytkownika. Tożsamość zarządzana musi mieć przypisaną minimalną rolę kontroli dostępu na podstawie ról (RBAC) platformy Azure 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 udziela tożsamości zarządzanej wymienionych ról po rozpoczęciu przypisywania. W przypadku korzystania z zestawu Azure Software Development Kit (SDK) role muszą zostać przyznane ręcznie tożsamości zarządzanej. Lokalizacja tożsamości zarządzanej nie ma wpływu na jej działanie z usługą 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
- Konfigurowanie tożsamości zarządzanej
- Udzielanie uprawnień tożsamości zarządzanej za pomocą zdefiniowanych ról
- Tworzenie zadania korygowania
Konfigurowanie definicji zasad
Zgodnie z wymaganiami wstępnymi definicja zasad musi definiować role, które deployIfNotExists
i modify
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 details
właściwości dodaj roleDefinitionIds
właściwość. 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 deployIfNotExists lub modify.
"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 zajmuje krótkiej roleName
roli. Aby uzyskać identyfikator roli Współautor w danym ś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 roleDefinitionIds
w definicji zasad lub ręcznego przypisywania uprawnień do tożsamości zarządzanej. 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 roleDefinitionIds
zostaną 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 definicji roleDefinitionIds
zasad . Alternatywnie można określić tożsamość zarządzaną przypisaną przez użytkownika, która odbiera to samo przypisanie roli.
Aby ustawić tożsamość zarządzaną przypisaną przez system w portalu:
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.
Określ lokalizację, w której ma znajdować się tożsamość zarządzana.
Nie przypisuj zakresu tożsamości zarządzanej przypisanej przez system, ponieważ zakres jest dziedziczony z zakresu przypisania.
Aby ustawić tożsamość zarządzaną przypisaną przez użytkownika w portalu:
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.
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.
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
deployIfNotExists
lubmodify
znajduje 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:
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.
Wybierz pozycję Przypisania w lewej części strony usługi Azure Policy.
Znajdź przypisanie, które ma tożsamość zarządzaną, i wybierz nazwę.
Znajdź właściwość Identyfikator przypisania na stronie edycji. Identyfikator przypisania wygląda podobnie do następującego przykładu:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/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.Przejdź do zasobu lub kontenera nadrzędnego zasobów (grupy zasobów, subskrypcji, grupy zarządzania), który wymaga ręcznego dodania definicji roli.
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.
Wybierz odpowiednią rolę zgodną z definicją
roleDefinitionIds
zasad. Pozostaw opcję Przypisz dostęp, aby ustawić wartość domyślną "użytkownik, grupa lub aplikacja". 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.
Krok 1. Inicjowanie tworzenia zadania korygowania
Istnieją trzy sposoby tworzenia zadania korygowania za pośrednictwem portalu.
Opcja 1. Tworzenie zadania korygowania na stronie Korygowanie
Wybierz pozycję Korygowanie po lewej stronie usługi Azure Policy.
Wszystkie
deployIfNotExists
przypisania zasad imodify
są wyświetlane na karcie Zasady do korygowania . Wybierz jeden z zasobami, które nie są zgodne, aby otworzyć stronę Nowe zadanie korygowania.Wykonaj kroki, aby określić szczegóły zadania korygowania.
Opcja 2. Tworzenie zadania korygowania na podstawie niezgodnego przypisania zasad
Wybierz pozycję Zgodność po lewej stronie usługi Azure Policy.
Wybierz niezgodne zasady lub przypisanie inicjatywy zawierające
deployIfNotExists
lubmodify
efekty.Wybierz przycisk Utwórz zadanie korygowania w górnej części strony, aby otworzyć stronę Nowe zadanie korygowania.
Wykonaj kroki, aby określić szczegóły zadania korygowania.
Opcja 3. Tworzenie zadania korygowania podczas przypisywania zasad
Jeśli przypisanie zasad lub definicji inicjatywy ma deployIfNotExists
efekt lub modify
, karta Korygowanie kreatora oferuje opcję Utwórz zadanie korygowania, która 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.
W kreatorze przypisania w portalu przejdź do karty Korygowanie . Zaznacz pole wyboru Utwórz zadanie korygowania.
Jeśli zadanie korygowania jest inicjowane z przypisania inicjatywy, wybierz zasady, które mają skorygować z listy rozwijanej.
Skonfiguruj tożsamość zarządzaną i wypełnij pozostałe czynności kreatora. Zadanie korygowania jest tworzone 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.
Jeśli zadanie korygowania jest inicjowane z przypisania inicjatywy, wybierz zasady, które mają skorygować z listy rozwijanej. Jedno
deployIfNotExists
lubmodify
zasady można skorygować za pomocą jednego zadania korygowania w danym momencie.Opcjonalnie zmodyfikuj ustawienia korygowania na stronie. Aby uzyskać informacje na temat kontrolek poszczególnych ustawień, zobacz Struktura zadań korygowania.
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.
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.
Krok 3. Śledzenie postępu zadania korygowania
Przejdź do karty Zadania korygowania na stronie Korygowanie . Wybierz zadanie korygowania, aby wyświetlić szczegóły dotyczące używanego filtrowania, bieżącego stanu i listy skorygowanych zasobów.
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.
Zasoby wdrożone za pomocą zadania korygowania są dodawane do karty Wdrożone zasoby na stronie szczegółów przypisania zasad.
Następne kroki
- Zapoznaj się z przykładami w przykładach usługi Azure Policy.
- Przejrzyj temat Struktura definicji zasad Azure Policy.
- Przejrzyj wyjaśnienie działania zasad.
- Dowiedz się, jak programowo tworzyć zasady.
- Dowiedz się, jak uzyskać dane zgodności.
- Sprawdź, co to jest grupa zarządzania za pomocą funkcji Organizowanie zasobów przy użyciu grup zarządzania platformy Azure.