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

Se as funções internas dos recursos do Azure não atenderem às necessidades específicas de sua organização, você poderá 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. Assim como as funções internas, é possível atribuir funções personalizadas a usuários, grupos e entidades de serviço na assinatura, no grupo de recursos e nos escopos de recurso.Just like built-in roles, you can assign custom roles to users, groups, and service principals at subscription, resource group, and resource scopes.

As funções personalizadas são armazenadas em um diretório do Azure AD (Azure Active Directory) e podem ser compartilhadas entre assinaturas.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 nuvens especializados, como o Azure Governamental, Azure Alemanha e Azure China 21Vianet, o limite é de 2000 funções personalizadas.) É possível criar funções personalizadas usando o Azure PowerShell, a 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 como uma função personalizada se parece, conforme exibida no formato JSON.The following shows what a custom role looks like as displayed in JSON format. Essa função personalizada pode ser usada para monitorar e reiniciar 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 você cria uma função personalizada, ela aparece no portal do Azure com um ícone de recurso laranja.When you create a custom role, it appears in the Azure portal with an orange resource icon.

Ícone personalizado da função

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

  1. Decida como você deseja criar a função personalizadaDecide how you want to create the custom role

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

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

    Ao criar uma função personalizada, você precisa conhecer as operações do provedor de recursos que estão disponíveis para definir 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 exibir a lista de operações, consulte o operações de provedor de recursos do Azure Resource Manager.To view the list of operations, see the Azure Resource Manager resource provider operations. Você adicionará as operações para o Actions ou NotActions propriedades da definição de função.You will add the operations to the Actions or NotActions properties of the role definition. Se você tiver operações de dados, você 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, você começa com uma função interna existente e depois a modifica conforme suas necessidades.Typically, you start with an existing built-in role and then modify it for your needs. Depois, use os comandos New-AzRoleDefinition ou az role definition create 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, você precisa ter a permissão Microsoft.Authorization/roleDefinitions/write em todo AssignableScopes, como Proprietário ou Administrador de Acesso de Usuário.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

    Quando tiver sua função personalizada, será necessário testá-la para verificar se funciona como o esperado.Once you have your custom role, you have to test it to verify that it works as you expect. Se você precisar fazer ajustes mais tarde, você 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, confira Tutorial: Criar uma função personalizada usando o Azure PowerShell ou Tutorial: Criar uma função personalizada usando 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 da função personalizadaCustom role properties

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

PropriedadeProperty ObrigatórioRequired TypeType DESCRIÇÃODescription
Name SimYes Cadeia de caracteresString O nome de exibição da função personalizada.The display name of the custom role. Embora a definição de função seja um recurso no nível da assinatura, ela pode ser usada em várias assinaturas que compartilham 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. Esse nome de exibição precisa ser exclusivo no escopo 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 caracteres especiais.Can include letters, numbers, spaces, and special characters. O número máximo de caracteres é 128.Maximum number of characters is 128.
Id SimYes Cadeia de caracteresString A ID exclusiva da função personalizada.The unique ID of the custom role. Para o Azure PowerShell e a CLI do Azure, essa ID é gerada automaticamente ao criar uma nova função.For Azure PowerShell and Azure CLI, this ID is automatically generated when you create a new role.
IsCustom SimYes Cadeia de caracteresString Indica se esta é uma função personalizada.Indicates whether this is a custom role. Defina como true para funções personalizadas.Set to true for custom roles.
Description SimYes Cadeia de caracteresString A descrição da função personalizada.The description of the custom role. Pode incluir letras, números, espaços e caracteres especiais.Can include letters, numbers, spaces, and special characters. O número máximo de caracteres é 1024.Maximum number of characters is 1024.
Actions SimYes String[]String[] Uma matriz de cadeias de caracteres que especifica as operações de gerenciamento permitidas pela função.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 gerenciamento que são excluídas do Actions permitido.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 permitidas pela função em 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 excluídas do DataActions permitido.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 escopos para os quais 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, você atualmente não é possível definir AssignableScopes para o escopo de raiz ("/") ou um escopo de grupo de gerenciamento.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 Organize seus recursos com grupos de gerenciamento do Azure.For more information, see AssignableScopes and Organize your resources with Azure management groups.

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

Assim como funções internas, a propriedade AssignableScopes especifica os escopos para os quais 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. A propriedade AssignableScopes de uma função personalizada também controla quem pode criar, excluir, atualizar ou exibir 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/excluir uma função personalizadaCreate/delete a custom role Microsoft.Authorization/ roleDefinitions/write Os usuários que recebem essa operação em todos os AssignableScopes da função personalizada podem criar (ou excluir) funções personalizadas para uso nesses escopos.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, os Proprietários e os Administradores de Acesso do Usuário das assinaturas, 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 usuários que recebem essa operação em todos os AssignableScopes da função personalizada podem atualizar as funções personalizadas nesses escopos.Users that are granted this operation on all the AssignableScopes of the custom role can update custom roles in those scopes. Por exemplo, os Proprietários e os Administradores de Acesso do Usuário das assinaturas, grupos de recursos e recursos.For example, Owners and User Access Administrators of subscriptions, resource groups, and resources.
Exibir uma função personalizadaView a custom role Microsoft.Authorization/ roleDefinitions/read Os usuários que recebem essa operação em um escopo podem exibir as funções personalizadas que estão disponíveis para atribuição nesse escopo.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 internas permitem que funções personalizadas estejam disponíveis para atribuição.All built-in roles allow custom roles to be available for assignment.

Próximas etapasNext steps