Tutorial: Conceder a um grupo 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 grupo 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 grupo 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. Para começar, confira 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
Neste tutorial, você precisará de:
- Permissões para criar grupos no Microsoft Entra ID (ou ter um grupo existente)
- Azure Cloud Shell
- SDK do PowerShell do Microsoft Graph
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 |
---|---|---|
Agrupar (Grupo de Tutorial de RBAC) |
Leitor | Subscription |
Agrupar (Grupo de Tutorial de RBAC) |
Colaborador | Resource group (rbac-tutorial-resource-group) |
Criar um grupo
Para atribuir uma função, você precisa de um usuário, grupo ou entidade de serviço. Se você ainda não tiver um grupo, crie 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, poderá experimentar o Tutorial: Conceder a um usuário acesso aos recursos do Azure usando o Azure PowerShell em vez disso.
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.
Obtenha uma lista de locais de região usando o comando Get-AzLocation.
Get-AzLocation | select Location
Selecione um local perto de 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 $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, você usa 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 de 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 {}
Salve a ID de objeto do grupo em uma variável.
$groupId = "11111111-1111-1111-1111-111111111111"
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
Salve o escopo da assinatura em uma variável.
$subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
Atribua a função Leitor ao grupo no escopo da assinatura.
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
Atribuir a função Colaborador ao grupo no escopo 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
Relacionar acesso
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
Na saída, você pode ver que a função de Leitor foi atribuída ao Grupo 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 -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
Na saída, você pode ver que a função de Leitor e Colaborador foram atribuídas ao Grupo 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
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.
Veja a folha Controle de acesso (IAM) no grupo de recursos.
Remover acesso
Para remover o acesso para usuários, grupos e aplicativos, use Remove-AzRoleAssignment para remover a atribuição de função.
Use o comando a seguir para remover a atribuição de função de Colaborador do grupo no escopo do grupo de recursos.
Remove-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
Use o comando a seguir para remover a atribuição de função de Leitor do grupo no escopo da assinatura.
Remove-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Reader" ` -Scope $subScope
Limpar os recursos
Para limpar os recursos criados por este tutorial, exclua o grupo de recursos e o grupo.
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 grupo usando o comando Remove-MgGroup.
Remove-MgGroup -GroupID $groupId
Se você receber um erro ao tentar excluir o grupo, também poderá excluir o grupo no portal.