Esse artigo lista exemplos de como delegar a gestão de atribuições de funções do Azure a outros utilizadores com condições.
Pré-requisitos
Para obter informações sobre os pré-requisitos para adicionar ou editar condições de atribuição de função, confira Pré-requisitos das condições.
Exemplo: restringir funções
Esta condição permite que um delegado adicione ou remova apenas atribuições de função para as funções Colaborador de Backup ou Leitor de Backup.
Você deve adicionar essa condição a quaisquer atribuições de função para o delegado que incluam as ações a seguir.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e um modelo de condição.
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e o editor de condições.
Para direcionar as ações de adição e remoção de atribuição de função, observe que você deve adicionar duas condições. Você deve adicionar duas condições porque a origem do atributo é diferente para cada ação. Se você tentar direcionar ambas as ações na mesma condição, não será possível adicionar uma expressão. Para obter mais informações, veja Sintoma - Erro sem opções disponíveis.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
)
)
Veja como adicionar essa condição usando o Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Exemplo: restringir funções e tipos principais
Esta condição permite que um delegado adicione ou remova apenas atribuições de função para as funções Colaborador de Backup ou Leitor de Backup. Além disso, o delegado só pode atribuir essas funções a entidades do tipo usuário ou grupo.
Você deve adicionar essa condição a quaisquer atribuições de função para o delegado que incluam as ações a seguir.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e um modelo de condição.
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e o editor de condições.
Para direcionar as ações de adição e remoção de atribuição de função, observe que você deve adicionar duas condições. Você deve adicionar duas condições porque a origem do atributo é diferente para cada ação. Se você tentar direcionar ambas as ações na mesma condição, não será possível adicionar uma expressão. Para obter mais informações, veja Sintoma - Erro sem opções disponíveis.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
AND
@Request[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'User', 'Group'}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
AND
@Resource[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'User', 'Group'}
)
)
Veja como adicionar essa condição usando o Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912} AND @Request[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'User', 'Group'})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912} AND @Resource[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'User', 'Group'}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Exemplo: restringir funções e grupos específicos
Esta condição permite que um delegado adicione ou remova apenas atribuições de função para as funções Colaborador de Backup ou Leitor de Backup. Além disso, o delegado só pode atribuir essas funções a grupos específicos denominados Marketing (28c35fea-2099-4cf5-8ad9-473547bc9423) ou Vendas (86951b8b-723a-407b-a74a-1bca3f0c95d0).
Você deve adicionar essa condição a quaisquer atribuições de função para o delegado que incluam as ações a seguir.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e um modelo de condição.
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e o editor de condições.
Para direcionar as ações de adição e remoção de atribuição de função, observe que você deve adicionar duas condições. Você deve adicionar duas condições porque a origem do atributo é diferente para cada ação. Se você tentar direcionar ambas as ações na mesma condição, não será possível adicionar uma expressão. Para obter mais informações, veja Sintoma - Erro sem opções disponíveis.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
AND
@Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {28c35fea-2099-4cf5-8ad9-473547bc9423, 86951b8b-723a-407b-a74a-1bca3f0c95d0}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
AND
@Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {28c35fea-2099-4cf5-8ad9-473547bc9423, 86951b8b-723a-407b-a74a-1bca3f0c95d0}
)
)
Veja como adicionar essa condição usando o Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912} AND @Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {28c35fea-2099-4cf5-8ad9-473547bc9423, 86951b8b-723a-407b-a74a-1bca3f0c95d0})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912} AND @Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {28c35fea-2099-4cf5-8ad9-473547bc9423, 86951b8b-723a-407b-a74a-1bca3f0c95d0}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Exemplo: Restringir o gerenciamento de máquinas virtuais
Essa condição permite que um delegado adicione ou remova apenas atribuições de função para as funções Login de administrador de máquina virtual ou Login de usuário de máquina virtual. Além disso, o delegado só pode atribuir essas funções a um usuário específico chamado Dara (ea585310-c95c-4a68-af22-49af4363bbb1).
Essa condição é útil quando você deseja permitir que um delegado atribua a si mesmo uma função de login de máquina virtual para uma máquina virtual que acabou de criar.
Você deve adicionar essa condição a quaisquer atribuições de função para o delegado que incluam as ações a seguir.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e um modelo de condição.
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e o editor de condições.
Para direcionar as ações de adição e remoção de atribuição de função, observe que você deve adicionar duas condições. Você deve adicionar duas condições porque a origem do atributo é diferente para cada ação. Se você tentar direcionar ambas as ações na mesma condição, não será possível adicionar uma expressão. Para obter mais informações, veja Sintoma - Erro sem opções disponíveis.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {1c0163c0-47e6-4577-8991-ea5c82e286e4, fb879df8-f326-4884-b1cf-06f3ad86be52}
AND
@Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {1c0163c0-47e6-4577-8991-ea5c82e286e4, fb879df8-f326-4884-b1cf-06f3ad86be52}
AND
@Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}
)
)
Veja como adicionar essa condição usando o Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {1c0163c0-47e6-4577-8991-ea5c82e286e4, fb879df8-f326-4884-b1cf-06f3ad86be52} AND @Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {1c0163c0-47e6-4577-8991-ea5c82e286e4, fb879df8-f326-4884-b1cf-06f3ad86be52} AND @Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Exemplo: restringir a gestão de clusters AKS
Essa condição permite que um delegado adicione ou remova apenas atribuições de funções para as funções Serviço de Kubernetes do Azure RBAC Admin, Serviço de Kubernetes do Azure RBAC Cluster Admin, Serviço de Kubernetes do Azure RBAC Reader ou Serviço de Kubernetes do Azure RBAC Writer. Além disso, o delegado só pode atribuir essas funções a um usuário específico chamado Dara (ea585310-c95c-4a68-af22-49af4363bbb1).
Essa condição é útil quando pretende permitir que um delegado atribua funções de autorização de plano de dados de cluster do Azure Kubernetes Service (AKS) a si próprio para um cluster que acabou de criar.
Você deve adicionar essa condição a quaisquer atribuições de função para o delegado que incluam as ações a seguir.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e um modelo de condição.
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e o editor de condições.
Para direcionar as ações de adição e remoção de atribuição de função, observe que você deve adicionar duas condições. Você deve adicionar duas condições porque a origem do atributo é diferente para cada ação. Se você tentar direcionar ambas as ações na mesma condição, não será possível adicionar uma expressão. Para obter mais informações, veja Sintoma - Erro sem opções disponíveis.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {3498e952-d568-435e-9b2c-8d77e338d7f7, b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b, 7f6c6a51-bcf8-42ba-9220-52d62157d7db, a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb}
AND
@Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {3498e952-d568-435e-9b2c-8d77e338d7f7, b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b, 7f6c6a51-bcf8-42ba-9220-52d62157d7db, a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb}
AND
@Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}
)
)
Veja como adicionar essa condição usando o Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {3498e952-d568-435e-9b2c-8d77e338d7f7, b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b, 7f6c6a51-bcf8-42ba-9220-52d62157d7db, a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb} AND @Request[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {3498e952-d568-435e-9b2c-8d77e338d7f7, b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b, 7f6c6a51-bcf8-42ba-9220-52d62157d7db, a7ffa36f-339b-4b5c-8bdf-e2c188b2c0eb} AND @Resource[Microsoft.Authorization/roleAssignments:PrincipalId] ForAnyOfAnyValues:GuidEquals {ea585310-c95c-4a68-af22-49af4363bbb1}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Exemplo: restringir o gerenciamento do ACR
Essa condição permite que um delegado adicione ou remova apenas atribuições de função para a função AcrPull. Além disso, o delegado só pode atribuir essas funções a entidades do tipo entidade de serviço.
Essa condição é útil quando pretende permitir que um desenvolvedor atribua a função AcrPull a uma identidade gerida para que possa extrair imagens do Registo de Contêiner do Azure (ACR).
Você deve adicionar essa condição a quaisquer atribuições de função para o delegado que incluam as ações a seguir.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e um modelo de condição.
| Condição |
Configuração |
| Modelo |
Restringir funções e tipos principais |
| Funções |
AcrPull |
| Tipos de entidade de segurança |
Entidades de serviço |
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e o editor de condições.
Para direcionar as ações de adição e remoção de atribuição de função, observe que você deve adicionar duas condições. Você deve adicionar duas condições porque a origem do atributo é diferente para cada ação. Se você tentar direcionar ambas as ações na mesma condição, não será possível adicionar uma expressão. Para obter mais informações, veja Sintoma - Erro sem opções disponíveis.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {7f951dda-4ed3-4680-a7ca-43fe172d538d}
AND
@Request[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'ServicePrincipal'}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {7f951dda-4ed3-4680-a7ca-43fe172d538d}
AND
@Resource[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'ServicePrincipal'}
)
)
Veja como adicionar essa condição usando o Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {7f951dda-4ed3-4680-a7ca-43fe172d538d} AND @Request[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'ServicePrincipal'})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {7f951dda-4ed3-4680-a7ca-43fe172d538d} AND @Resource[Microsoft.Authorization/roleAssignments:PrincipalType] ForAnyOfAnyValues:StringEqualsIgnoreCase {'ServicePrincipal'}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Exemplo: Restringir a adição de atribuições de função
Essa condição permite que um delegado adicione apenas atribuições de função para as funções de Colaborador de Backup ou Leitor de Backup. O delegado pode remover quaisquer atribuições de função.
Você deve adicionar essa condição a quaisquer atribuições de função para o delegado que incluam a ação a seguir.
Microsoft.Authorization/roleAssignments/write
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e o editor de condições.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
)
)
Veja como adicionar essa condição usando o Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Exemplo: permitir a maioria das funções, mas não permitir que outros atribuam funções
Essa condição permite que um delegado adicione ou remova atribuições de função para todas as funções, exceto as funções Proprietário, Administrador de controle de acesso baseado em função e Administrador de acesso do usuário.
Essa condição é útil quando você deseja permitir que um delegado atribua a maioria das funções, mas não permite que o delegado permita que outros atribuam funções.
Observação
Essa condição deve ser usada com cautela. Se uma nova função interna ou personalizada for adicionada posteriormente e inclua a permissão para criar atribuições de função, essa condição não impedirá o delegado de atribuir funções. A condição teria que ser atualizada para incluir a nova função interna ou personalizada.
Você deve adicionar essa condição a quaisquer atribuições de função para o delegado que incluam as ações a seguir.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e um modelo de condição.
Aqui estão as configurações para adicionar essa condição usando o portal do Azure e o editor de condições.
Para direcionar as ações de adição e remoção de atribuição de função, observe que você deve adicionar duas condições. Você deve adicionar duas condições porque a origem do atributo é diferente para cada ação. Se você tentar direcionar ambas as ações na mesma condição, não será possível adicionar uma expressão. Para obter mais informações, veja Sintoma - Erro sem opções disponíveis.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAllValues:GuidNotEquals {8e3af657-a8ff-443c-a75c-2fe8c4bcb635, f58310d9-a9f6-439a-9e8d-f62e7b41a168, 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9}
)
)
AND
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})
)
OR
(
@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAllValues:GuidNotEquals {8e3af657-a8ff-443c-a75c-2fe8c4bcb635, f58310d9-a9f6-439a-9e8d-f62e7b41a168, 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9}
)
)
Veja como adicionar essa condição usando o Azure PowerShell.
$roleDefinitionId = "f58310d9-a9f6-439a-9e8d-f62e7b41a168"
$principalId = "<principalId>"
$scope = "/subscriptions/<subscriptionId>"
$condition = "((!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})) OR (@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAllValues:GuidNotEquals {8e3af657-a8ff-443c-a75c-2fe8c4bcb635, f58310d9-a9f6-439a-9e8d-f62e7b41a168, 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9})) AND ((!(ActionMatches{'Microsoft.Authorization/roleAssignments/delete'})) OR (@Resource[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAllValues:GuidNotEquals {8e3af657-a8ff-443c-a75c-2fe8c4bcb635, f58310d9-a9f6-439a-9e8d-f62e7b41a168, 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9}))"
$conditionVersion = "2.0"
New-AzRoleAssignment -ObjectId $principalId -Scope $scope -RoleDefinitionId $roleDefinitionId -Condition $condition -ConditionVersion $conditionVersion
Próximas etapas