Tutorial: Conceder a um usuário 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 utilizador 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 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
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. 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 usuários no Microsoft Entra ID (ou ter um usuário existente)
- Azure Cloud Shell
- Microsoft Graph PowerShell SDK
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 |
---|---|---|
User (Utilizador do Tutorial do RBAC) |
Leitor | Subscrição |
User (Utilizador do Tutorial do RBAC) |
Contribuinte | Grupo de recursos (rbac-tutorial-resource-group) |
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.
No Azure Cloud Shell, crie uma palavra-passe que esteja em conformidade com os seus requisitos de complexidade de palavra-passe.
$PasswordProfile = @{ Password = "<Password>" }
Crie um novo usuário para 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
Utilize um grupo de recursos para mostrar como atribuir uma função num âmbito do grupo de recursos.
Obtenha uma lista de locais de região usando o comando Get-AzLocation .
Get-AzLocation | select Location
Selecione uma localização perto de si e atribua-a a uma variável.
$location = "westus"
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 usuário, 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.
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
Guarde o âmbito da subscrição numa variável.
$subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
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
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
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
No resultado, pode ver que a função de Leitor foi atribuída ao Utilizador do Tutorial do RBAC no âmbito da subscrição.
Para verificar o acesso para o 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
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
Para ver as atribuições de funções, aceda ao portal do Azure, veja o painel Controlo de acesso (IAM) para a subscrição.
Veja o painel Controlo de acesso (IAM) para o grupo de recursos.
Remover o acesso
Para remover o acesso de usuários, grupos e aplicativos, use Remove-AzRoleAssignment para remover uma atribuição de função.
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"
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
Clean up resources (Limpar recursos)
Para limpar os recursos criados por este tutorial, elimine o grupo de recursos e o utilizador.
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"):
Quando solicitado a confirmar, digite Y. Levará alguns segundos para excluir.
Exclua o usuário usando o comando Remove-MgUser .
$User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'" Remove-MgUser -UserId $User.Id