Tutorial: Conceder a um grupo acesso aos recursos do Azure usando o Azure PowerShell

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

Neste tutorial, irá aprender a:

  • Conceder acesso a um grupo 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

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar 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:

Atribuições de funções

No RBAC do Azure, para conceder acesso, você cria uma atribuição de função. 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 da função Âmbito
Agrupar
(Grupo do Tutorial do RBAC)
Leitor Subscrição
Agrupar
(Grupo do Tutorial do RBAC)
Contribuinte Grupo de recursos
(rbac-tutorial-resource-group)

Role assignments for a group

Criar um grupo

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

  • No Azure Cloud Shell, crie um novo grupo usando o 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                   {}
    

Se você não tiver permissões para criar grupos, experimente o Tutorial: Conceder a um usuário acesso aos recursos do Azure usando o Azure PowerShell .

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 de 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. 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 conceder acesso ao grupo, use o comando New-AzRoleAssignment para atribuir uma função. Tem de especificar o principal de segurança, a definição de função e o âmbito.

  1. Obtenha a ID do objeto do grupo usando o 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 o ID do objeto de grupo numa variável.

    $groupId = "11111111-1111-1111-1111-111111111111"
    
  3. 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
    
  4. Guarde o âmbito da subscrição numa variável.

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

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

Listar o acesso

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

    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
    

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

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

    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
    

    No resultado, pode ver que as funções de Contribuidor e de Leitor foram atribuídas ao Grupo 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.

    Role assignments for a group at subscription scope

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

    Role assignments for a group at resource group scope

Remover o acesso

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

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

    Remove-AzRoleAssignment -ObjectId $groupId `
      -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 grupo de recursos.

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

Clean up resources (Limpar recursos)

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

  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 grupo usando o comando Remove-MgGroup .

    Remove-MgGroup -GroupID $groupId
    

    Se receber um erro ao tentar eliminar o grupo, também pode eliminar o grupo no portal.

Próximos passos