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.
Podczas poprzedniej edycji warunku edytowano go przy użyciu szablonu warunku.
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.
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
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.
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.
- Czytelnik definicji atrybutów
- Czytelnik przypisań atrybutów
- Administracja istrator definicji atrybutu
- Administracja istrator przypisania atrybutów
Ważne
Domyślnie globalny Administracja istrator i inne role administratora nie mają uprawnień do odczytywania, definiowania ani przypisywania niestandardowych atrybutów zabezpieczeń.
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.
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.
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
.