Udostępnij za pośrednictwem


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

Problemy ogólne

Objaw — warunek nie jest wymuszany

Przyczyna 1

Podmioty zabezpieczeń 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 ma wiele akcji, które przyznają uprawnienie, a warunek nie jest przeznaczony dla wszystkich akcji. Możesz na przykład utworzyć obiekt blob, jeśli masz /blobs/write akcje danych lub /blobs/add/action . Jeśli przypisanie roli ma zarówno akcje danych, jak i dotyczy tylko jednego z nich w warunku, przypisanie roli przyzna uprawnienie do tworzenia obiektów blob i pomijania warunku.

Rozwiązanie 2

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

Przyczyna 3

Dodanie warunku do przypisania roli może potrwać do 5 minut, aby warunek został wymuszony. 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 warunek.

Objaw — warunek nie jest prawidłowym błędem 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ść jest ustawiona conditionVersion 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

Warunek został utworzony przy użyciu szablonu opisanego w temacie Delegowanie zarządzania przypisaniem ról platformy Azure do innych osób z warunkami. 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.

Template Stan
Role ograniczeń Przykład: role ograniczeń
Role ograniczeń i typy podmiotów zabezpieczeń Przykład: ograniczenia ról i typów podmiotów zabezpieczeń
Role ograniczeń i podmioty zabezpieczeń 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 zabezpieczeń nie jest wyświetlany w źródle atrybutu

Podczas próby dodania przypisania roli z warunkiem podmiot zabezpieczeń nie jest wyświetlany na liście Źródło atrybutu.

Zrzut ekranu przedstawiający listę źródłową jednostki na liście 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 Custom security attributes (Niestandardowe atrybuty zabezpieczeń identyfikatora entra>firmy Microsoft).

    Jeśli zostanie wyświetlona strona Wprowadzenie , nie masz uprawnień do odczytu co najmniej jednego zestawu atrybutów ani niestandardowych atrybutów zabezpieczeń nie zostały jeszcze zdefiniowane.

    Zrzut ekranu przedstawiający stronę Wprowadzenie do atrybutów zabezpieczeń niestandardowych.

  2. Jeśli zdefiniowano niestandardowe atrybuty zabezpieczeń, przypisz jedną z następujących ról w zakresie dzierżawy lub zakresie 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 globalny Administracja istrator i inne role administratora nie mają uprawnień do odczytywania, definiowania ani przypisywania niestandardowych atrybutów zabezpieczeń.

  3. Jeśli niestandardowe atrybuty zabezpieczeń nie zostały jeszcze zdefiniowane, przypisz rolę Definicja atrybutu Administracja istrator 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 atrybut ustawiający, które użytkownik może odczytać.

    Podmiot zabezpieczeń powinien teraz pojawić się na liście Źródło atrybutów podczas dodawania przypisania roli z warunkiem.

Objaw — jednostka nie jest wyświetlana 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) podmiot zabezpieczeń nie jest wyświetlany na liście Źródło atrybutu.

Zrzut ekranu przedstawiający listę źródłową jednostki na liście 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

Aktualizacje zostały wykonane pod warunkiem, że edytor wizualizacji 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 obiekt 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 warunek został utworzony z akcją Odczyt obiektu blob przed majem 2022 r., ten komunikat o błędzie może zostać wyświetlony w edytorze wizualizacji.

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ę akcji magazynu, które obsługuje każdy atrybut magazynu, zobacz Akcje i atrybuty warunków przypisywania ról platformy Azure dla usługi Azure Blob Storage i Akcje oraz atrybuty warunków przypisywania ról platformy Azure dla kolejek platformy Azure.

Rozwiązanie 2

W sekcji Wyrażenie kompilacji wybierz atrybut, który ma zastosowanie do aktualnie wybranych akcji. Aby uzyskać listę atrybutów magazynu, które obsługuje każda akcja magazynu, zobacz Akcje i atrybuty warunków przypisywania ról platformy Azure dla usługi Azure Blob Storage i Akcje oraz atrybuty warunków przypisywania ról platformy Azure dla kolejek platformy 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, takim jak użycie Version ID na koncie magazynu z włączoną hierarchiczną przestrzenią nazw.

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

Objaw — brak wybranych akcji — błąd

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

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 celu. Aby kierować do usuniętych akcji, 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 dodano rolę niestandardową, odśwież stronę lub wyloguj się i zaloguj się ponownie.

Objaw — 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óre próbowano dodać dla atrybutu Identyfikator podmiotu zabezpieczeń lub nie ma poprawnego formatu identyfikatora GUID: 00000000-0000-0000-0000-000000000000.

Rozwiązanie

Użyj edytora warunków, aby wybrać podmiot zabezpieczeń. Jeśli niedawno dodano podmiot zabezpieczeń, 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ć backtick (').

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 skopiowano warunek z edytora tekstu sformatowanego i masz pewność, że warunek jest poprawny, usuń wszystkie spacje i zwraca, a następnie dodaj 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 reguł 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 podczas przypisywania ciągu warunku do zmiennej w powłoce Bash

Podczas próby przypisania ciągu warunku do zmiennej w powłoce bash: !: event not found Bash zostanie wyświetlony komunikat.

Przyczyna

W powłoce Bash, jeśli rozszerzenie historii jest włączone, może zostać wyświetlony 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.

Następne kroki