Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O RBAC (controle de acesso baseado em função) do Azure é a maneira como você gerencia o acesso aos recursos do Azure. Neste tutorial, você concede a um usuário acesso 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 do Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Pré-requisitos
Para concluir este tutorial, você 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çã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 | Scope |
|---|---|---|
| Utilizador (Usuário do Tutorial do RBAC) |
Reader | Subscription |
| Utilizador (Usuário do Tutorial do RBAC) |
Contributor | Grupo de recursos (rbac-tutorial-resource-group) |
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, poderá criar um.
No Azure Cloud Shell, crie uma senha que esteja em conformidade com seus requisitos de complexidade de senha.
$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 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb rbacuser@example.com
Criar um grupo de recursos
Você utiliza um grupo de recursos para demonstrar como atribuir uma função no escopo de um grupo de recursos.
Obtenha uma lista de locais de região usando o comando Get-AzLocation .
Get-AzLocation | select LocationSelecione um local próximo a você e atribua-o 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 $___locationResourceGroupName : rbac-tutorial-resource-group Location : westus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group
Conceder acesso
Para conceder 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.
Obtenha a ID da sua assinatura usando o comando Get-AzSubscription .
Get-AzSubscriptionName : Pay-As-You-Go Id : 00000000-0000-0000-0000-000000000000 TenantId : aaaabbbb-0000-cccc-1111-dddd2222eeee State : EnabledSalve o escopo da assinatura em uma variável.
$subScope = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"Atribua a função Leitor ao usuário no escopo da assinatura.
New-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Reader" ` -Scope $subScopeRoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : FalseAtribua 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : False
Relacionar acesso
Para verificar o acesso à assinatura, use o comando Get-AzRoleAssignment para listar as atribuições de função.
Get-AzRoleAssignment -SignInName rbacuser@example.com -Scope $subScopeRoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : FalseNa 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.
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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : False RoleAssignmentId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/roleAssignments/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0 Scope : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb ObjectType : User CanDelegate : FalseNa saída, você pode ver que as funções Colaborador e Leitor foram atribuídas ao Usuário do Tutorial do 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) Listar acesso usando o Portal do Azure
Para ver como as atribuições de função aparecem no portal do Azure, visualize o painel Controle de Acesso (IAM) da assinatura.
Exiba o painel controle de acesso (IAM) do grupo de recursos.
Remover acesso
Para remover o acesso de usuários, grupos e aplicativos, use Remove-AzRoleAssignment para remover uma atribuição de função.
Use o comando a seguir para remover a atribuição de função Colaborador para o usuário no escopo do grupo de recursos.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"Use o comando a seguir para remover a atribuição de função Leitor para o 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.
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 ser excluído.
Exclua o usuário usando o comando Remove-MgUser .
$User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'" Remove-MgUser -UserId $User.Id