Compreender as definições de funções para recursos do AzureUnderstand role definitions for Azure resources

Se estiver a tentar entender como funciona uma função ou se estiver a criar sua própria função personalizada para recursos do Azure, é útil compreender como as funções são definidas.If you are trying to understand how a role works or if you are creating your own custom role for Azure resources, it's helpful to understand how roles are defined. Este artigo descreve os detalhes das definições de funções e fornece alguns exemplos.This article describes the details of role definitions and provides some examples.

Estrutura de definição de funçãoRole definition structure

Uma definição de função é uma coleção de permissões.A role definition is a collection of permissions. Por vezes é denominada apenas função.It's sometimes just called a role. Uma definição de função lista as operações que podem ser efetuadas, por exemplo, ler, escrever e eliminar.A role definition lists the operations that can be performed, such as read, write, and delete. Também pode listar as operações que não podem ser executadas ou operações relacionadas aos dados subjacentes.It can also list the operations that can't be performed or operations related to underlying data. Uma definição de função tem a seguinte estrutura:A role definition has the following structure:

Name
Id
IsCustom
Description
Actions []
NotActions []
DataActions []
NotDataActions []
AssignableScopes []

Operações são especificadas com cadeias de caracteres que tem o seguinte formato:Operations are specified with strings that have the following format:

  • {Company}.{ProviderName}/{resourceType}/{action}

O {action} parte de uma cadeia de operação Especifica o tipo de operações que pode executar num tipo de recurso.The {action} portion of an operation string specifies the type of operations you can perform on a resource type. Por exemplo, verá as seguintes subcadeias de carateres no {action}:For example, you will see the following substrings in {action}:

Subcadeia de açãoAction substring DescriçãoDescription
* O caráter universal concede acesso a todas as operações que corresponde à cadeia.The wildcard character grants access to all operations that match the string.
read Permite ler operações (GET).Enables read operations (GET).
write Permite escrever operações (PUT, POST e PATCH).Enables write operations (PUT, POST, and PATCH).
delete Permite elimina operações (eliminar).Enables delete operations (DELETE).

Aqui está o contribuinte definição de função no formato JSON.Here's the Contributor role definition in JSON format. O caráter universal (*) uma operação em Actions indica que o principal atribuído a esta função pode efetuar todas as ações ou em outras palavras, ele pode gerir tudo.The wildcard (*) operation under Actions indicates that the principal assigned to this role can perform all actions, or in other words, it can manage everything. Isso inclui ações definidas no futuro, o Azure adiciona novos tipos de recursos.This includes actions defined in the future, as Azure adds new resource types. As operações sob NotActions são subtraído Actions.The operations under NotActions are subtracted from Actions. No caso do contribuinte função, NotActions remove a capacidade desta função para gerir o acesso aos recursos e também atribuir acesso a recursos.In the case of the Contributor role, NotActions removes this role's ability to manage access to resources and also assign access to resources.

{
  "Name": "Contributor",
  "Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "IsCustom": false,
  "Description": "Lets you manage everything except access to resources.",
  "Actions": [
    "*"
  ],
  "NotActions": [
    "Microsoft.Authorization/*/Delete",
    "Microsoft.Authorization/*/Write",
    "Microsoft.Authorization/elevateAccess/Action"
  ],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/"
  ]
}

Operações de gestão e de dados (pré-visualização)Management and data operations (Preview)

Controlo de acesso baseado em funções para operações de gestão é especificado na Actions e NotActions propriedades de uma definição de função.Role-based access control for management operations is specified in the Actions and NotActions properties of a role definition. Aqui estão alguns exemplos de operações de gestão no Azure:Here are some examples of management operations in Azure:

  • Gerir o acesso a uma conta de armazenamentoManage access to a storage account
  • Criar, atualizar ou eliminar um contentor de BLOBsCreate, update, or delete a blob container
  • Eliminar um grupo de recursos e todos os respetivos recursosDelete a resource group and all of its resources

Acesso de gestão não é herdado aos seus dados.Management access is not inherited to your data. Essa separação impede que funções com carateres universais (*) de ter acesso ilimitado aos seus dados.This separation prevents roles with wildcards (*) from having unrestricted access to your data. Por exemplo, se um utilizador tem um leitor função numa assinatura, em seguida, podem visualizar a conta de armazenamento, mas por padrão não é possível ver os dados subjacentes.For example, if a user has a Reader role on a subscription, then they can view the storage account, but by default they can't view the underlying data.

Anteriormente, o controlo de acesso baseado em funções não foi utilizado para operações de dados.Previously, role-based access control was not used for data operations. Autorização para operações de dados diversificados em fornecedores de recursos.Authorization for data operations varied across resource providers. O mesmo modelo de autorização de controle com base em função de acesso utilizado para operações de gestão tiver sido expandido para operações de dados (atualmente em pré-visualização).The same role-based access control authorization model used for management operations has been extended to data operations (currently in preview).

Para suportar operações de dados, foram adicionadas novas propriedades de dados para a estrutura de definição de função.To support data operations, new data properties have been added to the role definition structure. Operações de dados estão especificadas na DataActions e NotDataActions propriedades.Data operations are specified in the DataActions and NotDataActions properties. Ao adicionar essas propriedades de dados, a separação entre a gestão e de dados é mantida.By adding these data properties, the separation between management and data is maintained. Isto impede que as atribuições de funções atual com carateres universais (*), de repente, tenha acesso a dados.This prevents current role assignments with wildcards (*) from suddenly having accessing to data. Aqui estão algumas operações de dados que podem ser especificadas em DataActions e NotDataActions:Here are some data operations that can be specified in DataActions and NotDataActions:

  • Ler uma lista de blobs num contentorRead a list of blobs in a container
  • Escrever um blob de armazenamento num contentorWrite a storage blob in a container
  • Eliminar uma mensagem numa filaDelete a message in a queue

Aqui está o leitor de dados de Blob de armazenamento definição de função, que inclui operações em ambos os Actions e DataActions propriedades.Here's the Storage Blob Data Reader role definition, which includes operations in both the Actions and DataActions properties. Esta função permite-lhe ler o contentor de BLOBs e também os dados de blob subjacente.This role allows you to read the blob container and also the underlying blob data.

{
  "Name": "Storage Blob Data Reader",
  "Id": "2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
  "IsCustom": false,
  "Description": "Allows for read access to Azure Storage blob containers and data",
  "Actions": [
    "Microsoft.Storage/storageAccounts/blobServices/containers/read"
  ],
  "NotActions": [],
  "DataActions": [
    "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
  ],
  "NotDataActions": [],
  "AssignableScopes": [
    "/"
  ]
}

Apenas as operações de dados podem ser adicionadas para o DataActions e NotDataActions propriedades.Only data operations can be added to the DataActions and NotDataActions properties. Fornecedores de recursos identificar as operações são operações de dados, definindo a isDataAction propriedade true.Resource providers identify which operations are data operations, by setting the isDataAction property to true. Para ver uma lista das operações em que isDataAction é true, consulte operações de fornecedor de recursos.To see a list of the operations where isDataAction is true, see Resource provider operations. Funções que não têm as operações de dados não devem ter DataActions e NotDataActions propriedades dentro da definição de função.Roles that do not have data operations are not required to have DataActions and NotDataActions properties within the role definition.

Autorização para todas as chamadas de API de operação de gestão é processada pelo Azure Resource Manager.Authorization for all management operation API calls is handled by Azure Resource Manager. Autorização para chamadas de API de operação de dados é processada por um fornecedor de recursos ou o Azure Resource Manager.Authorization for data operation API calls is handled by either a resource provider or Azure Resource Manager.

Exemplo de operações de dadosData operations example

Para compreender melhor como funcionam as operações de gestão e os dados, vamos considerar um exemplo específico.To better understand how management and data operations work, let's consider a specific example. Alice foi atribuída a proprietário função no âmbito da subscrição.Alice has been assigned the Owner role at the subscription scope. BOB foi atribuído a contribuinte de dados de Blob de armazenamento função num âmbito de conta de armazenamento.Bob has been assigned the Storage Blob Data Contributor role at a storage account scope. O diagrama seguinte mostra este exemplo.The following diagram shows this example.

Controlo de acesso baseado em funções foi expandido para suportar a gestão e operações de dados

O proprietário função para Alice e o contribuinte de dados de Blob de armazenamento função para o Bernardo tem as seguintes ações:The Owner role for Alice and the Storage Blob Data Contributor role for Bob have the following actions:

ProprietárioOwner

    Ações    Actions
    *    *

Contribuinte de Dados do Armazenamento de BlobsStorage Blob Data Contributor

    Ações    Actions
    Microsoft.Storage/storageAccounts/blobServices/containers/delete    Microsoft.Storage/storageAccounts/blobServices/containers/delete
    Microsoft.Storage/storageAccounts/blobServices/containers/read    Microsoft.Storage/storageAccounts/blobServices/containers/read
    Microsoft.Storage/storageAccounts/blobServices/containers/write    Microsoft.Storage/storageAccounts/blobServices/containers/write
    DataActions    DataActions
    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write

Uma vez que a Alice tem um caráter universal (*) ação num âmbito de subscrição, suas permissões herdam para permitir-lhe efetuar todas as ações de gestão.Since Alice has a wildcard (*) action at a subscription scope, her permissions inherit down to enable her to perform all management actions. Alice pode ler, escrever e eliminar contentores.Alice can read, write, and delete containers. No entanto, Alice não é possível efetuar operações de dados sem colocar os passos adicionais.However, Alice cannot perform data operations without taking additional steps. Por exemplo, por predefinição, Alice não é possível ler os blobs num contentor.For example, by default, Alice cannot read the blobs inside a container. Para ler os blobs, Alice teria-se obter as chaves de acesso de armazenamento e usá-los para aceder aos blobs.To read the blobs, Alice would have to retrieve the storage access keys and use them to access the blobs.

Permissões de Bob estão limitadas a apenas o Actions e DataActions especificado na contribuinte de dados de Blob de armazenamento função.Bob's permissions are restricted to just the Actions and DataActions specified in the Storage Blob Data Contributor role. Com base na função, Bob pode executar gerenciamento e operações de dados.Based on the role, Bob can perform both management and data operations. Por exemplo, Bob poderá ler, escrever e eliminar os contentores na conta de armazenamento especificada e também ele pode ler, escrever e eliminar os blobs.For example, Bob can read, write, and delete containers in the specified storage account and he can also read, write, and delete the blobs.

Para obter mais informações sobre a gestão e segurança de plano de dados de armazenamento, consulte a guia de segurança do armazenamento do Azure.For more information about management and data plane security for storage, see the Azure Storage security guide.

Que ferramentas de suporte através do RBAC para operações de dados?What tools support using RBAC for data operations?

Para visualizar e trabalhar com operações de dados, tem de ter as versões corretas do ferramentas ou SDKs:To view and work with data operations, you must have the correct versions of the tools or SDKs:

FerramentaTool VersionVersion
Azure PowerShellAzure PowerShell 1.1.0 ou posterior1.1.0 or later
CLI do AzureAzure CLI 2.0.30 ou posterior2.0.30 or later
Azure para .NETAzure for .NET 2.8.0-Preview ou posterior2.8.0-preview or later
Azure SDK para GoAzure SDK for Go 15.0.0 ou posterior15.0.0 or later
Azure para JavaAzure for Java 1.9.0 ou posterior1.9.0 or later
Azure para PythonAzure for Python 0.40.0 ou posterior0.40.0 or later
Azure SDK for Ruby (Azure SDK para Ruby)Azure SDK for Ruby 0.17.1 ou posterior0.17.1 or later

Para ver e utilizar as operações de dados na REST API, tem de definir o versão de api parâmetro para a versão seguinte ou posterior:To view and use the data operations in the REST API, you must set the api-version parameter to the following version or later:

  • 2018-01-01-pré-visualização2018-01-01-preview

O portal do Azure também permite aos utilizadores procurar e gerir o conteúdo das filas e BLOBs experiência de pré-visualização de contentores através do Azure AD.The Azure portal also allows users to browse and manage the contents of Queues and Blob containers via the Azure AD preview experience. Ver e gerir o conteúdo de um clique de contentor de BLOBs ou filas a explorar dados com o Azure AD preview na descrição geral da conta de armazenamento.To see and manage the contents of a Queue or Blob container click the Explore data using Azure AD preview on the storage account Overview.

Explore as filas e BLOBs contentores com a pré-visualização do Azure AD

AçõesActions

O Actions permissão Especifica as operações de gestão que permite que a função a ser executada.The Actions permission specifies the management operations that the role allows to be performed. É uma coleção de cadeias de caracteres de operação que identificar as operações com capacidade de segurança de fornecedores de recursos do Azure.It is a collection of operation strings that identify securable operations of Azure resource providers. Aqui estão alguns exemplos de operações de gestão que podem ser utilizados em Actions.Here are some examples of management operations that can be used in Actions.

Cadeia de caracteres de operaçãoOperation string DescriçãoDescription
*/read Concede acesso para operações de leitura para todos os tipos de recursos de todos os fornecedores de recursos do Azure.Grants access to read operations for all resource types of all Azure resource providers.
Microsoft.Compute/* Concede acesso a todas as operações para todos os tipos de recurso no fornecedor de recursos Microsoft. Compute.Grants access to all operations for all resource types in the Microsoft.Compute resource provider.
Microsoft.Network/*/read Concede acesso para operações de leitura para todos os tipos de recursos de fornecedor de recursos de Network.Grants access to read operations for all resource types in the Microsoft.Network resource provider.
Microsoft.Compute/virtualMachines/* Concede acesso a todas as operações de máquinas virtuais e respetivos subordinados tipos de recursos.Grants access to all operations of virtual machines and its child resource types.
microsoft.web/sites/restart/Action Concede acesso para reiniciar uma aplicação web.Grants access to restart a web app.

NotActionsNotActions

O NotActions permissão Especifica as operações de gestão que são excluídas da permitidos Actions.The NotActions permission specifies the management operations that are excluded from the allowed Actions. Utilize o NotActions permissão se o conjunto de operações que pretende permitir que mais facilmente é definido por excluindo restritas de operações.Use the NotActions permission if the set of operations that you want to allow is more easily defined by excluding restricted operations. O acesso concedido por uma função (permissões efetivas) é calculado ao subtrair a NotActions operações a partir da Actions operações.The access granted by a role (effective permissions) is computed by subtracting the NotActions operations from the Actions operations.

Nota

Se um utilizador é atribuído uma função que exclui uma operação em NotActionse é atribuído uma segunda função concede acesso à mesma operação, o utilizador tem permissão para executar essa operação.If a user is assigned a role that excludes an operation in NotActions, and is assigned a second role that grants access to the same operation, the user is allowed to perform that operation. NotActions Não é uma negação de regra – é simplesmente uma forma conveniente para criar um conjunto de operações permitidas quando precisam de operações específicas a serem excluídos.NotActions is not a deny rule – it is simply a convenient way to create a set of allowed operations when specific operations need to be excluded.

dataActions (pré-visualização)DataActions (Preview)

O DataActions permissão Especifica as operações de dados que permite que a função a ser executada aos seus dados dentro desse objeto.The DataActions permission specifies the data operations that the role allows to be performed to your data within that object. Por exemplo, se um utilizador tem de ler BLOBs acesso a dados para uma conta de armazenamento, em seguida, podem ler os blobs dentro dessa conta de armazenamento.For example, if a user has read blob data access to a storage account, then they can read the blobs within that storage account. Aqui estão alguns exemplos de operações de dados que podem ser utilizados em DataActions.Here are some examples of data operations that can be used in DataActions.

Cadeia de caracteres de operaçãoOperation string DescriçãoDescription
Microsoft.Storage/storageAccounts/ blobServices/containers/blobs/read Devolve um blob ou uma lista de blobs.Returns a blob or a list of blobs.
Microsoft.Storage/storageAccounts/ blobServices/containers/blobs/write Devolve o resultado de escrever um blob.Returns the result of writing a blob.
Microsoft.Storage/storageAccounts/ queueServices/queues/messages/read Devolve uma mensagem.Returns a message.
Microsoft.Storage/storageAccounts/ queueServices/queues/messages/* Devolve uma mensagem ou o resultado de escrever ou eliminar uma mensagem.Returns a message or the result of writing or deleting a message.

notDataActions (pré-visualização)NotDataActions (Preview)

O NotDataActions permissão Especifica as operações de dados que são excluídas da permitidos DataActions.The NotDataActions permission specifies the data operations that are excluded from the allowed DataActions. O acesso concedido por uma função (permissões efetivas) é calculado ao subtrair a NotDataActions operações a partir da DataActions operações.The access granted by a role (effective permissions) is computed by subtracting the NotDataActions operations from the DataActions operations. Cada fornecedor de recursos fornece seu respectivo conjunto de APIs para realizar operações de dados.Each resource provider provides its respective set of APIs to fulfill data operations.

Nota

Se um utilizador é atribuído uma função que exclui uma operação de dados no NotDataActionse é atribuído uma segunda função concede acesso à mesma operação de dados, o utilizador tem permissão para executar essa operação de dados.If a user is assigned a role that excludes a data operation in NotDataActions, and is assigned a second role that grants access to the same data operation, the user is allowed to perform that data operation. NotDataActions Não é uma negação de regra – é simplesmente uma forma conveniente para criar um conjunto de operações de dados permitido quando precisam de operações de dados específicas a serem excluídos.NotDataActions is not a deny rule – it is simply a convenient way to create a set of allowed data operations when specific data operations need to be excluded.

AssignableScopesAssignableScopes

O AssignableScopes propriedade especifica os âmbitos (subscrições, grupos de recursos ou recursos) que a função está disponível para atribuição.The AssignableScopes property specifies the scopes (subscriptions, resource groups, or resources) that the role is available for assignment. Pode disponibilizar a função para atribuição apenas a subscrições ou grupos de recursos que exigem e não pelo usuário desordem experiência para o restante do subscrições ou grupos de recursos.You can make the role available for assignment in only the subscriptions or resource groups that require it, and not the clutter user experience for the rest of the subscriptions or resource groups. Tem de utilizar, pelo menos, uma subscrição, grupo de recursos ou ID de recurso.You must use at least one subscription, resource group, or resource ID.

Funções incorporadas têm AssignableScopes definido como o âmbito de raiz ("/").Built-in roles have AssignableScopes set to the root scope ("/"). O âmbito de raiz indica que a função está disponível para atribuição em todos os âmbitos.The root scope indicates that the role is available for assignment in all scopes. Exemplos de âmbitos atribuíveis válidos incluem:Examples of valid assignable scopes include:

CenárioScenario ExemploExample
Função está disponível para atribuição numa única subscriçãoRole is available for assignment in a single subscription "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e"
Função está disponível para atribuição em duas subscriçõesRole is available for assignment in two subscriptions "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e", "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624"
Função está disponível para atribuição apenas no grupo de recursos de redeRole is available for assignment only in the Network resource group "/subscriptions/c276fc76-9cd4-44c9-99a7-4fd71546436e/resourceGroups/Network"
Função está disponível para atribuição em todos os âmbitosRole is available for assignment in all scopes "/"

Para obter informações sobre AssignableScopes para funções personalizadas, consulte funções personalizadas para recursos do Azure.For information about AssignableScopes for custom roles, see Custom roles for Azure resources.

Passos SeguintesNext steps