Gerenciar as funções da entidades serviço
Para restringir o acesso aos seus recursos do Azure, você pode utilizar uma entidade de serviço para gerenciar as atribuições de função. Cada função fornece diferentes permissões permitidas pelo usuário ao acessar os recursos do Azure. Esta etapa no tutorial explica como criar e remover funções de entidade de serviço.
A CLI do Azure oferece os seguintes comandos para gerenciar as atribuições de função:
Criar ou remover uma atribuição de função
A função de Colaborador tem permissões completas para ler e gravar em uma conta do Azure. A função Leitor é mais restritiva com acesso somente leitura. Sempre use o princípio do privilégio mínimo. Para obter uma lista completa das funções disponíveis no RBAC do Azure, confira Funções internas do Azure.
Adicionar uma função não restringe as permissões atribuídas anteriormente. Esse exemplo adiciona a função Leitor e exclui a função Colaborador:
az role assignment create --assignee myServicePrincipalID \
--role Reader \
--scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
az role assignment delete --assignee myServicePrincipalID \
--role Contributor \
--scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Console de Saída:
{
"condition": null,
"conditionVersion": null,
"createdBy": null,
"createdOn": "yyyy-mm-ddT00:00:00.000000+00:00",
"delegatedManagedIdentityResourceId": null,
"description": null,
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000",
"principalId": "00000000-0000-0000-0000-000000000000",
"principalType": "ServicePrincipal",
"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroupName",
"type": "Microsoft.Authorization/roleAssignments",
"updatedBy": "00000000-0000-0000-0000-000000000000",
"updatedOn": "yyyy-mm-ddT00:00:00.000000+00:00"
}
Como obter um valor para o parâmetro de escopo
Uma dúvida que você pode ter é "Como fazer para saber o valor do parâmetro --scope
?" A resposta é localizar e copiar a ID de recurso do recurso do Azure que sua entidade de serviço precisa acessar. Essas informações geralmente são encontradas na página Propriedades ou Pontos de extremidade do portal do Azure de cada recurso. Estes são exemplos comuns de --scope
, mas dependem da ID de recurso para obter um formato e um valor reais.
Escopo | Exemplo |
---|---|
Subscription | /subscriptions/mySubscriptionID |
Grupo de recursos | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName |
Máquina virtual | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname |
Serviço de arquivo de conta de armazenamento | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default |
Fábrica de dados | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName |
Para obter mais exemplos de escopo, confira Entender o escopo do RBAC do Azure.
Verificar alterações
Para verificar as alterações, liste as funções atribuídas:
# list all role assignments for the current subscription
az role assignment list ---output table
# list role assignments for a user
az role assignment list --assignee myUserName@contoso.com
# list role assignments for a subscription
az role assignment list --subscription mySubscriptionID
Você também pode entrar no portal do Azure e atribuir manualmente a função à entidade de serviço no menu de controle de acesso (IAM). Para obter mais exemplos sobre como listar atribuições de função, confira Listar atribuições de função do Azure usando a CLI do Azure.
Próximas etapas
Agora que você aprendeu a gerenciar suas funções de entidade de serviço, vá para a próxima etapa para saber como usar entidades de serviço para criar um recurso.