Adicionar ou editar condições de atribuição de função do Azure usando a API REST
Artigo
Uma condição de atribuição de função do Azure é uma verificação adicional que você pode, opcionalmente, adicionar à sua atribuição de função para fornecer um controle de acesso mais refinado. Por exemplo, você pode adicionar uma condição que exija que um objeto tenha uma tag específica para ler o objeto. Este artigo descreve como adicionar, editar, listar ou excluir condições para suas atribuições de função usando a API REST.
Pré-requisitos
Você deve usar as seguintes versões:
2020-03-01-preview ou mais tarde
2020-04-01-preview ou mais tarde, se você quiser utilizar a description propriedade para atribuições de função
2022-04-01 é a primeira versão estável
Para obter mais informações sobre os pré-requisitos para adicionar ou editar condições de atribuição de função, consulte Pré-requisitos de condições.
Adicionar uma condição
Para adicionar uma condição de atribuição de função, use Atribuições de função - Criar API REST. Atribuições de Função - Criar inclui os seguintes parâmetros relacionados às condições.
Parâmetro
Tipo
Descrição
condition
String
Condição sob a qual o usuário pode receber permissão.
conditionVersion
String
Versão da sintaxe da condição. Se condition for especificado sem conditionVersion, a versão será definida como o valor padrão de 2.0.
Use a seguinte solicitação e corpo:
HTTP
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
O exemplo a seguir mostra como atribuir a função Storage Blob Data Reader com uma condição. A condição verifica se o nome do contêiner é igual a 'blobs-example-container'.
HTTP
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
JSON
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container"
}
}
Para editar uma condição de atribuição de função existente, use a mesma Atribuição de Função - Criar API REST usada para adicionar a condição de atribuição de função. A seguir mostra um exemplo de JSON onde condition e description são atualizados. Apenas as conditionpropriedades , conditionVersione e description podem ser editadas. Você deve especificar as outras propriedades para corresponder à atribuição de função existente.
HTTP
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
JSON
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container or blobs-example-container2"
}
}
Para excluir uma condição de atribuição de função, edite a condição de atribuição de função e defina a condição e a versão da condição como uma cadeia de caracteres vazia ou nula.
Utilize construções avançadas no Azure Resource Manager para gerir cenários complexos, como ordens de implementação, implementações condicionais e segredos.
Saiba como adicionar condições de controle de acesso baseado em atributo (ABAC) em atribuições de função do Azure usando modelos do Azure Resource Manager e controle de acesso baseado em função do Azure (Azure RBAC).
Saiba como adicionar, editar, exibir ou excluir condições de controle de acesso baseado em atributo (ABAC) em atribuições de função do Azure usando o portal do Azure e o controle de acesso baseado em função do Azure (Azure RBAC).
Saiba como listar, criar, atualizar ou excluir funções personalizadas do Azure usando a API REST e o controle de acesso baseado em função do Azure (Azure RBAC).
Saiba como conceder acesso aos recursos do Azure para usuários, grupos, entidades de serviço ou identidades gerenciadas usando a API REST e o controle de acesso baseado em função do Azure (Azure RBAC).
Saiba mais sobre as atribuições de função do Azure no controle de acesso baseado em função do Azure (Azure RBAC) para gerenciamento de acesso refinado dos recursos do Azure.
Saiba como adicionar, editar, listar ou excluir condições de controle de acesso baseado em atributo (ABAC) em atribuições de função do Azure usando a CLI do Azure e o controle de acesso baseado em função do Azure (Azure RBAC).