Compartilhar via


Solucionar problemas de condições de atribuição de função do Azure

Problemas gerais

Sintoma – a condição não é imposta

Causa 1

As entidades de segurança têm uma ou mais atribuições de função no mesmo escopo ou superior.

Solução 1

Verifique se as entidades de segurança não têm várias atribuições de função (com ou sem condições) que concedem acesso à mesma ação de dados, que resulta na não imposição de condições. Para obter informações sobre a lógica de avaliação, consulte Como o RBAC do Azure determina se um usuário tem acesso a um recurso.

Causa 2

A atribuição de função tem várias ações que concedem uma permissão e sua condição não visa todas as ações. Por exemplo, você pode criar um blob se tiver ações de dados /blobs/write ou /blobs/add/action. Se a atribuição de função tiver as duas ações de dados e você direcionar apenas uma delas em uma condição, a atribuição de função concederá a permissão para criar blobs e ignorar a condição.

Solução 2

Se a atribuição de função tiver várias ações que concedem uma permissão, certifique-se de incluir todas as ações relevantes.

Causa 3

Quando você adiciona uma condição a uma atribuição de função, pode levar até 5 minutos para que a condição seja imposta. Quando você adiciona uma condição, os provedores de recursos (como o Armazenamento da Microsoft) são notificados sobre a atualização. Os provedores de recursos fazem atualizações em seus caches locais imediatamente para garantir que eles tenham as atribuições de função mais recentes. Esse processo é concluído em 1 ou 2 minutos, mas pode levar até 5 minutos.

Solução 3

Aguarde 5 minutos e teste a condição novamente.

Sintoma – a condição não é um erro válido ao adicionar uma condição

Ao tentar adicionar uma atribuição de função com uma condição, você obtém um erro semelhante a:

The given role assignment condition is invalid.

Causa 1

A conditionVersion propriedade é definida como "1.0".

Solução 1

Defina a propriedade conditionVersion como "2.0".

Causa 2

Sua condição não está formatada corretamente.

Solução 2

Corrija qualquer formato de condição ou problemas de sintaxe . Como alternativa, adicione a condição usando o editor visual no portal do Azure.

Problemas no editor visual

Sintoma – O editor de condições aparece ao editar uma condição

Você criou uma condição usando um modelo descrito em Delegar o gerenciamento de atribuição de função do Azure para outras pessoas com condições. Ao tentar editar a condição, você verá o editor de condições avançadas.

Captura de tela do editor de condições que mostra as opções para editar uma condição.

Quando editou a condição anteriormente, você editou usando o modelo de condição.

Captura de tela dos modelos de condição com o modelo de correspondência habilitado.

Causa

A condição não corresponde ao padrão do modelo.

Solução 1

Edite a condição para corresponder a um dos seguintes padrões de modelo.

Modelo Condição
Restringir funções Exemplo: Restringir funções
Restringir funções e tipos principais Exemplo: limitar funções e tipos principais
Restringir funções e princípios Exemplo: restringir funções e grupos específicos
Permitir todas, exceto funções específicas Exemplo: permitir a maioria das funções, mas não permitir que outras pessoas atribuam funções

Solução 2

Exclua a condição e recrie-a usando as etapas em Delegar o gerenciamento de atribuição de funções do Azure para outros com condições.

Sintoma –A entidade de serviço não aparece na origem do atributo

Quando você tenta adicionar uma atribuição de função com uma condição, Principal não aparece na lista de Attribute source.

Captura de tela mostrando Principal na lista de origem do atributo ao adicionar uma condição.

Em vez disso, você verá a mensagem:

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.

Causa

Você não atende aos pré-requisitos. Para usar os atributos de entidade de segurança, é necessário ter o seguinte:

  • Permissões do Microsoft para o usuário conectado ler pelo menos um conjunto de atributos
  • Atributos de segurança personalizados definidos no Microsoft Entra ID

Solução

  1. Abra Microsoft Entra ID>atributos de segurança personalizados.

    Se você vir a página Começar, significa que não tem permissão para ler pelo menos um conjunto de atributos ou que ainda não foram definidos atributos de segurança personalizados.

    Captura de tela que mostra a página Primeiros passos com os atributos de segurança personalizados.

  2. Se os atributos de segurança personalizados tiverem sido definidos, atribua uma das seguintes funções no escopo do locatário ou no escopo do conjunto de atributos. Para saber mais, confira Gerenciar o acesso a atributos de segurança personalizados no Microsoft Entra ID.

    Importante

    Por padrão, o Administrador Global e outras funções de administrador não têm permissão para ler, definir ou designar atributos de segurança personalizados.

  3. Se os atributos de segurança personalizados ainda não tiverem sido definidos, atribua a função Administrador de Definição de Atributo no escopo do locatário e adicione atributos de segurança personalizados. Para obter mais informações, consulte Adicionar ou desativar atributos de segurança personalizados na ID do Microsoft Entra.

    Quando terminar, você deve ser capaz de ler pelo menos um conjunto de atributos.

    Captura de tela que mostra os conjuntos de atributos que o usuário pode ler.

    Principal agora deve aparecer na lista de fontes de atributos quando você adicionar atribuição de função com uma condição.

Sintoma – A entidade de segurança não aparece na origem do atributo ao usar o PIM

Quando você tenta adicionar uma atribuição de função com uma condição usando o Microsoft Entra Privileged Identity Management (PIM), Principal não aparece na lista de origem do atributo.

Captura de tela mostrando Principal na lista de origem do atributo ao adicionar uma condição com o uso do Privileged Identity Management.

Causa

No momento, o PIM não dá suporte ao uso do atributo principal em uma condição de atribuição de função.

Mensagens de erro no editor visual

Sintoma – Condição não reconhecida

Depois de usar o editor de código, você alterna para o editor visual e obtém uma mensagem semelhante à seguinte:

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

Causa

Foram feitas atualizações na condição que o editor visual não é capaz de analisar.

Solução

Corrija qualquer formato de condição ou problemas de sintaxe . Como alternativa, você pode excluir a condição e tentar novamente.

Sintoma – O atributo não aplica o erro para a condição salva anteriormente

Ao abrir uma condição salva anteriormente no editor visual, você receberá a seguinte mensagem:

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

Causa

Em maio de 2022, a ação Ler um blob foi alterada do seguinte formato:

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

Para excluir a Blob.List suboperação:

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

Se você tiver criado uma condição com a ação Ler um blob antes de maio de 2022, poderá ver esta mensagem de erro no editor visual.

Solução

Abra o painel Selecionar uma ação e selecione a ação Ler um blob novamente.

Sintoma – O atributo não aplica o erro

Ao selecionar uma ou mais ações no editor visual com uma expressão existente, você obtém a seguinte mensagem e o atributo selecionado anteriormente é removido:

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

Causa

O atributo selecionado anteriormente não se aplica mais às ações selecionadas no momento.

Solução 1

Na seção Adicionar ação , selecione uma ação que se aplique ao atributo selecionado. Para obter uma lista de ações de armazenamento que cada atributo de armazenamento suporta, consulte Ações e atributos para condições de atribuição de função do Azure para Blobs do Azure e Ações e atributos para condições de atribuição de função do Azure para filas do Azure.

Solução 2

Na seção Compilar expressão , selecione um atributo que se aplica às ações selecionadas no momento. Para obter uma lista de atributos de armazenamento que cada ação de armazenamento suporta, consulte Ações e atributos para condições de atribuição de função do Azure para Armazenamento de Blobs do Azure e Ações e atributos para condições de atribuição de função do Azure para filas do Azure.

Sintoma – o atributo não se aplica neste aviso de contexto

Ao fazer edições no editor de código e alternar para o editor visual, você recebe a seguinte mensagem e o atributo selecionado anteriormente é removido:

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

Causa

O atributo especificado não está disponível no escopo atual, como usar Version ID em uma conta de armazenamento com namespace hierárquico habilitado.

Solução

Se você quiser usar o atributo especificado no momento, crie a condição de atribuição de função em um escopo diferente, como o escopo do grupo de recursos. Ou remova e recrie a expressão usando as ações selecionadas no momento.

Sintoma – O atributo não é um erro reconhecido

Ao fazer edições no editor de código e alternar para o editor visual, você recebe a seguinte mensagem e o atributo selecionado anteriormente é removido:

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

Causa

O atributo especificado não é reconhecido, possivelmente devido a um erro de digitação.

Solução

No editor de código, corrija o erro de digitação. Ou remova a expressão existente e use o editor visual para selecionar um atributo.

Sintoma – O valor do atributo é um erro inválido

Ao fazer edições no editor de código e alternar para o editor visual, você recebe a seguinte mensagem e o atributo selecionado anteriormente é removido:

Attribute value is invalid. Select another attribute or value.

Causa

O lado direito da expressão contém um atributo ou valor que não é válido.

Solução

Use o editor visual para selecionar um atributo ou especificar um valor.

Sintoma – Erro de nenhuma ação selecionada

Ao remover todas as ações no editor visual, você recebe a seguinte mensagem:

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

Causa

Há uma expressão existente, mas nenhuma ação foi selecionada para alvo.

Solução

Na seção Adicionar ação, adicione uma ou mais ações que a expressão deve ter como alvo.

Sintoma – Erro: Nenhuma opção disponível

Ao tentar adicionar uma expressão, você recebe a seguinte mensagem:

No options available

Causa

Você selecionou para direcionar várias ações e não há nenhum atributo que se aplique a todas as ações selecionadas no momento.

Solução

Na seção Adicionar ação , selecione menos ações a serem direcionadas. Para direcionar as ações que você removeu, adicione várias condições.

Sintoma – IDs de definição de função não encontradas

Ao tentar adicionar uma expressão, você recebe a seguinte mensagem:

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.

Causa

Uma ou mais IDs de definição de função que você tentou adicionar para o atributo ID de definição de função não foram encontradas ou não têm o formato GUID correto: 00000000-0000-0000-0000-000000000000.

Solução

Use o editor de condições para selecionar a função. Se você adicionou recentemente a função personalizada, atualize a página ou saia e entre novamente.

Sintoma – IDs da entidade de segurança não encontradas

Ao tentar adicionar uma expressão, você recebe a seguinte mensagem:

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.

Causa

Uma ou mais IDs principais que você tentou adicionar para o atributo ID principal não foram encontradas ou não têm o formato de GUID correto: 00000000-0000-0000-0000-000000000000.

Solução

Use o editor de condições para selecionar a entidade de segurança. Se você adicionou a entidade de segurança recentemente, atualize a página ou saia e conecte-se novamente.

Mensagens de erro no Azure PowerShell

Sintoma – O atributo de recurso não é um erro válido

Ao tentar adicionar uma atribuição de função com uma condição usando o Azure PowerShell, você obtém um erro semelhante a:

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

Causa

Se a condição incluir um cifrão ($), você precisará prefixá-la com um acento grave (`).

Solução

Adicione um acento grave (`) antes de cada cifrão. Um exemplo é mostrado a seguir. Para obter mais informações sobre regras para aspas no PowerShell, consulte Sobre Regras de Aspas.

$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'))"

Sintoma – Erro ao copiar e colar uma condição

Causa

Se você usar o PowerShell e copiar uma condição de um documento, ele poderá incluir caracteres especiais que causam o erro a seguir. Alguns editores (como o Microsoft Word) adicionam caracteres de controle ao formatar texto que não aparece.

The given role assignment condition is invalid.

Solução

Se você copiou uma condição de um editor de rich text e tem certeza de que a condição está correta, exclua todos os espaços e retornos de linha e adicione novamente os espaços relevantes. Como alternativa, use um editor de texto sem formatação ou um editor de código, como o Visual Studio Code.

Mensagens de erro na CLI do Azure

Sintoma – O atributo de recurso não é um erro válido

Ao tentar adicionar uma atribuição de função com uma condição usando a CLI do Azure, você obtém um erro semelhante a:

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

Causa

Se sua condição incluir um sinal de dólar ($), você deverá prefixá-lo com uma barra invertida (\).

Solução

Adicione uma barra invertida (\) antes de cada cifrão. Um exemplo é mostrado a seguir. Para obter mais informações sobre regras para aspas no Bash, consulte Aspas Duplas.

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'))"

Sintoma – Erro de argumentos não reconhecidos

Ao tentar adicionar uma atribuição de função com uma condição usando a CLI do Azure, você obtém um erro semelhante a:

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

Causa

Você provavelmente está usando uma versão anterior da CLI do Azure que não dá suporte a parâmetros de condição de atribuição de função.

Solução

Atualize para a versão mais recente da CLI do Azure (2.18 ou posterior). Para obter mais informações, consulte Instalar a CLI do Azure.

Sintoma – Erro ao atribuir uma cadeia de caracteres de condição a uma variável no Bash

Quando você tenta atribuir uma cadeia de caracteres de condição a uma variável no Bash, você recebe a bash: !: event not found mensagem.

Causa

No Bash, se a expansão do histórico estiver habilitada, você poderá ver a mensagem bash: !: event not found devido ao ponto de exclamação (!).

Solução

Desabilite a expansão do histórico com o comando set +H. Para habilitar novamente a expansão do histórico, use set -H.

Mensagens de erro na API

Sintoma – RESPOSTA HTTP 403 Proibida ao excluir uma atribuição de função

Considere uma entidade de segurança que tenha permissões de autorização para modificar atribuições de função e que as permissões de autorização também incluam uma condição ABAC. Se o usuário tentar excluir uma atribuição de função que já foi excluída ou que não existe, ele receberá a HTTP 403 Forbidden resposta em vez da resposta esperada HTTP 204 No Content.

Causa

Quando uma entidade de segurança tem permissões que incluem uma condição ABAC, o sistema tenta ler o atributo durante a avaliação da condição. Se o atributo não existir, isso poderá resultar em uma resposta inesperada em vez do resultado esperado.

Solução

Ao lidar com respostas para permissões de autorização que também incluem uma condição, você também deve lidar com a 403 Forbidden resposta. A 403 Forbidden resposta pode indicar permissões insuficientes, que a atribuição de função já foi excluída ou que a atribuição de função não existe.

Próximas etapas