Cet article répertorie des exemples de délégation de la gestion d’attribution de rôle Azure à d’autres utilisateurs avec des conditions.
Prérequis
Pour plus d’informations sur les prérequis à l’ajout ou à la modification des conditions d’attribution de rôle, consultez Prérequis aux conditions.
Exemple : limiter les rôles
Cette condition permet à un délégué d’ajouter ou de supprimer uniquement des attributions de rôles pour les rôles Contributeur de sauvegarde ou Lecteur de sauvegarde.
Vous devez ajouter cette condition à toutes les attributions de rôles pour le délégué qui incluent les actions suivantes.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et d’un modèle de condition.
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et de l’éditeur de condition.
Pour cibler à la fois les actions d’ajout et de suppression d’attribution de rôle, notez que vous devez ajouter deux conditions. Vous devez ajouter deux conditions, car la source de l’attribut est différente pour chaque action. Si vous essayez de cibler les deux actions dans la même condition, vous ne pourrez pas ajouter d’expression. Pour plus d’informations, consultez Symptôme : erreur Aucune option disponible.
(
(
!(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}
)
)
Voici comment ajouter cette condition à l’aide d’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
Exemple : limiter les rôles et les types principaux
Cette condition permet à un délégué d’ajouter ou de supprimer uniquement des attributions de rôles pour les rôles Contributeur de sauvegarde ou Lecteur de sauvegarde. En outre, le délégué peut uniquement attribuer ces rôles aux principaux de type d’utilisateur ou de groupe.
Vous devez ajouter cette condition à toutes les attributions de rôles pour le délégué qui incluent les actions suivantes.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et d’un modèle de condition.
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et de l’éditeur de condition.
Pour cibler à la fois les actions d’ajout et de suppression d’attribution de rôle, notez que vous devez ajouter deux conditions. Vous devez ajouter deux conditions, car la source de l’attribut est différente pour chaque action. Si vous essayez de cibler les deux actions dans la même condition, vous ne pourrez pas ajouter d’expression. Pour plus d’informations, consultez Symptôme : erreur Aucune option disponible.
(
(
!(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'}
)
)
Voici comment ajouter cette condition à l’aide d’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
Exemple : limiter les rôles et les groupes spécifiques
Cette condition permet à un délégué d’ajouter ou de supprimer uniquement des attributions de rôles pour les rôles Contributeur de sauvegarde ou Lecteur de sauvegarde. En outre, le délégué peut uniquement attribuer ces rôles à des groupes spécifiques nommés Marketing (28c35fea-2099-4cf5-8ad9-473547bc9423) ou Sales (86951b8b-723a-407b-a74a-1bca3f0c95d0).
Vous devez ajouter cette condition à toutes les attributions de rôles pour le délégué qui incluent les actions suivantes.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et d’un modèle de condition.
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et de l’éditeur de condition.
Pour cibler à la fois les actions d’ajout et de suppression d’attribution de rôle, notez que vous devez ajouter deux conditions. Vous devez ajouter deux conditions, car la source de l’attribut est différente pour chaque action. Si vous essayez de cibler les deux actions dans la même condition, vous ne pourrez pas ajouter d’expression. Pour plus d’informations, consultez Symptôme : erreur Aucune option disponible.
(
(
!(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}
)
)
Voici comment ajouter cette condition à l’aide d’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
Exemple : limiter la gestion des machines virtuelles
Cette condition permet à un délégué d’ajouter ou de supprimer uniquement des attributions de rôles pour les rôles de Connexion de l’administrateur de machine virtuelle ou Connexion de l’utilisateur de machine virtuelle. En outre, le délégué peut uniquement attribuer ces rôles à un utilisateur spécifique nommé Dara (ea585310-c95c-4a68-af22-49af4363bbb1).
Cette condition est utile lorsque vous souhaitez autoriser un délégué à attribuer un rôle de connexion de machine virtuelle à lui-même pour une machine virtuelle qu’il vient de créer.
Vous devez ajouter cette condition à toutes les attributions de rôles pour le délégué qui incluent les actions suivantes.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et d’un modèle de condition.
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et de l’éditeur de condition.
Pour cibler à la fois les actions d’ajout et de suppression d’attribution de rôle, notez que vous devez ajouter deux conditions. Vous devez ajouter deux conditions, car la source de l’attribut est différente pour chaque action. Si vous essayez de cibler les deux actions dans la même condition, vous ne pourrez pas ajouter d’expression. Pour plus d’informations, consultez Symptôme : erreur Aucune option disponible.
(
(
!(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}
)
)
Voici comment ajouter cette condition à l’aide d’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
Exemple : limiter la gestion des clusters AKS
Cette condition permet à un délégué d’ajouter ou de supprimer uniquement des attributions de rôles pour les rôles Administrateur RBAC Azure Kubernetes Service, Administrateur de cluster RBAC Azure Kubernetes Service, Lecteur RBAC Azure Kubernetes Service ou Enregistreur RBAC Azure Kubernetes Service. En outre, le délégué peut uniquement attribuer ces rôles à un utilisateur spécifique nommé Dara (ea585310-c95c-4a68-af22-49af4363bbb1).
Cette condition est utile lorsque vous souhaitez autoriser un délégué à attribuer des rôles d’autorisation de plan de données de cluster AKS (Azure Kubernetes Service) à lui-même pour un cluster qu’il vient de créer.
Vous devez ajouter cette condition à toutes les attributions de rôles pour le délégué qui incluent les actions suivantes.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et d’un modèle de condition.
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et de l’éditeur de condition.
Pour cibler à la fois les actions d’ajout et de suppression d’attribution de rôle, notez que vous devez ajouter deux conditions. Vous devez ajouter deux conditions, car la source de l’attribut est différente pour chaque action. Si vous essayez de cibler les deux actions dans la même condition, vous ne pourrez pas ajouter d’expression. Pour plus d’informations, consultez Symptôme : erreur Aucune option disponible.
(
(
!(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}
)
)
Voici comment ajouter cette condition à l’aide d’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
Exemple : limiter la gestion d’Azure Container Registry
Cette condition permet à un délégué d’ajouter ou de supprimer uniquement des attributions de rôles pour le rôle AcrPull. En outre, le délégué peut uniquement attribuer ces rôles aux principaux de type de principal de service.
Cette condition est utile lorsque vous souhaitez autoriser un développeur d’attribuer le rôle AcrPull à une identité managée lui-même afin qu’elle puisse extraire des images à partir d’Azure Container Registry (ACR).
Vous devez ajouter cette condition à toutes les attributions de rôles pour le délégué qui incluent les actions suivantes.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et d’un modèle de condition.
| Condition |
Setting |
| Modèle |
Limiter les rôles et les types principaux |
| Rôles |
AcrPull |
| Types de principal |
Principaux de service |
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et de l’éditeur de condition.
Pour cibler à la fois les actions d’ajout et de suppression d’attribution de rôle, notez que vous devez ajouter deux conditions. Vous devez ajouter deux conditions, car la source de l’attribut est différente pour chaque action. Si vous essayez de cibler les deux actions dans la même condition, vous ne pourrez pas ajouter d’expression. Pour plus d’informations, consultez Symptôme : erreur Aucune option disponible.
(
(
!(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'}
)
)
Voici comment ajouter cette condition à l’aide d’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
Exemple : limiter l’ajout d’attributions de rôles
Cette condition permet à un délégué d’ajouter uniquement des attributions de rôles pour les rôles Contributeur de sauvegarde ou Lecteur de sauvegarde. Le délégué peut supprimer toutes les attributions de rôles.
Vous devez ajouter cette condition à toutes les attributions de rôles pour le délégué qui incluent l’action suivante.
Microsoft.Authorization/roleAssignments/write
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et de l’éditeur de condition.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
)
)
Voici comment ajouter cette condition à l’aide d’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
Exemple : autoriser la plupart des rôles, mais ne pas autoriser d’autres utilisateurs à attribuer des rôles
Cette condition permet à un délégué d’ajouter ou de supprimer des attributions de rôles pour tous les rôles, à l’exception des rôles de Propriétaire, Administrateur du contrôle d’accès en fonction du rôle et Administrateur d’accès utilisateur.
Cette condition est utile lorsque vous souhaitez autoriser un délégué à attribuer la plupart des rôles, mais pas à autoriser le délégué à autoriser d’autres utilisateurs à attribuer des rôles.
Remarque
Il convient d'être prudent lors de l'utilisation de cette condition. Si un nouveau rôle intégré ou personnalisé est ajouté ultérieurement et inclut l’autorisation de créer des attributions de rôles, cette condition n’empêchera pas le délégué d’attribuer des rôles. La condition doit être mise à jour pour inclure le nouveau rôle intégré ou personnalisé.
Vous devez ajouter cette condition à toutes les attributions de rôles pour le délégué qui incluent les actions suivantes.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et d’un modèle de condition.
Voici les paramètres pour ajouter cette condition à l’aide du Portail Azure et de l’éditeur de condition.
Pour cibler à la fois les actions d’ajout et de suppression d’attribution de rôle, notez que vous devez ajouter deux conditions. Vous devez ajouter deux conditions, car la source de l’attribut est différente pour chaque action. Si vous essayez de cibler les deux actions dans la même condition, vous ne pourrez pas ajouter d’expression. Pour plus d’informations, consultez Symptôme : erreur Aucune option disponible.
(
(
!(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}
)
)
Voici comment ajouter cette condition à l’aide d’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
Étapes suivantes