Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El control de acceso basado en rol de Azure (RBAC de Azure) es la forma en que se administra el acceso a los recursos de Azure. En este tutorial, concederá a un usuario acceso para ver todo en una suscripción y administrar todo en un grupo de recursos mediante Azure PowerShell.
En este tutorial, aprenderá a:
- Concesión de acceso para un usuario en distintos ámbitos
- Acceso a la lista
- Eliminar acceso
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Nota:
Se recomienda usar el módulo de PowerShell de Azure Az para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para obtener información sobre cómo migrar al módulo Az PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Prerrequisitos
Para completar este tutorial, necesitará:
- Permisos para crear usuarios en el identificador de Microsoft Entra (o tener un usuario existente)
- Azure Cloud Shell
- Microsoft Graph PowerShell SDK
Asignaciones de roles
En RBAC de Azure, para conceder acceso, cree una asignación de roles. Una asignación de roles consta de tres elementos: entidad de seguridad, definición de rol y ámbito. Estas son las dos asignaciones de roles que realizará en este tutorial:
| Principal de seguridad | Definición de roles | Ámbito |
|---|---|---|
| Usuario (Usuario del tutorial de RBAC) |
Reader | Subscription |
| Usuario (Usuario del tutorial de RBAC) |
Contributor | Grupo de recursos (rbac-tutorial-resource-group) |
Creación de un usuario
Para asignar un rol, necesita un usuario, un grupo o un principal del servicio. Si aún no tiene un usuario, puede crear uno.
En Azure Cloud Shell, cree una contraseña que cumpla los requisitos de complejidad de la contraseña.
$PasswordProfile = @{ Password = "<Password>" }Cree un nuevo usuario para el dominio mediante el comando New-MgUser .
New-MgUser -DisplayName "RBAC Tutorial User" -PasswordProfile $PasswordProfile ` -UserPrincipalName "rbacuser@example.com" -AccountEnabled:$true -MailNickName "rbacuser"DisplayName Id Mail UserPrincipalName ----------- -- ---- ----------------- RBAC Tutorial User aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb rbacuser@example.com
Creación de un grupo de recursos
Usas un grupo de recursos para demostrar cómo asignar un rol en el ámbito de un grupo de recursos.
Obtenga una lista de ubicaciones de región mediante el comando Get-AzLocation .
Get-AzLocation | select LocationSeleccione una ubicación cercana a usted y asígnela a una variable.
$location = "westus"Cree un nuevo grupo de recursos mediante el comando New-AzResourceGroup .
New-AzResourceGroup -Name "rbac-tutorial-resource-group" -Location $locationResourceGroupName : rbac-tutorial-resource-group Location : westus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group
Conceder acceso
Para conceder acceso al usuario, use el comando New-AzRoleAssignment para asignar un rol. Debe especificar la función de seguridad, la definición de funciones y el ámbito.
Obtenga el identificador de la suscripción mediante el comando Get-AzSubscription .
Get-AzSubscriptionName : Pay-As-You-Go Id : 00000000-0000-0000-0000-000000000000 TenantId : aaaabbbb-0000-cccc-1111-dddd2222eeee State : EnabledGuarde el ámbito de la suscripción en una variable.
$subScope = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"Asignar al usuario el rol Lector en el ámbito de la suscripción.
New-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Reader" ` -Scope $subScopeRoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : FalseAsigne el rol Colaborador al usuario en el ámbito del grupo de recursos.
New-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : False
Acceso a la lista
Para comprobar el acceso a la suscripción, use el comando Get-AzRoleAssignment para enumerar las asignaciones de roles.
Get-AzRoleAssignment -SignInName rbacuser@example.com -Scope $subScopeRoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : FalseEn la salida, puede ver que se ha asignado que el rol de lector se ha asignado al usuario del tutorial de RBAC en el ámbito de la suscripción.
Para comprobar el acceso del grupo de recursos, use el comando Get-AzRoleAssignment para enumerar las asignaciones de roles.
Get-AzRoleAssignment -SignInName rbacuser@example.com -ResourceGroupName "rbac-tutorial-resource-group"RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : False RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : FalseEn la salida, puede ver que los roles de Colaborador y de Lector se han asignado al Usuario del tutorial de RBAC. El rol de colaborador está en el ámbito de rbac-tutorial-resource-group, mientras que el rol de lector se hereda en el ámbito de la suscripción.
(Opcional) Listar acceso mediante el Azure Portal
Para ver el aspecto de las asignaciones de roles en Azure Portal, vea la hoja Control de acceso (IAM) de la suscripción.
Vea la hoja Control de acceso (IAM) del grupo de recursos.
Eliminar acceso
Para quitar el acceso a usuarios, grupos y aplicaciones, use Remove-AzRoleAssignment para quitar una asignación de roles.
Use el comando siguiente para quitar la asignación del rol de Colaborador asignado al usuario en el ámbito del grupo de recursos.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"Use el siguiente comando para quitar la asignación del rol de lector para el usuario en el ámbito de suscripción.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Reader" ` -Scope $subScope
Limpieza de recursos
Para limpiar los recursos creados por este tutorial, elimine el grupo de recursos y el usuario.
Elimine el grupo de recursos mediante el comando Remove-AzResourceGroup .
Remove-AzResourceGroup -Name "rbac-tutorial-resource-group"Confirm Are you sure you want to remove resource group 'rbac-tutorial-resource-group' [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):Cuando se le pida que confirme, escriba Y. Tardará unos segundos en eliminarse.
Elimine el usuario mediante el comando Remove-MgUser .
$User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'" Remove-MgUser -UserId $User.Id