Udostępnij za pośrednictwem


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

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 roleDefinitionIdszasad . Alternatywnie można określić tożsamość zarządzaną przypisaną przez użytkownika, która odbiera to samo przypisanie roli.

Zrzut ekranu przedstawiający przypisanie zasad tworzące tożsamość zarządzaną przypisaną przez system w regionie Wschodnie stany USA z uprawnieniami współautora usługi Log Analytics.

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 jest dziedziczony 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 deployIfNotExists lub modify 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:

  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 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.

  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 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.

Zrzut ekranu przedstawiający wyszukiwanie zasad we wszystkich usługach.

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.

    Zrzut ekranu przedstawiający węzeł Korygowanie na stronie Zasady.

  2. Wszystkie deployIfNotExists przypisania zasad i modify są wyświetlane na karcie Zasady do korygowania . Wybierz jeden z zasobami, które nie są zgodne, aby otworzyć stronę Nowe zadanie korygowania.

  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 deployIfNotExists lub modify 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 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.

  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 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.

  1. Jeśli zadanie korygowania jest inicjowane z przypisania inicjatywy, wybierz zasady, które mają skorygować z listy rozwijanej. Jedno deployIfNotExists lub modify zasady 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.

    Zrzut ekranu przedstawiający węzeł Korygowanie i siatkę zasobów w celu skorygowania.

  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.

    Zrzut ekranu przedstawiający kartę Zadania korygowania i postęp istniejących zadań korygowania.

Krok 3. Śledzenie postępu zadania korygowania

  1. 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.

  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.

    Zrzut ekranu przedstawiający menu kontekstowe zasobu na karcie Korygowanie zadania.

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

Następne kroki