Примеры делегирования управления назначениями ролей Azure с условиями
Мақала
В этой статье приводятся примеры делегирования управления назначениями ролей Azure другим пользователям с условиями.
Необходимые компоненты
Дополнительные сведения о предварительных требованиях для добавления и изменения условий назначения ролей см. в разделе Требования к условиям.
Пример: ограничение ролей
Это условие позволяет делегату добавлять или удалять назначения ролей только для ролей участника резервного копирования или средства чтения резервных копий.
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Ниже приведены параметры для добавления этого условия с помощью портал 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).
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Ниже приведены параметры для добавления этого условия с помощью портал 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
Пример. Ограничение управления виртуальными машинами
Это условие позволяет делегату добавлять или удалять назначения ролей только для ролей входа пользователя виртуальной машины Администратор istrator или имени входа пользователя виртуальной машины. Кроме того, делегат может назначать эти роли определенному пользователю Dara (ea585310-c95c-4a68-af22-49af4363bbb1).
Это условие полезно, если вы хотите разрешить делегату назначить себе роль входа виртуальной машины для только что созданной виртуальной машины.
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Ниже приведены параметры для добавления этого условия с помощью портал Azure и редактора условий.
Чтобы нацелить как на действия добавления, так и удаления назначения ролей, обратите внимание, что необходимо добавить два условия. Необходимо добавить два условия, так как источник атрибута отличается для каждого действия. Если вы попытаетесь нацелить оба действия в одном условии, вы не сможете добавить выражение. Дополнительные сведения см. в разделе "Симптом" — нет доступных ошибок.
Это условие полезно, если вы хотите разрешить делегату назначать роли авторизации уровня данных кластера Служба Azure Kubernetes (AKS) для только что созданного кластера.
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Ниже приведены параметры для добавления этого условия с помощью портал 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).
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Ниже приведены параметры для добавления этого условия с помощью портал 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
Пример. Ограничение добавления назначений ролей
Это условие позволяет делегату добавлять только назначения ролей для ролей участника резервного копирования или средства чтения резервных копий. Делегат может удалить любые назначения ролей.
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующее действие.
Это условие полезно, если вы хотите разрешить делегату назначать большинство ролей, но не разрешать делегату назначать роли другим пользователям.
Примечание.
Это условие следует использовать с осторожностью. Если добавлена новая встроенная или настраиваемая роль, которая включает разрешение на создание назначений ролей, это условие не позволит делегату назначать роли. Условие должно быть обновлено, чтобы включить новую встроенную или настраиваемую роль.
Это условие необходимо добавить в любые назначения ролей для делегата, включающего следующие действия.
Ниже приведены параметры для добавления этого условия с помощью портал Azure и редактора условий.
Чтобы нацелить как на действия добавления, так и удаления назначения ролей, обратите внимание, что необходимо добавить два условия. Необходимо добавить два условия, так как источник атрибута отличается для каждого действия. Если вы попытаетесь нацелить оба действия в одном условии, вы не сможете добавить выражение. Дополнительные сведения см. в разделе "Симптом" — нет доступных ошибок.