Устранение неполадок с условиями назначения роли Azure
Общие проблемы
Признак — условие не применяется
Причина 1
Субъекты безопасности имеют одно или несколько назначений ролей в той же или более высокой области.
Решение 1
Убедитесь, что субъекты безопасности не имеют несколько назначений ролей (с условиями или без), которые предоставляют доступ к тому же действию данных, которое приводит к неприменению условий. Сведения о логике вычисления см. в статье Как RBAC Azure определяет право доступа пользователя к ресурсу.
Причина 2
Назначение роли имеет несколько действий, которые предоставляют разрешение, и условие не предназначено для всех действий. Например, можно создать большой двоичный объект, если есть действия с данными /blobs/write
или /blobs/add/action
. Если у назначения ролей есть оба действия с данными и вы нацелены только на одно из них при выполнении условия, назначение ролей предоставит разрешение на создание больших двоичных объектов и обход условия.
Решение 2
Если назначение роли имеет несколько действий, предоставляющих разрешение, убедитесь, что вы нацелены на все соответствующие действия.
Причина 3
При добавлении условия к назначению роли может потребоваться до 5 минут для применения условия. При добавлении условия поставщики ресурсов (например, Microsoft служба хранилища) уведомляются об обновлении. Поставщики ресурсов немедленно обновляют свои локальные кэши, чтобы убедиться в наличии последних назначений ролей. Этот процесс завершается через 1 или 2 минуты, но может занять до 5 минут.
Решение 3
Подождите 5 минут и протестируйте условие еще раз.
Признак — недействительная ошибка при добавлении условия
При попытке добавить назначение ролей с условием возникает ошибка следующего вида:
The given role assignment condition is invalid.
Причина 1
Для conditionVersion
свойства задано значение "1.0".
Решение 1
Задайте conditionVersion
для свойства значение "2.0".
Причина 2
Условие не отформатировано правильно.
Решение 2
Исправьте все ошибки в формате условий или синтаксисе. Кроме того, можно добавить условие с помощью визуального редактора в портале Azure.
Проблемы в визуальном редакторе
Симптом — редактор условий отображается при редактировании условия
Вы создали условие с помощью шаблона, описанного в разделе "Делегирование управления назначением ролей Azure" другим пользователям с условиями. При попытке изменить условие отображается редактор расширенных условий.
Когда вы ранее редактировали условие, вы редактировали его с помощью шаблона условия.
Причина
Условие не соответствует шаблону для шаблона.
Решение 1
Измените условие, чтобы соответствовать одному из следующих шаблонов шаблонов.
Template | Condition |
---|---|
Ограничение ролей | Пример: ограничение ролей |
Ограничение ролей и типов субъектов | Пример. Ограничение ролей и типов субъектов |
Ограничение ролей и субъектов | Пример. Ограничение ролей и определенных групп |
Разрешить все, кроме определенных ролей | Пример. Разрешить большинство ролей, но не разрешать другим пользователям назначать роли |
Решение 2
Удалите условие и повторно создайте его, выполнив действия, описанные в разделе "Делегирование управления назначением ролей Azure" другим пользователям с условиями.
Симптом. Субъект не отображается в источнике атрибутов
При попытке добавить назначение роли с условием субъект не отображается в списке источников атрибутов.
Вместо этого отображается сообщение:
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.
Причина
Вы не соответствуете предварительным требованиям. Чтобы использовать атрибуты субъекта, необходимо иметь следующее:
- Разрешения Microsoft Entra для пользователя, выполнившего вход, для чтения по крайней мере одного набора атрибутов
- Настраиваемые атрибуты безопасности, определенные в идентификаторе Microsoft Entra
Решение
Откройте настраиваемые атрибуты безопасности идентификатора Microsoft Entra ID>.
Если вы видите страницу начала работы , у вас нет разрешений на чтение хотя бы одного набора атрибутов или настраиваемых атрибутов безопасности еще не определено.
Если настраиваемые атрибуты безопасности определены, назначьте одну из следующих ролей в область клиента или наборе атрибутов область. Дополнительные сведения см. в разделе "Управление доступом к пользовательским атрибутам безопасности" в идентификаторе Microsoft Entra.
- Читатель определения атрибутов
- Читатель назначения атрибутов
- Администратор определения атрибутов
- Администратор назначения атрибутов
Внимание
По умолчанию у глобального администратора и других ролей администратора нет разрешений на чтение, определение и назначение настраиваемых атрибутов безопасности.
Если настраиваемые атрибуты безопасности еще не определены, назначьте роль определения атрибутов Администратор istrator в клиенте область и добавьте настраиваемые атрибуты безопасности. Дополнительные сведения см. в разделе "Добавление или отключение настраиваемых атрибутов безопасности" в идентификаторе Microsoft Entra ID.
По завершении вы сможете прочитать по крайней мере один набор атрибутов.
Теперь субъект должен отображаться в списке источников атрибутов при добавлении назначения роли с условием.
Симптом. Субъект не отображается в источнике атрибутов при использовании PIM
При попытке добавить назначение ролей с условием с помощью Microsoft Entra управление привилегированными пользователями (PIM) субъект не отображается в списке источников атрибутов.
Причина
В настоящее время PIM не поддерживает использование основного атрибута в условии назначения ролей.
Сообщения об ошибках в визуальном редакторе
Симптом — условие не распознано
После использования редактора кода переключитесь в визуальный редактор и получите сообщение следующего вида:
The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.
Причина
Были внесены обновления в условие, которое не удалось проанализировать в визуальном редакторе.
Решение
Исправьте все ошибки в формате условий или синтаксисе. Кроме того, можно удалить условие и повторить попытку.
Симптом . Атрибут не применяет ошибку для ранее сохраненного условия
При открытии ранее сохраненного условия в визуальном редакторе вы получите следующее сообщение:
Attribute does not apply for the selected actions. Select a different set of actions.
Причина
В мае 2022 г. действие read a BLOB-объектов было изменено с следующего формата:
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
Чтобы исключить подоперцию, выполните указанные Blob.List
ниже действия.
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
Если вы создали условие с действием чтения большого двоичного объекта до мая 2022 г., в визуальном редакторе может появиться это сообщение об ошибке.
Решение
Откройте область действий "Выбор" и повторно выберите действие "Чтение большого двоичного объекта".
Симптом . Атрибут не применяет ошибку
При выборе одного или нескольких действий в визуальном редакторе с существующим выражением вы получите следующее сообщение и ранее выбранный атрибут удаляется:
Attribute does not apply for the selected actions. Select a different set of actions.
Причина
Ранее выбранный атрибут больше не применяется к выбранным действиям.
Решение 1
В разделе "Добавление действия" выберите действие, которое применяется к выбранному атрибуту. Список действий хранилища, поддерживаемых каждым атрибутом хранилища, см. в разделе "Действия и атрибуты для условий назначения ролей Azure" для условий назначения ролей Azure для очередей Azure Хранилище BLOB-объектов Azure и действий и атрибутов.
Решение 2
В разделе "Выражение сборки" выберите атрибут, который применяется к выбранным в данный момент действиям. Список атрибутов хранилища, поддерживаемых каждым действием хранилища, см. в разделе "Действия и атрибуты для условий назначения ролей Azure" для условий назначения ролей Azure для очередей Azure Хранилище BLOB-объектов Azure и действий и атрибутов.
Симптом . Атрибут не применяется в этом предупреждении контекста
При внесении изменений в редактор кода, а затем переключении в визуальный редактор вы получите следующее сообщение и ранее выбранный атрибут удаляется:
Attribute does not apply in this context. Use a different role assignment scope or remove the expression.
Причина
Указанный атрибут недоступен в текущей область, например в Version ID
учетной записи хранения с включенным иерархическим пространством имен.
Решение
Если вы хотите использовать текущий атрибут, создайте условие назначения ролей в другой область, например группу ресурсов область. Или удалите и повторно создайте выражение с помощью выбранных в данный момент действий.
Симптом . Атрибут не распознается ошибкой
При внесении изменений в редактор кода, а затем переключении в визуальный редактор вы получите следующее сообщение и ранее выбранный атрибут удаляется:
Attribute is not recognized. Select a valid attribute or remove the expression.
Причина
Указанный атрибут не распознается, возможно, из-за опечатки.
Решение
В редакторе кода исправьте опечатку. Или удалите существующее выражение и используйте визуальный редактор для выбора атрибута.
Симптом. Значение атрибута является недопустимой ошибкой
При внесении изменений в редактор кода, а затем переключении в визуальный редактор вы получите следующее сообщение и ранее выбранный атрибут удаляется:
Attribute value is invalid. Select another attribute or value.
Причина
Справа от выражения содержит атрибут или значение, недопустимое.
Решение
Используйте визуальный редактор, чтобы выбрать атрибут или указать значение.
Симптом . Не выбрана ошибка действий
При удалении всех действий в визуальном редакторе вы получите следующее сообщение:
No actions selected. Select one or more actions to edit expressions.
Причина
Существует существующее выражение, но никакие действия не были выбраны в качестве целевого объекта.
Решение
В разделе "Добавление действия" добавьте одно или несколько действий, на которые должно быть нацелено выражение.
Симптом . Нет доступных ошибок
При попытке добавить выражение вы получите следующее сообщение:
No options available
Причина
Вы выбрали для целевых нескольких действий и не существует атрибутов, которые применяются ко всем выбранным в данный момент действиям.
Решение
В разделе "Добавление действия" выберите меньше действий для целевого объекта. Чтобы нацелиться на удаленные действия, добавьте несколько условий.
Симптом — идентификаторы определения ролей не найдены
При попытке добавить выражение вы получите следующее сообщение:
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.
Причина
Один или несколько идентификаторов определений ролей, которые вы пытались добавить для атрибута идентификатора определения роли, не найдены или не имеют правильного формата GUID: 00000000-0000-0000-0000-000000000000
Решение
Используйте редактор условий для выбора роли. Если вы недавно добавили пользовательскую роль, обновите страницу или выйдите и снова войдите.
Симптом — идентификаторы субъектов не найдены
При попытке добавить выражение вы получите следующее сообщение:
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.
Причина
Один или несколько идентификаторов субъектов, которые вы пытались добавить для атрибута идентификатора субъекта, не найдены или не имеют правильного формата GUID: 00000000-0000-0000-0000-000000000000
Решение
Используйте редактор условий для выбора субъекта. Если вы недавно добавили субъект, обновите страницу или выйдите и снова войдите.
Сообщения об ошибках в Azure PowerShell
Симптом. Недопустимый атрибут ресурса
При попытке добавить назначение ролей с условием с помощью Azure PowerShell возникает ошибка следующего вида:
New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.
Причина
Если условие включает знак доллара ($), необходимо префиксить его с помощью обратной символики (').
Решение
Добавьте обратную тикку (') перед каждым знаком доллара. Ниже приводится пример. Дополнительные сведения о правилах для кавычек в PowerShell см. в разделе Сведения о правилах заключения в кавычки.
$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'))"
Признак — ошибка при копировании или вставке условия
Причина
Если вы используете PowerShell и копируете условие из документа, это может включать специальные символы, которые вызывают следующую ошибку. Некоторые редакторы (например, Microsoft Word) добавляют символы элемента управления при форматировании текста, который не отображается.
The given role assignment condition is invalid.
Решение
Если вы скопировали условие из редактора форматированного текста, и вы уверены, что условие правильно, удалите все пробелы и возвращаете, а затем добавьте соответствующие пробелы. Кроме того, используйте обычный текстовый редактор или редактор кода, например Visual Studio Code.
Сообщения об ошибках в Azure CLI
Симптом. Недопустимый атрибут ресурса
При попытке добавить назначение ролей с условием с помощью Azure CLI возникает ошибка следующего вида:
Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.
Причина
Если условие включает знак доллара ($), необходимо префиксить его с обратной косой чертой (\).
Решение
Добавьте обратную косую черту (\) перед каждым знаком доллара. Ниже приводится пример. Дополнительные сведения о правилах для кавычек в Bash см. в разделе Двойные кавычки.
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'))"
Симптом — ошибка нераспознанных аргументов
При попытке добавить назначение ролей с условием с помощью Azure CLI возникает ошибка следующего вида:
az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0
Причина
Скорее всего, вы используете более раннюю версию Azure CLI, которая не поддерживает параметры условия назначения ролей.
Решение
Обновление до последней версии Azure CLI (2.18 или более поздней). Дополнительные сведения см. в статье Установка Azure CLI.
Признак — ошибка при назначении строки условия переменной в Bash
При попытке присвоить строку условия переменной в Bash выводится сообщение bash: !: event not found
.
Причина
В Bash при включенном расширении журнала может появиться сообщение bash: !: event not found
из-за восклицательного знака (!).
Решение
Отключите расширение журнала с помощью команды set +H
. Чтобы повторно включить расширение журнала, используйте set -H
.