Conceder permissões de usuário para políticas específicas do laboratório
Artigo
Visão geral
Este artigo ilustra como usar o PowerShell para conceder aos usuários permissões para uma determinada política de laboratório. Dessa forma, as permissões podem ser aplicadas com base nas necessidades de cada usuário. Por exemplo, talvez você queira conceder a um usuário específico a capacidade de alterar as configurações de política de VM, mas não as políticas de custo.
Políticas como recursos
Conforme discutido no artigo RBAC (controle de acesso baseado em função) do Azure, o RBAC permite o gerenciamento refinado do acesso dos recursos do Azure. Com o RBAC do Azure, você pode separar as tarefas de sua equipe de DevOps e conceder apenas o acesso necessário para que os usuários façam suas atividades.
No DevTest Labs, uma política é um tipo de recurso que habilita a ação Microsoft.DevTestLab/labs/policySets/policies/ do RBAC do Azure. Cada política do laboratório é um recurso do tipo de recurso Política, que pode ser atribuído a uma função do Azure como escopo.
Por exemplo, para conceder a permissão de leitura/gravação aos usuários para a política Tamanhos de VM permitidos, você criaria uma função personalizada que funcionasse com a ação Microsoft.DevTestLab/labs/policySets/policies/ e atribuiria essa função personalizada aos usuários adequados no escopo de Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab.
Depois de configurar os cmdlets do Azure PowerShell, você pode executar as seguintes tarefas:
Listar todas as operações/ações para um provedor de recursos
Listar ações em uma função específica:
Criar uma função personalizada
O seguinte script do PowerShell apresenta exemplos de como executar essas tarefas:
# List all the operations/actions for a resource provider.
Get-AzProviderOperation -OperationSearchString "Microsoft.DevTestLab/*"
# List actions in a particular role.
(Get-AzRoleDefinition "DevTest Labs User").Actions
# Create custom role.
$policyRoleDef = (Get-AzRoleDefinition "DevTest Labs User")
$policyRoleDef.Id = $null
$policyRoleDef.Name = "Policy Contributor"
$policyRoleDef.IsCustom = $true
$policyRoleDef.AssignableScopes.Clear()
$policyRoleDef.AssignableScopes.Add("/subscriptions/<SubscriptionID> ")
$policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/policySets/policies/*")
$policyRoleDef = (New-AzRoleDefinition -Role $policyRoleDef)
Atribuir permissões a um usuário para uma política específica usando funções personalizadas
Depois de definir suas funções personalizadas, você pode atribuí-las aos usuários. Para atribuir uma função personalizada a um usuário, você deve primeiro obter o ObjectId que representa esse usuário. Para isso, use o cmdlet Get-AzADUser.
No exemplo a seguir, a ObjectId do usuário SomeUser é aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb.
Depois que o usuário tiver o ObjectId e houver um nome de função personalizado, será possível atribuir essa função ao usuário com o cmdlet New-AzRoleAssignment:
Demonstrar os recursos do Microsoft Entra ID para modernizar as soluções de identidade, implementar soluções híbridas e implementar a governança de identidade.