Funções personalizadas para recursos do AzureCustom roles for Azure resources

Se o funções incorporadas para recursos do Azure não atenderem às necessidades específicas da sua organização, pode criar suas próprias funções personalizadas.If the built-in roles for Azure resources don't meet the specific needs of your organization, you can create your own custom roles. Tal como funções incorporadas, pode atribuir funções personalizadas a utilizadores, grupos e principais de serviço na subscrição, grupo de recursos e os âmbitos de recursos.Just like built-in roles, you can assign custom roles to users, groups, and service principals at subscription, resource group, and resource scopes.

Funções personalizadas são armazenadas num diretório do Azure Active Directory (Azure AD) e podem ser partilhadas entre subscrições.Custom roles are stored in an Azure Active Directory (Azure AD) directory and can be shared across subscriptions. Cada diretório pode ter até 5000 funções personalizadas.Each directory can have up to 5000 custom roles. (para clouds especializadas, como o Azure Government, o Azure Alemanha e o Azure China 21Vianet, o limite é de 2000 funções personalizadas). Funções personalizadas podem ser criadas com o Azure PowerShell, CLI do Azure ou a API REST.(For specialized clouds, such as Azure Government, Azure Germany, and Azure China 21Vianet, the limit is 2000 custom roles.) Custom roles can be created using Azure PowerShell, Azure CLI, or the REST API.

Exemplo de função personalizadaCustom role example

A seguir mostra uma função personalizada aparência tal como apresentado no formato JSON.The following shows what a custom role looks like as displayed in JSON format. Esta função personalizada pode ser utilizada para monitorizar e reiniciar as máquinas virtuais.This custom role can be used for monitoring and restarting virtual machines.

{
  "Name": "Virtual Machine Operator",
  "Id": "88888888-8888-8888-8888-888888888888",
  "IsCustom": true,
  "Description": "Can monitor and restart virtual machines.",
  "Actions": [
    "Microsoft.Storage/*/read",
    "Microsoft.Network/*/read",
    "Microsoft.Compute/*/read",
    "Microsoft.Compute/virtualMachines/start/action",
    "Microsoft.Compute/virtualMachines/restart/action",
    "Microsoft.Authorization/*/read",
    "Microsoft.ResourceHealth/availabilityStatuses/read",
    "Microsoft.Resources/subscriptions/resourceGroups/read",
    "Microsoft.Insights/alertRules/*",
    "Microsoft.Insights/diagnosticSettings/*",
    "Microsoft.Support/*"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}",
    "/subscriptions/{subscriptionId3}"
  ]
}

Quando cria uma função personalizada, ele aparece no portal do Azure com um ícone de recurso de cor de laranja.When you create a custom role, it appears in the Azure portal with an orange resource icon.

Ícone de função personalizada

Passos para criar uma função personalizadaSteps to create a custom role

  1. Decidir como pretende criar a função personalizadaDecide how you want to create the custom role

    Pode criar funções personalizadas usando do Azure PowerShell, CLI do Azure, ou o REST API.You can create custom roles using Azure PowerShell, Azure CLI, or the REST API.

  2. Determinar as permissões que necessáriasDetermine the permissions you need

    Quando cria uma função personalizada, precisa saber o recurso de operações de fornecedor que estão disponíveis para definir as suas permissões.When you create a custom role, you need to know the resource provider operations that are available to define your permissions. Para ver a lista de operações, consulte a operações de fornecedor de recursos do Azure Resource Manager.To view the list of operations, see the Azure Resource Manager resource provider operations. Adicionará as operações para o Actions ou NotActions propriedades do definição de função.You will add the operations to the Actions or NotActions properties of the role definition. Se tiver de operações de dados, irá adicioná-los para o DataActions ou NotDataActions propriedades.If you have data operations, you will add those to the DataActions or NotDataActions properties.

  3. Criar a função personalizadaCreate the custom role

    Normalmente, começar com uma função incorporada existente e, em seguida, modificá-lo para as suas necessidades.Typically, you start with an existing built-in role and then modify it for your needs. Em seguida, utilizar o New-AzRoleDefinition ou criação da definição de função de az comandos para criar a função personalizada.Then you use the New-AzRoleDefinition or az role definition create commands to create the custom role. Para criar uma função personalizada, tem de ter o Microsoft.Authorization/roleDefinitions/write permissão em todos os AssignableScopes, tal como proprietário ou administrador de acesso de utilizador.To create a custom role, you must have the Microsoft.Authorization/roleDefinitions/write permission on all AssignableScopes, such as Owner or User Access Administrator.

  4. Testar a função personalizadaTest the custom role

    Assim que tiver a função personalizada, precisa testá-lo para verificar se funciona conforme o esperado.Once you have your custom role, you have to test it to verify that it works as you expect. Se precisar de fazer ajustes mais tarde, pode atualizar a função personalizada.If you need to make adjustments later, you can update the custom role.

Para obter um tutorial passo a passo sobre como criar uma função personalizada, consulte Tutorial: Criar uma função personalizada com o Azure PowerShell ou Tutorial: Criar uma função personalizada com a CLI do Azure.For a step-by-step tutorial on how to create a custom role, see Tutorial: Create a custom role using Azure PowerShell or Tutorial: Create a custom role using Azure CLI.

Propriedades de função personalizadaCustom role properties

Uma função personalizada tem as seguintes propriedades.A custom role has the following properties.

PropriedadeProperty NecessárioRequired TipoType DescriçãoDescription
Name SimYes StringString O nome a apresentar da função personalizada.The display name of the custom role. Enquanto uma definição de função é um recurso de nível de assinatura, uma definição de função pode ser utilizada em várias subscrições que partilham o mesmo diretório do Azure AD.While a role definition is a subscription-level resource, a role definition can be used in multiple subscriptions that share the same Azure AD directory. Este nome a apresentar tem de ser exclusivo no âmbito do diretório do Azure AD.This display name must be unique at the scope of the Azure AD directory. Pode incluir letras, números, espaços e carateres especiais.Can include letters, numbers, spaces, and special characters. Número máximo de carateres é 128.Maximum number of characters is 128.
Id SimYes StringString O ID exclusivo da função personalizada.The unique ID of the custom role. Para o Azure PowerShell e CLI do Azure, este ID é gerado automaticamente quando cria uma nova função.For Azure PowerShell and Azure CLI, this ID is automatically generated when you create a new role.
IsCustom SimYes StringString Indica se se trata de uma função personalizada.Indicates whether this is a custom role. Definido como true para funções personalizadas.Set to true for custom roles.
Description SimYes StringString A descrição da função personalizada.The description of the custom role. Pode incluir letras, números, espaços e carateres especiais.Can include letters, numbers, spaces, and special characters. Número máximo de carateres é de 1024.Maximum number of characters is 1024.
Actions SimYes String[]String[] Uma matriz de cadeias de caracteres que especifica as operações de gestão que permite que a função a ser executada.An array of strings that specifies the management operations that the role allows to be performed. Para obter mais informações, consulte ações.For more information, see Actions.
NotActions NãoNo String[]String[] Uma matriz de cadeias de caracteres que especifica as operações de gestão que são excluídas da permitidos Actions.An array of strings that specifies the management operations that are excluded from the allowed Actions. Para obter mais informações, consulte NotActions.For more information, see NotActions.
DataActions NãoNo String[]String[] Uma matriz de cadeias de caracteres que especifica as operações de dados que permite que a função a ser executada aos seus dados dentro desse objeto.An array of strings that specifies the data operations that the role allows to be performed to your data within that object. Para obter mais informações, consulte DataActions.For more information, see DataActions.
NotDataActions NãoNo String[]String[] Uma matriz de cadeias de caracteres que especifica as operações de dados que são excluídas da permitidos DataActions.An array of strings that specifies the data operations that are excluded from the allowed DataActions. Para obter mais informações, consulte NotDataActions.For more information, see NotDataActions.
AssignableScopes SimYes String[]String[] Uma matriz de cadeias de caracteres que especifica os âmbitos que a função personalizada está disponível para atribuição.An array of strings that specifies the scopes that the custom role is available for assignment. Para funções personalizadas, atualmente não é possível definir AssignableScopes para o âmbito de raiz ("/") ou um âmbito de grupo de gestão.For custom roles, you currently cannot set AssignableScopes to the root scope ("/") or a management group scope. Para obter mais informações, consulte AssignableScopes e organizar os recursos com grupos de gestão do Azure.For more information, see AssignableScopes and Organize your resources with Azure management groups.

Quem pode criar, eliminar, atualizar ou ver uma função personalizadaWho can create, delete, update, or view a custom role

Tal como funções incorporadas, o AssignableScopes propriedade especifica os âmbitos que a função está disponível para atribuição.Just like built-in roles, the AssignableScopes property specifies the scopes that the role is available for assignment. O AssignableScopes propriedade para uma função personalizada também controla quem pode criar, eliminar, atualizar ou ver a função personalizada.The AssignableScopes property for a custom role also controls who can create, delete, update, or view the custom role.

TarefaTask OperaçãoOperation DescriçãoDescription
Criar/eliminar uma função personalizadaCreate/delete a custom role Microsoft.Authorization/ roleDefinitions/write Os utilizadores que recebem esta operação em todos os AssignableScopes da função personalizada pode criar (ou eliminar) funções personalizadas para utilização nesses âmbitos.Users that are granted this operation on all the AssignableScopes of the custom role can create (or delete) custom roles for use in those scopes. Por exemplo, proprietários e administradores do acesso de utilizador de subscrições, grupos de recursos e recursos.For example, Owners and User Access Administrators of subscriptions, resource groups, and resources.
Atualizar uma função personalizadaUpdate a custom role Microsoft.Authorization/ roleDefinitions/write Os utilizadores que recebem esta operação em todos os AssignableScopes da função personalizada, pode atualizar funções personalizadas nesses âmbitos.Users that are granted this operation on all the AssignableScopes of the custom role can update custom roles in those scopes. Por exemplo, proprietários e administradores do acesso de utilizador de subscrições, grupos de recursos e recursos.For example, Owners and User Access Administrators of subscriptions, resource groups, and resources.
Ver uma função personalizadaView a custom role Microsoft.Authorization/ roleDefinitions/read Os utilizadores que são concedidos esta operação com um âmbito podem ver as funções personalizadas que estão disponíveis para atribuição nesse âmbito.Users that are granted this operation at a scope can view the custom roles that are available for assignment at that scope. Todas as funções incorporadas que funções personalizadas estar disponível para atribuição.All built-in roles allow custom roles to be available for assignment.

Passos SeguintesNext steps