В этой статье приводятся примеры делегирования управления назначениями ролей Azure другим пользователям с условиями.
Необходимые условия
Дополнительные сведения о предварительных требованиях для добавления и изменения условий назначения ролей см. в разделе Требования к условиям.
Пример: ограничение ролей
Это условие позволяет делегату добавлять или удалять назначения ролей только для ролей участника резервного копирования или средства чтения резервных копий .
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Ниже приведены параметры для добавления этого условия с помощью портала Azure и шаблона условия.
Ниже приведены параметры для добавления этого условия с помощью портала Azure и редактора условий.
Чтобы нацелить как на действия добавления, так и удаления назначения ролей, обратите внимание, что необходимо добавить два условия. Необходимо добавить два условия, так как источник атрибута отличается для каждого действия. Если вы попытаетесь включить оба действия в рамках одного условия, вы не сможете добавить выражение. Дополнительные сведения см. в разделе "Ошибка - недоступны варианты".
(
(
!(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}
)
)
Вот как добавить это условие с помощью 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
Пример. Ограничение ролей и типов субъектов
Это условие позволяет делегату добавлять или удалять назначения ролей только для ролей участника резервного копирования или средства чтения резервных копий . Кроме того, делегат может назначать эти роли только субъектам типа пользователя или группы.
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Ниже приведены параметры для добавления этого условия с помощью портала Azure и шаблона условия.
Ниже приведены параметры для добавления этого условия с помощью портала Azure и редактора условий.
Чтобы нацелить как на действия добавления, так и удаления назначения ролей, обратите внимание, что необходимо добавить два условия. Необходимо добавить два условия, так как источник атрибута отличается для каждого действия. Если вы попытаетесь включить оба действия в рамках одного условия, вы не сможете добавить выражение. Дополнительные сведения см. в разделе "Ошибка - недоступны варианты".
(
(
!(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'}
)
)
Вот как добавить это условие с помощью 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
Пример. Ограничение ролей и определенных групп
Это условие позволяет делегату добавлять или удалять назначения ролей только для ролей участника резервного копирования или средства чтения резервных копий . Кроме того, делегат может назначать эти роли определенным группам с именем Marketing (28c35fea-2099-4cf5-8ad9-473547bc9423) или Sales (86951b8b-723a-407b-a74a-1bca3f0c95d0).
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Ниже приведены параметры для добавления этого условия с помощью портала Azure и шаблона условия.
Ниже приведены параметры для добавления этого условия с помощью портала Azure и редактора условий.
Чтобы нацелиться на действия как добавления, так и удаления назначения роли, имейте в виду, что необходимо добавить два условия. Необходимо добавить два условия, так как источник атрибута отличается для каждого действия. Если вы попытаетесь совместить оба действия в одном условии, вы не сможете добавить выражение. Дополнительные сведения см. в разделе Симптом - ошибка отсутствия доступных параметров.
(
(
!(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}
)
)
Вот как добавить это условие с помощью 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
Пример. Ограничение управления виртуальными машинами
Это условие позволяет делегату добавлять или удалять назначения ролей только для ролей входа администратора виртуальной машины или имени входа пользователя виртуальной машины . Кроме того, делегат может назначать эти роли определенному пользователю Dara (ea585310-c95c-4a68-af22-49af4363bbb1).
Это условие полезно, если вы хотите разрешить делегату назначить себе роль входа виртуальной машины для только что созданной виртуальной машины.
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Ниже приведены параметры для добавления этого условия с помощью портала Azure и шаблона условия.
Ниже приведены параметры для добавления этого условия с помощью портала Azure и редактора условий.
Чтобы нацелить как на действия добавления, так и удаления назначения ролей, обратите внимание, что необходимо добавить два условия. Необходимо добавить два условия, так как источник атрибута отличается для каждого действия. Если вы попытаетесь включить оба действия в рамках одного условия, вы не сможете добавить выражение. Дополнительные сведения см. в разделе "Ошибка - недоступны варианты".
(
(
!(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}
)
)
Вот как добавить это условие с помощью 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
Пример. Ограничение управления кластерами AKS
Это условие позволяет делегату добавлять или удалять назначения ролей только для администратора RBAC службы Azure Kubernetes, администратора кластера RBAC службы Azure Kubernetes, средства чтения RBAC службы Azure Kubernetes или ролей средства записи RBAC службы Azure Kubernetes . Кроме того, делегат может назначать эти роли определенному пользователю Dara (ea585310-c95c-4a68-af22-49af4363bbb1).
Это условие полезно, если вы хотите разрешить делегату самостоятельно назначать роли авторизации плоскости данных кластера Azure Kubernetes Service (AKS) для кластера, который они только что создали.
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Ниже приведены параметры для добавления этого условия с помощью портала Azure и шаблона условия.
Ниже приведены параметры для добавления этого условия с помощью портала Azure и редактора условий.
Чтобы нацелить как на действия добавления, так и удаления назначения ролей, обратите внимание, что необходимо добавить два условия. Необходимо добавить два условия, так как источник атрибута отличается для каждого действия. Если вы попытаетесь включить оба действия в рамках одного условия, вы не сможете добавить выражение. Дополнительные сведения см. в разделе "Ошибка - недоступны варианты".
(
(
!(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}
)
)
Вот как добавить это условие с помощью 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
Пример: Ограничение управления ACR
Это условие позволяет делегату добавлять или удалять назначения ролей только для роли AcrPull . Кроме того, делегат может назначать эти роли только субъектам типа служебного принципала.
Это условие полезно, когда вы хотите позволить разработчику самостоятельно назначить роль AcrPull управляемому удостоверению, чтобы оно могло извлекать образы из реестра контейнеров Azure (ACR).
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Ниже приведены параметры для добавления этого условия с помощью портала Azure и шаблона условия.
| Состояние |
Setting |
| Template |
Ограничение ролей и типов субъектов |
| Роли |
AcrPull |
| Основные типы |
Сервисные принципы |
Ниже приведены параметры для добавления этого условия с помощью портала Azure и редактора условий.
Чтобы нацелить как на действия добавления, так и удаления назначения ролей, обратите внимание, что необходимо добавить два условия. Необходимо добавить два условия, так как источник атрибута отличается для каждого действия. Если вы попытаетесь включить оба действия в рамках одного условия, вы не сможете добавить выражение. Дополнительные сведения см. в разделе "Ошибка - недоступны варианты".
(
(
!(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'}
)
)
Вот как добавить это условие с помощью 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
Пример. Ограничение добавления назначений ролей
Это условие позволяет делегату добавлять только назначения для роли участника резервного копирования или чтения резервных копий. Делегат может удалить любые назначения ролей.
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующее действие.
Microsoft.Authorization/roleAssignments/write
Ниже приведены параметры для добавления этого условия с помощью портала Azure и редактора условий.
(
(
!(ActionMatches{'Microsoft.Authorization/roleAssignments/write'})
)
OR
(
@Request[Microsoft.Authorization/roleAssignments:RoleDefinitionId] ForAnyOfAnyValues:GuidEquals {5e467623-bb1f-42f4-a55d-6e525e11384b, a795c7a0-d4a2-40c1-ae25-d81f01202912}
)
)
Вот как добавить это условие с помощью 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
Пример. Разрешить большинство ролей, но не разрешать другим пользователям назначать роли
Это условие позволяет делегату добавлять или удалять назначения ролей для всех ролей, кроме ролей "Владелец", "Администратор управления доступом на основе ролей" и "Администратор доступа пользователей ".
Это условие полезно, если вы хотите разрешить делегату назначать большинство ролей, но не разрешать делегату назначать роли другим пользователям.
Замечание
Это условие следует использовать с осторожностью. Если добавлена новая встроенная или настраиваемая роль, которая включает разрешение на создание назначений ролей, это условие не позволит делегату назначать роли. Условие должно быть обновлено, чтобы включить новую встроенную или настраиваемую роль.
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Ниже приведены параметры для добавления этого условия с помощью портала Azure и шаблона условия.
Ниже приведены параметры для добавления этого условия с помощью портала Azure и редактора условий.
Чтобы нацелить как на действия добавления, так и удаления назначения ролей, обратите внимание, что необходимо добавить два условия. Необходимо добавить два условия, так как источник атрибута отличается для каждого действия. Если вы попытаетесь включить оба действия в рамках одного условия, вы не сможете добавить выражение. Дополнительные сведения см. в разделе "Ошибка - недоступны варианты".
(
(
!(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}
)
)
Вот как добавить это условие с помощью 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
Дальнейшие действия