Tutorial: Conceder a um utilizador acesso aos recursos da Azure utilizando Azure PowerShell

O controlo de acesso baseado em funções (Azure RBAC) é a forma como gere o acesso aos recursos do Azure. Neste tutorial irá conceder acesso a um utilizador para ver tudo numa subscrição e gerir tudo num grupo de recursos com o Azure PowerShell.

Neste tutorial, ficará a saber como:

  • Conceder acesso a um utilizador de âmbitos diferentes
  • Listar o acesso
  • Remover o acesso

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

Nota

Para interagir com o Azure, recomenda-se o módulo Azure Az PowerShell. Consulte a instalação Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

Para concluir este tutorial, irá precisar de:

  • Permissões para criar utilizadores no Azure Active Directory (ou ter um utilizador existente)
  • Azure Cloud Shell

Atribuições de funções

No Azure RBAC, para conceder acesso, cria-se uma tarefa de papel. Uma atribuição de função é composta por três elementos: principal de segurança, definição de função e âmbito. Seguem-se as duas atribuições de funções que vai realizar neste tutorial:

Principal de segurança Definição de função Âmbito
Utilizador
(Utilizador do Tutorial do RBAC)
Leitor Subscrição
Utilizador
(Utilizador do Tutorial do RBAC)
Contribuinte Grupo de recursos
(rbac-tutorial-resource-group)

Atribuições de funções para um utilizador

Criar um utilizador

Para atribuir uma função, precisa de um utilizador, um grupo ou um principal de serviço. Se ainda não tiver um utilizador, pode criar um.

  1. No Azure Cloud Shell, crie uma palavra-passe que esteja em conformidade com os seus requisitos de complexidade de palavra-passe.

    $PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
    $PasswordProfile.Password = "Password"
    
  2. Crie um novo utilizador de domínio com o comando New-AzureADUser.

    New-AzureADUser -DisplayName "RBAC Tutorial User" -PasswordProfile $PasswordProfile `
      -UserPrincipalName "rbacuser@example.com" -AccountEnabled $true -MailNickName "rbacuser"
    
    ObjectId                             DisplayName        UserPrincipalName    UserType
    --------                             -----------        -----------------    --------
    11111111-1111-1111-1111-111111111111 RBAC Tutorial User rbacuser@example.com Member
    

Criar um grupo de recursos

Utilize um grupo de recursos para mostrar como atribuir uma função num âmbito do grupo de recursos.

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

    Get-AzLocation | select Location
    
  2. Selecione uma localização perto de si e atribua-a a uma variável.

    $location = "westus"
    
  3. Criar um novo grupo de recursos utilizando 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 conceder acesso ao utilizador, utiliza o comando Desatribuição de Novas AzRole para atribuir uma função. Tem de especificar o principal de segurança, a definição de função e o âmbito.

  1. Obtenha o ID da sua subscrição utilizando 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. Guarde o âmbito da subscrição numa variável.

    $subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
    
  3. Atribua a função Leitor ao utilizador no âmbito da subscrição.

    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. Atribua a função Contribuidor ao utilizador no âmbito 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
    

Listar o acesso

  1. Para verificar o acesso à subscrição, utilize o comando Get-AzRoleAssignment para listar as atribuições de funções.

    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
    

    No resultado, pode ver que a função de Leitor foi atribuída ao Utilizador do Tutorial do RBAC no âmbito da subscrição.

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

    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
    

    No resultado, pode ver que as funções de Contribuidor e de Leitor foram atribuídas ao Utilizador do Tutorial do RBAC. A função de Contribuidor está no âmbito do rbac-tutorial-resource-group e a função de Leitor é herdada no âmbito da subscrição.

(Opcional) Listar acesso com o Portal do Azure

  1. Para ver as atribuições de funções, aceda ao portal do Azure, veja o painel Controlo de acesso (IAM) para a subscrição.

    Atribuições de funções para um utilizador no âmbito da subscrição

  2. Veja o painel Controlo de acesso (IAM) para o grupo de recursos.

    Atribuições de funções para um utilizador no âmbito do grupo de recursos

Remover o acesso

Para remover o acesso aos utilizadores, grupos e aplicações, utilize a Remoção-AzRoleAssignment para remover uma atribuição de funções.

  1. Utilize o seguinte comando para remover a atribuição da função de Contribuidor para o utilizador no âmbito do grupo de recursos.

    Remove-AzRoleAssignment -SignInName rbacuser@example.com `
      -RoleDefinitionName "Contributor" `
      -ResourceGroupName "rbac-tutorial-resource-group"
    
  2. Utilize o seguinte comando para remover a atribuição da função de Leitor para a subscrição do utilizador de recursos.

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

Limpar os recursos

Para limpar os recursos criados por este tutorial, elimine o grupo de recursos e o utilizador.

  1. Elimine o grupo de recursos utilizando 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 lhe pedirem para confirmar, escreva Y. Levará alguns segundos para apagar.

  3. Elimine o utilizador com o comando Remove-AzureADUser.

    Remove-AzureADUser -ObjectId "rbacuser@example.com"
    

Passos seguintes