Tutorial: Concesión de acceso de grupo a recursos de Azure mediante Azure PowerShell

El control de acceso basado en rol (RBAC) es la forma en la que se administra el acceso a los recursos de Azure. En este tutorial se concede a un grupo acceso para ver todos los elementos de una suscripción y administrar todo el contenido de un grupo de recursos mediante Azure PowerShell.

En este tutorial, aprenderá a:

  • Conceder acceso a un grupo a distintos ámbitos
  • Lista de acceso
  • Quitar acceso

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Nota

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Prerrequisitos

Para realizar este tutorial, necesita:

Asignaciones de roles

En Azure RBAC, para conceder acceso es preciso crear 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 llevará a cabo en este tutorial:

Entidad de seguridad Definición de roles Ámbito
Grupo
(Grupo de tutorial de RBAC)
Lector Subscription
Grupo
(Grupo de tutorial de RBAC)
Colaborador Resource group
(rbac-tutorial-resource-group)

Role assignments for a group

Creación de un grupo

Para asignar un rol, se necesita un usuario, un grupo o una entidad de servicio. Si aún no tiene un grupo, puede crearlo.

  • En Azure Cloud Shell, cree un nuevo grupo con el comando New-MgGroup.

    New-MgGroup -DisplayName "RBAC Tutorial Group" -MailEnabled:$false `
        -SecurityEnabled:$true -MailNickName "NotSet"
    
    DisplayName         Id                                   MailNickname Description GroupTypes
    -----------         --                                   ------------ ----------- ----------
    RBAC Tutorial Group 11111111-1111-1111-1111-111111111111 NotSet                   {}
    

Si no tiene permisos para crear grupos, puede probar el Tutorial: Concesión de acceso de usuario a recursos de Azure PowerShell en su lugar.

Crear un grupo de recursos

Use un grupo de recursos para mostrar cómo asignar un rol a un ámbito de un grupo de recursos.

  1. Obtenga una lista de regiones con el comando Get AzLocation.

    Get-AzLocation | select Location
    
  2. Seleccione una ubicación próxima y asígnela a una variable.

    $location = "westus"
    
  3. Cree un grupo de recursos con el comando New-AzResourceGroup.

    New-AzResourceGroup -Name "rbac-tutorial-resource-group" -Location $location
    
    ResourceGroupName : rbac-tutorial-resource-group
    Location          : westus
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
    

Conceder acceso

Para conceder acceso al grupo, use el comando New-AzRoleAssignment para asignar un rol. Debe especificar la entidad de seguridad, la definición del rol y el ámbito.

  1. Obtenga el identificador de objeto del grupo mediante el comando Get-MgGroup.

    Get-MgGroup -Filter "DisplayName eq 'RBAC Tutorial Group'"
    
    DisplayName         Id                                   MailNickname Description GroupTypes
    -----------         --                                   ------------ ----------- ----------
    RBAC Tutorial Group 11111111-1111-1111-1111-111111111111 NotSet                   {}
    
  2. Guarde el identificador de objeto del grupo en una variable.

    $groupId = "11111111-1111-1111-1111-111111111111"
    
  3. Obtenga el identificador de la suscripción mediante el comando Get AzSubscription.

    Get-AzSubscription
    
    Name     : Pay-As-You-Go
    Id       : 00000000-0000-0000-0000-000000000000
    TenantId : 22222222-2222-2222-2222-222222222222
    State    : Enabled
    
  4. Guarde el ámbito de la suscripción en una variable.

    $subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
    
  5. Asigne el rol de lector al grupo en el ámbito de la suscripción.

    New-AzRoleAssignment -ObjectId $groupId `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/44444444-4444-4444-4444-444444444444
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
    DisplayName        : RBAC Tutorial Group
    SignInName         :
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : Group
    CanDelegate        : False
    
  6. Asigne el rol de colaborador al grupo en el ámbito del grupo de recursos.

    New-AzRoleAssignment -ObjectId $groupId `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
    DisplayName        : RBAC Tutorial Group
    SignInName         :
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : Group
    CanDelegate        : False
    

Lista de acceso

  1. Para comprobar el acceso de la suscripción, use el comando Get-AzRoleAssignment para enumerar las asignaciones de roles.

    Get-AzRoleAssignment -ObjectId $groupId -Scope $subScope
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
    DisplayName        : RBAC Tutorial Group
    SignInName         :
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : Group
    CanDelegate        : False
    

    En la salida, puede ver que se ha asignado que el rol de lector se ha asignado al grupo del tutorial de RBAC en el ámbito de la suscripción.

  2. Para comprobar el acceso del grupo de recursos, use el comando Get-AzRoleAssignment para enumerar las asignaciones de roles.

    Get-AzRoleAssignment -ObjectId $groupId -ResourceGroupName "rbac-tutorial-resource-group"
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
    DisplayName        : RBAC Tutorial Group
    SignInName         :
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : Group
    CanDelegate        : False
    
    RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
    Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
    DisplayName        : RBAC Tutorial Group
    SignInName         :
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : Group
    CanDelegate        : False
    

    En la salida, puede ver que ambos roles, colaborador y lector, se han asignado al grupo 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) Acceso a la lista mediante Azure Portal

  1. Para ver el aspecto de las asignaciones de roles en Azure Portal, vea la hoja Control de acceso (IAM) de la suscripción.

    Role assignments for a group at subscription scope

  2. Vea la hoja Control de acceso (IAM) de un grupo de recursos.

    Role assignments for a group at resource group scope

Quitar acceso

Para quitar el acceso de usuarios, grupos y aplicaciones, use Remove-AzRoleAssignment para quitar una asignación de roles.

  1. Utilice el siguiente comando para quitar la asignación del rol de colaborador al grupo del ámbito del grupo de recursos.

    Remove-AzRoleAssignment -ObjectId $groupId `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
  2. Utilice el siguiente comando para quitar la asignación del rol de colaborador al grupo del ámbito de la suscripción.

    Remove-AzRoleAssignment -ObjectId $groupId `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    

Limpieza de recursos

Para limpiar los recursos creados por este tutorial puede eliminar tanto el grupo como el grupo de recursos.

  1. Elimine el grupo de recursos con 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"):
    
  2. Cuando se le pida confirmación, escriba Y. Tardará unos segundos en eliminarse.

  3. Elimine el grupo mediante el comando Remove-MgGroup.

    Remove-MgGroup -GroupID $groupId
    

    Si recibe un error al intentar eliminar el grupo, también puede eliminarlo en el portal.

Pasos siguientes