Ejemplos para delegar la administración de asignaciones de roles de Azure con condiciones
Artículo
En este artículo se enumeran ejemplos de cómo delegar la administración de asignaciones de roles de Azure a otros usuarios con condiciones.
Requisitos previos
Para obtener información sobre los requisitos previos para agregar o editar condiciones de asignación de roles, consulte Requisitos previos de las condiciones.
Esta es la configuración para agregar esta condición mediante Azure Portal y el editor de condiciones.
Para tener como destino las acciones agregar y quitar asignación de roles, tenga en cuenta que debe agregar dos condiciones. Debe agregar dos condiciones porque el origen del atributo es diferente para cada acción. Si intenta establecer como destino ambas acciones en la misma condición, no podrá agregar una expresión. Para obtener más información, vea Síntoma: Error de opciones no disponibles.
Ejemplo: Restricción de roles y tipos de entidad de seguridad
Esta condición permite que un delegado solo agregue o quite asignaciones de roles para los roles de Colaborador de copia de seguridad o Lector de copia de seguridad de roles. Además, el delegado solo puede asignar estos roles a entidades de seguridad de tipo usuario o grupo.
Debe agregar esta condición a las asignaciones de roles para el delegado que incluyan las siguientes acciones.
Esta es la configuración para agregar esta condición mediante Azure Portal y el editor de condiciones.
Para tener como destino las acciones agregar y quitar asignación de roles, tenga en cuenta que debe agregar dos condiciones. Debe agregar dos condiciones porque el origen del atributo es diferente para cada acción. Si intenta establecer como destino ambas acciones en la misma condición, no podrá agregar una expresión. Para obtener más información, vea Síntoma: Error de opciones no disponibles.
(
(
!(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'}
)
)
Aquí se muestra cómo agregar esta condición mediante 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
Ejemplo: Restringir roles y grupos específicos
Esta condición permite que un delegado solo agregue o quite asignaciones de roles para los roles de Colaborador de copia de seguridad o Lector de copia de seguridad de roles. Además, el delegado solo puede asignar estos roles a grupos específicos denominados Marketing (28c35fea-2099-4cf5-8ad9-473547bc9423) o Sales (86951b8b-723a-407b-a74a-1bca3f0c95d0).
Debe agregar esta condición a las asignaciones de roles para el delegado que incluyan las siguientes acciones.
Esta es la configuración para agregar esta condición mediante Azure Portal y el editor de condiciones.
Para tener como destino las acciones agregar y quitar asignación de roles, tenga en cuenta que debe agregar dos condiciones. Debe agregar dos condiciones porque el origen del atributo es diferente para cada acción. Si intenta establecer como destino ambas acciones en la misma condición, no podrá agregar una expresión. Para obtener más información, vea Síntoma: Error de opciones no disponibles.
Esta condición es útil cuando desea permitir que un delegado asigne un rol de inicio de sesión de máquina virtual a sí mismo para una máquina virtual que acaba de crear.
Debe agregar esta condición a las asignaciones de roles para el delegado que incluyan las siguientes acciones.
Esta es la configuración para agregar esta condición mediante Azure Portal y el editor de condiciones.
Para tener como destino las acciones agregar y quitar asignación de roles, tenga en cuenta que debe agregar dos condiciones. Debe agregar dos condiciones porque el origen del atributo es diferente para cada acción. Si intenta establecer como destino ambas acciones en la misma condición, no podrá agregar una expresión. Para obtener más información, vea Síntoma: Error de opciones no disponibles.
Esta condición es útil cuando desea permitir que un delegado asigne roles de autorización del plano de datos del clúster de Azure Kubernetes Service (AKS) a sí mismos para un clúster que acaba de crear.
Debe agregar esta condición a las asignaciones de roles para el delegado que incluyan las siguientes acciones.
Esta es la configuración para agregar esta condición mediante Azure Portal y el editor de condiciones.
Para tener como destino las acciones agregar y quitar asignación de roles, tenga en cuenta que debe agregar dos condiciones. Debe agregar dos condiciones porque el origen del atributo es diferente para cada acción. Si intenta establecer como destino ambas acciones en la misma condición, no podrá agregar una expresión. Para obtener más información, vea Síntoma: Error de opciones no disponibles.
(
(
!(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}
)
)
Aquí se muestra cómo agregar esta condición mediante 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
Ejemplo: Restringir la administración de ACR
Esta condición permite que un delegado solo agregue o quite asignaciones de roles para el rol de AcrPull. Además, el delegado solo puede asignar estos roles a entidades de seguridad de tipo entidad de servicio.
Esta condición es útil cuando desea permitir que un desarrollador asigne el rol AcrPull a una identidad administrada para que pueda extraer imágenes de Azure Container Registry (ACR).
Debe agregar esta condición a las asignaciones de roles para el delegado que incluyan las siguientes acciones.
Esta es la configuración para agregar esta condición mediante Azure Portal y el editor de condiciones.
Para tener como destino las acciones agregar y quitar asignación de roles, tenga en cuenta que debe agregar dos condiciones. Debe agregar dos condiciones porque el origen del atributo es diferente para cada acción. Si intenta establecer como destino ambas acciones en la misma condición, no podrá agregar una expresión. Para obtener más información, vea Síntoma: Error de opciones no disponibles.
Esta condición es útil cuando desea permitir que un delegado asigne la mayoría de los roles, pero no permita que otros usuarios asignen roles.
Nota:
Esta condición debe usarse con precaución. Si se agrega un nuevo rol integrado o personalizado que incluye el permiso para crear asignaciones de roles, esta condición no impediría que el delegado asignara roles. La condición tendría que actualizarse para incluir el nuevo rol integrado o personalizado.
Debe agregar esta condición a las asignaciones de roles para el delegado que incluyan las siguientes acciones.
Esta es la configuración para agregar esta condición mediante Azure Portal y el editor de condiciones.
Para tener como destino las acciones agregar y quitar asignación de roles, tenga en cuenta que debe agregar dos condiciones. Debe agregar dos condiciones porque el origen del atributo es diferente para cada acción. Si intenta establecer como destino ambas acciones en la misma condición, no podrá agregar una expresión. Para obtener más información, vea Síntoma: Error de opciones no disponibles.