Udostępnij przez


Rozwiązywanie problemów z warunkami przypisywania ról platformy Azure

Problemy ogólne

Objaw — warunek nie jest wymuszany

Przyczyna 1

Podmioty bezpieczeństwa mają co najmniej jedno przypisanie roli w tym samym lub wyższym zakresie.

Rozwiązanie 1

Upewnij się, że podmioty zabezpieczeń nie mają wielu przypisań ról (z warunkami lub bez ich użycia), które udzielają dostępu do tej samej akcji danych, co prowadzi do braku wymuszania warunków. Aby uzyskać informacje na temat logiki oceny, zobacz Jak kontrola dostępu oparta na rolach platformy Azure określa, czy użytkownik ma dostęp do zasobu.

Przyczyna 2

Przypisanie roli obejmuje wiele działań, które przyznają uprawnienia, a warunek nie dotyczy wszystkich działań. Na przykład, możesz utworzyć obiekt blob, jeśli masz operacje na danych /blobs/write lub /blobs/add/action. Jeśli przypisanie roli ma zarówno akcje dotyczące danych, a Ty określasz tylko jedną z nich w warunku, przypisanie roli przyzna uprawnienie do tworzenia obiektów blob i ominięcia warunku.

Rozwiązanie 2

Jeśli przypisanie roli ma wiele akcji, które przyznają uprawnienie, upewnij się, że wszystkie odpowiednie akcje są uwzględnione.

Przyczyna 3

Dodanie warunku do przypisania roli może skutkować tym, że jego wymuszenie zajmie do 5 minut. Po dodaniu warunku dostawcy zasobów (na przykład Microsoft Storage) są powiadamiani o aktualizacji. Dostawcy zasobów natychmiast aktualizują lokalne pamięci podręczne, aby upewnić się, że mają najnowsze przypisania ról. Ten proces trwa od 1 do 2 minut, ale może potrwać do 5 minut.

Rozwiązanie 3

Poczekaj 5 minut i ponownie przetestuj stan.

Komunikat o błędzie „Warunek nieprawidłowy” podczas dodawania warunku

Podczas próby dodania przypisania roli z warunkiem występuje błąd podobny do następującego:

The given role assignment condition is invalid.

Przyczyna 1

Właściwość conditionVersion jest ustawiona na wartość "1.0".

Rozwiązanie 1

Ustaw conditionVersion właściwość na "2.0".

Przyczyna 2

Warunek nie jest poprawnie sformatowany.

Rozwiązanie 2

Rozwiąż wszelkie problemy z formatem lub składnią warunku . Alternatywnie dodaj warunek przy użyciu edytora wizualizacji w witrynie Azure Portal.

Problemy w edytorze wizualizacji

Objaw — edytor warunków jest wyświetlany podczas edytowania warunku

Stworzyłeś warunek przy użyciu szablonu opisanego w Delegowanie zarządzania przypisaniem ról w Azure innym osobom z uwzględnieniem warunków. Podczas próby edytowania warunku zostanie wyświetlony edytor zaawansowanych warunków.

Zrzut ekranu edytora warunków przedstawiający opcje edytowania warunku.

Podczas poprzedniej edycji warunku edytowano go przy użyciu szablonu warunku.

Zrzut ekranu przedstawiający szablony warunków z włączonym pasującym szablonem.

Przyczyna

Warunek nie jest zgodny ze wzorcem szablonu.

Rozwiązanie 1

Edytuj warunek, aby był zgodny z jednym z następujących wzorców szablonów.

Szablon Warunek
Ograniczanie ról Przykład: role ograniczeń
Ogranicz role i główne typy podmiotów Przykład: ogranicz role i typy podmiotów
Ograniczanie ról i podmiotów Przykład: ograniczenia ról i określonych grup
Zezwalaj na wszystkie z wyjątkiem określonych ról Przykład: Zezwalaj na większość ról, ale nie zezwalaj innym osobom na przypisywanie ról

Rozwiązanie 2

Usuń warunek i utwórz go ponownie, wykonując kroki opisane w temacie Delegowanie zarządzania przypisaniem ról platformy Azure do innych osób z warunkami.

Objaw — podmiot nie pojawia się w źródle atrybutu

Gdy próbujesz dodać przypisanie roli z warunkiem, Principal nie pojawia się na liście źródło atrybutu.

Zrzut ekranu pokazujący Principal na liście źródłowej atrybutów podczas dodawania warunku.

Zamiast tego zostanie wyświetlony komunikat:

To use principal (user) attributes, you must have Microsoft Entra permissions (such as the [Attribute Assignment Administrator](../active-directory/roles/permissions-reference.md#attribute-assignment-administrator) role) and custom security attributes defined in Microsoft Entra ID.

Przyczyna

Nie spełniasz wymagań wstępnych. Aby użyć atrybutów głównych, musisz mieć następujące elementy:

  • Uprawnienia firmy Microsoft Entra dla zalogowanego użytkownika do odczytu co najmniej jednego zestawu atrybutów
  • Niestandardowe atrybuty zabezpieczeń zdefiniowane w identyfikatorze Entra firmy Microsoft

Rozwiązanie

  1. Otwórz pozycję Microsoft Entra ID> entra firmy Microsoft).

    Jeśli zobaczysz stronę Rozpocznij, nie masz uprawnień do odczytu co najmniej jednego zestawu atrybutów lub niestandardowe atrybuty zabezpieczeń nie zostały jeszcze zdefiniowane.

    Zrzut ekranu przedstawiający stronę

  2. Jeśli zdefiniowano niestandardowe atrybuty zabezpieczeń, przypisz jedną z następujących ról w zakresie dzierżawcy lub zestawu atrybutów. Aby uzyskać więcej informacji, zobacz Zarządzanie dostępem do niestandardowych atrybutów zabezpieczeń w identyfikatorze Entra firmy Microsoft.

    Ważne

    Domyślnie administrator globalny i inne role administratora nie mają uprawnień do odczytu, definiowania ani przypisywania niestandardowych atrybutów zabezpieczeń.

  3. Jeśli niestandardowe atrybuty zabezpieczeń nie zostały jeszcze zdefiniowane, przypisz rolę Administrator definicji atrybutów w zakresie dzierżawy i dodaj niestandardowe atrybuty zabezpieczeń. Aby uzyskać więcej informacji, zobacz Dodawanie lub dezaktywowanie niestandardowych atrybutów zabezpieczeń w identyfikatorze Entra firmy Microsoft.

    Po zakończeniu powinno być możliwe odczytanie co najmniej jednego zestawu atrybutów.

    Zrzut ekranu przedstawiający zestawy atrybutów, które użytkownik może odczytać.

    Podmiot powinien teraz pojawić się na liście Źródło atrybutów gdy dodajesz przypisanie roli z warunkiem.

Objaw — główny element nie jest wyświetlany w źródle atrybutu podczas korzystania z usługi PIM

Podczas próby dodania przypisania roli z warunkiem przy użyciu usługi Microsoft Entra Privileged Identity Management (PIM), Principal nie pojawia się na liście Źródło atrybutu.

Zrzut ekranu przedstawiający podmiot na liście źródłowej atrybutów podczas dodawania warunku przy użyciu usługi Privileged Identity Management.

Przyczyna

Usługa PIM obecnie nie obsługuje używania atrybutu principal w warunku przypisania roli.

Komunikaty o błędach w edytorze wizualizacji

Objaw — nie rozpoznano warunku

Po użyciu edytora kodu przejdź do edytora wizualizacji i wyświetlisz komunikat podobny do następującego:

The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.

Przyczyna

Zaktualizowano warunek, którego edytor wizualny nie może przeanalizować.

Rozwiązanie

Rozwiąż wszelkie problemy z formatem lub składnią warunku . Alternatywnie można usunąć warunek i spróbować ponownie.

Objaw — atrybut nie stosuje błędu dla wcześniej zapisanego warunku

Po otwarciu wcześniej zapisanego warunku w edytorze wizualizacji zostanie wyświetlony następujący komunikat:

Attribute does not apply for the selected actions. Select a different set of actions.

Przyczyna

W maju 2022 r. akcja Odczytaj blob została zmieniona z następującego formatu:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})

Aby wykluczyć Blob.List podoperację:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

Jeśli utworzyłeś warunek z akcją Odczytu blobu przed majem 2022 r., możesz zobaczyć ten komunikat o błędzie w edytorze wizualnym.

Rozwiązanie

Otwórz okienko Wybierz akcję i wybierz ponownie akcję Odczytaj obiekt blob .

Objaw — atrybut nie stosuje błędu

Po wybraniu co najmniej jednej akcji w edytorze wizualizacji z istniejącym wyrażeniem zostanie wyświetlony następujący komunikat, a wcześniej wybrany atrybut zostanie usunięty:

Attribute does not apply for the selected actions. Select a different set of actions.

Przyczyna

Poprzednio wybrany atrybut nie ma już zastosowania do aktualnie wybranych akcji.

Rozwiązanie 1

W sekcji Dodawanie akcji wybierz akcję, która ma zastosowanie do wybranego atrybutu. Aby uzyskać listę działań magazynowania obsługiwanych przez każdy atrybut, zobacz Akcje i atrybuty warunków przypisywania ról dla magazynu obiektów BLOB w Azure oraz Akcje i atrybuty warunków przypisywania ról dla kolejek w Azure.

Rozwiązanie 2

W sekcji Buduj wyrażenie wybierz atrybut, który ma zastosowanie do aktualnie wybranych działań. Aby uzyskać listę atrybutów magazynowania obsługiwanych przez każdą akcję magazynowania, zobacz Akcje i atrybuty warunków przypisywania ról dla Azure Blob Storage oraz Akcje i atrybuty warunków przypisywania ról dla kolejek Azure.

Objaw — atrybut nie ma zastosowania w tym ostrzeżeniu kontekstowym

Po wprowadzeniu zmian w edytorze kodu, a następnie przełączeniu do edytora wizualizacji zostanie wyświetlony następujący komunikat, a wcześniej wybrany atrybut zostanie usunięty:

Attribute does not apply in this context. Use a different role assignment scope or remove the expression.

Przyczyna

Określony atrybut nie jest dostępny w bieżącym zakresie, na przykład użycie Version ID na koncie przechowywania z włączoną hierarchiczną nazwą przestrzeni.

Rozwiązanie

Jeśli chcesz użyć aktualnie określonego atrybutu, utwórz warunek przypisania roli w innym zakresie, takim jak zakres grupy zasobów. Możesz też usunąć i ponownie utworzyć wyrażenie przy użyciu aktualnie wybranych akcji.

Objaw — błąd nie rozpoznano atrybutu

Po wprowadzeniu zmian w edytorze kodu, a następnie przełączeniu do edytora wizualizacji zostanie wyświetlony następujący komunikat, a wcześniej wybrany atrybut zostanie usunięty:

Attribute is not recognized. Select a valid attribute or remove the expression.

Przyczyna

Określony atrybut nie jest rozpoznawany, prawdopodobnie z powodu literówki.

Rozwiązanie

W edytorze kodu znajdź i popraw literówkę. Możesz też usunąć istniejące wyrażenie i wybrać atrybut za pomocą edytora wizualizacji.

Objaw — wartość atrybutu jest nieprawidłowa

Po wprowadzeniu zmian w edytorze kodu, a następnie przełączeniu do edytora wizualizacji zostanie wyświetlony następujący komunikat, a wcześniej wybrany atrybut zostanie usunięty:

Attribute value is invalid. Select another attribute or value.

Przyczyna

Prawa strona wyrażenia zawiera atrybut lub wartość, która nie jest prawidłowa.

Rozwiązanie

Użyj edytora wizualizacji, aby wybrać atrybut lub określić wartość.

Problem – błąd: nie wybrano żadnych akcji

Po usunięciu wszystkich akcji w edytorze wizualizacji zostanie wyświetlony następujący komunikat:

No actions selected. Select one or more actions to edit expressions.

Przyczyna

Istnieje wyrażenie, ale nie wybrano żadnych akcji jako celu.

Rozwiązanie

W sekcji Dodawanie akcji dodaj co najmniej jedną akcję, dla której ma być przeznaczone wyrażenie.

Objaw — brak dostępnych opcji błędu

Podczas próby dodania wyrażenia zostanie wyświetlony następujący komunikat:

No options available

Przyczyna

Wybrano opcję kierowania wielu akcji i nie ma żadnych atrybutów, które mają zastosowanie do wszystkich aktualnie wybranych akcji.

Rozwiązanie

W sekcji Dodawanie akcji wybierz mniej akcji do wykonania. Aby celować w akcje, które usunąłeś, dodaj wiele warunków.

Objaw — nie znaleziono identyfikatorów definicji roli

Podczas próby dodania wyrażenia zostanie wyświetlony następujący komunikat:

Cannot find built-in or custom role definitions with IDs: <role IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Przyczyna

Co najmniej jeden identyfikator definicji roli, który próbowano dodać dla atrybutu Identyfikator definicji roli , nie został znaleziony lub nie ma poprawnego formatu identyfikatora GUID: 00000000-0000-0000-0000-000000000000.

Rozwiązanie

Użyj edytora warunków, aby wybrać rolę. Jeśli niedawno dodałeś rolę niestandardową, odśwież stronę lub wyloguj się, a następnie zaloguj ponownie.

Problem — nie znaleziono identyfikatorów głównych

Podczas próby dodania wyrażenia zostanie wyświetlony następujący komunikat:

Cannot find users, groups, or service principals in Azure Active Directory with principal IDs: <principal IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Przyczyna

Nie odnaleziono co najmniej jednego identyfikatora podmiotu zabezpieczeń, który próbowano dodać dla atrybutu Identyfikator podmiotu zabezpieczeń lub nie ma poprawnego formatu GUID: 00000000-0000-0000-0000-000000000000.

Rozwiązanie

Użyj edytora warunków, aby wybrać główny element. Jeśli niedawno dodano główny podmiot, odśwież stronę lub wyloguj się i zaloguj się ponownie.

Komunikaty o błędach w programie Azure PowerShell

Objaw — atrybut zasobu nie jest prawidłowym błędem

Podczas próby dodania przypisania roli z warunkiem przy użyciu programu Azure PowerShell występuje błąd podobny do następującego:

New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Przyczyna

Jeśli warunek zawiera znak dolara ($), musisz go poprzedzić znakiem odwrotnego cudzysłowu (`).

Rozwiązanie

Dodaj backtick (`) przed każdym znakiem dolara. Poniżej przedstawiono przykład. Aby uzyskać więcej informacji na temat reguł cudzysłowu w programie PowerShell, zobacz About quoting Rules (Informacje o regułach cytowania).

$condition = "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<`$key_case_sensitive`$>] StringEquals 'Cascade'))"

Objaw — błąd podczas kopiowania i wklejania warunku

Przyczyna

Jeśli używasz programu PowerShell i skopiujesz warunek z dokumentu, może on zawierać znaki specjalne, które powodują następujący błąd. Niektóre edytory (takie jak Microsoft Word) dodają znaki sterujące podczas formatowania tekstu, który nie jest wyświetlany.

The given role assignment condition is invalid.

Rozwiązanie

Jeśli skopiowałeś warunek z edytora tekstu sformatowanego i jesteś pewien, że warunek jest poprawny, usuń wszystkie spacje i przejścia do nowej linii, a następnie dodaj ponownie odpowiednie spacje. Alternatywnie użyj edytora zwykłego tekstu lub edytora kodu, takiego jak Visual Studio Code.

Komunikaty o błędach w interfejsie wiersza polecenia platformy Azure

Objaw — atrybut zasobu nie jest prawidłowym błędem

Podczas próby dodania przypisania roli z warunkiem przy użyciu interfejsu wiersza polecenia platformy Azure występuje błąd podobny do następującego:

Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Przyczyna

Jeśli warunek zawiera znak dolara ($), musisz poprzedzić go ukośnikiem odwrotnym (\).

Rozwiązanie

Dodaj ukośnik odwrotny (\) przed każdym znakiem dolara. Poniżej przedstawiono przykład. Aby uzyskać więcej informacji na temat zasad użycia cudzysłowów w powłoce Bash, zobacz Podwójne cudzysłowy.

condition="((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<\$key_case_sensitive\$>] StringEquals 'Cascade'))"

Objaw — nierozpoznany błąd argumentów

Podczas próby dodania przypisania roli z warunkiem przy użyciu interfejsu wiersza polecenia platformy Azure występuje błąd podobny do następującego:

az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0

Przyczyna

Prawdopodobnie używasz starszej wersji interfejsu wiersza polecenia platformy Azure, która nie obsługuje parametrów warunku przypisania roli.

Rozwiązanie

Przeprowadź aktualizację do najnowszej wersji interfejsu wiersza polecenia platformy Azure (2.18 lub nowszej). Aby uzyskać więcej informacji, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Objaw — błąd przy przypisywaniu ciągu warunku do zmiennej w powłoce Bash

Podczas próby przypisania ciągu warunku do zmiennej w Bashu, pojawi się komunikat bash: !: event not found.

Przyczyna

W powłoce Bash, jeśli funkcja rozszerzania historii jest włączona, możesz zobaczyć komunikat bash: !: event not found z powodu wykrzyknika (!).

Rozwiązanie

Wyłącz rozszerzenie historii za pomocą polecenia set +H. Aby ponownie włączyć rozszerzenie historii, użyj polecenia set -H.

Komunikaty o błędach w interfejsie API

Objaw — odpowiedź HTTP 403 Zabronione podczas usuwania przypisania roli

Rozważ podmiot, który ma uprawnienia do modyfikowania przypisań ról, a uprawnienia te obejmują również warunek ABAC. Jeśli podmiot zabezpieczeń próbuje usunąć przypisanie roli, które zostało już usunięte lub nie istnieje, otrzymuje odpowiedź HTTP 403 Forbidden zamiast oczekiwanej odpowiedzi HTTP 204 No Content.

Przyczyna

Jeśli główna jednostka ma uprawnienia, włączające warunek ABAC, ten system próbuje odczytać atrybut podczas sprawdzania warunku. Jeśli atrybut nie istnieje, może to spowodować nieoczekiwaną odpowiedź zamiast oczekiwanego wyniku.

Rozwiązanie

W przypadku obsługi odpowiedzi na uprawnienia autoryzacji, które również zawierają warunek, należy również obsłużyć odpowiedź 403 Forbidden. Odpowiedź 403 Forbidden może potencjalnie wskazywać na niewystarczające uprawnienia, że przypisanie roli zostało już usunięte lub że przypisanie roli nie istnieje.

Dalsze kroki