Tutorial: Conceder a um usuário acesso aos recursos do Azure usando o Azure PowerShell

O Azure RBAC (controle de acesso baseado em função do Azure) é a maneira usada para gerenciar o acesso aos recursos no Azure. Neste tutorial, você concede acesso a um usuário para exibir tudo em uma assinatura e gerenciar tudo em um grupo de recursos usando o Azure PowerShell.

Neste tutorial, você aprenderá como:

  • Conceder acesso a um usuário em escopos diferentes
  • Relacionar acesso
  • Remover acesso

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

Neste tutorial, você precisará de:

Atribuições de função

No RBAC do Azure, para conceder acesso, você cria uma atribuição de função. Uma atribuição de função consiste em três elementos: entidade de segurança, definição de função e escopo. Aqui estão as duas atribuições de função que você executará neste tutorial:

Entidade de segurança Definição de função Escopo
Usuário
(Usuário de Tutorial de RBAC)
Leitor Subscription
Usuário
(Usuário de Tutorial de RBAC)
Colaborador Resource group
(rbac-tutorial-resource-group)

Role assignments for a user

Criar um usuário

Para atribuir uma função, você precisa de um usuário, grupo ou entidade de serviço. Se você ainda não tiver um usuário, crie um.

  1. No Azure Cloud Shell, crie uma senha que esteja em conformidade com seus requisitos de complexidade de senha.

    $PasswordProfile = @{ Password = "<Password>" }
    
  2. Crie um novo usuário para o seu domínio usando o 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 11111111-1111-1111-1111-111111111111      rbacuser@example.com
    

Criar um grupo de recursos

Você usa um grupo de recursos para mostrar como atribuir uma função em um escopo do grupo de recursos.

  1. Obtenha uma lista de locais de região usando o comando Get-AzLocation.

    Get-AzLocation | select Location
    
  2. Selecione um local perto de você e atribua-o a uma variável.

    $location = "westus"
    
  3. Crie um novo grupo de recursos usando o 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 acesso

Para permitir acesso ao usuário, use o comando New-AzRoleAssignment para atribuir uma função. Você deve especificar a entidade de segurança, a definição de função e o escopo.

  1. Obtenha a ID de sua assinatura usando o comando Get-AzSubscription.

    Get-AzSubscription
    
    Name     : Pay-As-You-Go
    Id       : 00000000-0000-0000-0000-000000000000
    TenantId : 22222222-2222-2222-2222-222222222222
    State    : Enabled
    
  2. Salve o escopo da assinatura em uma variável.

    $subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
    
  3. Atribua a função Leitor ao usuário no escopo da assinatura.

    New-AzRoleAssignment -SignInName rbacuser@example.com `
      -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 User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : User
    CanDelegate        : False
    
  4. Atribuir a função Colaborador ao usuário no escopo do grupo de recursos.

    New-AzRoleAssignment -SignInName rbacuser@example.com `
      -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 User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : User
    CanDelegate        : False
    

Relacionar acesso

  1. Para verificar o acesso para a assinatura, use o comando Get-AzRoleAssignment para listar as atribuições de função.

    Get-AzRoleAssignment -SignInName rbacuser@example.com -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 User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : User
    CanDelegate        : False
    

    Na saída, você pode ver que a função de Leitor foi atribuída ao Usuário do Tutorial de RBAC no escopo da assinatura.

  2. Para verificar o acesso ao grupo de recursos, use o comando Get-AzRoleAssignment para listar as atribuições de função.

    Get-AzRoleAssignment -SignInName rbacuser@example.com -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 User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Contributor
    RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : User
    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 User
    SignInName         : rbacuser@example.com
    RoleDefinitionName : Reader
    RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
    ObjectId           : 11111111-1111-1111-1111-111111111111
    ObjectType         : User
    CanDelegate        : False
    

    Na saída, você pode ver que a função de Leitor e Colaborador foram atribuídas ao Usuário do Tutorial de RBAC. A função de Colaborador está no escopo rbac-tutorial-resource-group e a função de Leitor é herdada no escopo da assinatura.

(Opcional) Acesso à lista usando o Portal do Azure

  1. Para ver como as atribuições de função são exibidas no portal do Azure, veja a folha Controle de acesso (IAM) na assinatura.

    Role assignments for a user at subscription scope

  2. Veja a folha Controle de acesso (IAM) no grupo de recursos.

    Role assignments for a user at resource group scope

Remover acesso

Para remover o acesso para usuários, grupos e aplicativos, use Remove-AzRoleAssignment para remover a atribuição de função.

  1. Use o comando a seguir para remover a atribuição de função de Colaborador do usuário no escopo do grupo de recursos.

    Remove-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
  2. Use o comando a seguir para remover a atribuição de função de Leitor do usuário no escopo da assinatura.

    Remove-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Reader" `
      -Scope $subScope
    

Limpar os recursos

Para limpar os recursos criados por este tutorial, exclua o grupo de recursos e o usuário.

  1. Exclua o grupo de recursos usando o 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. Quando solicitado a confirmar, digite Y. Levará alguns segundos para excluir.

  3. Exclua o usuário usando o comando Remove-MgUser.

    $User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'"
    Remove-MgUser -UserId $User.Id
    

Próximas etapas