Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Escopo é o conjunto de recursos aos quais o acesso se aplica. Quando você atribui uma função, é importante entender o escopo para que você possa conceder a uma entidade de segurança apenas o acesso de que ela realmente precisa. Ao limitar o escopo, você limita quais recursos estarão em risco se a entidade de segurança for comprometida.
Níveis de escopo
No Azure, você pode especificar um escopo em quatro níveis: grupo de gerenciamento, assinatura, grupo de recursos e recurso. Os escopos são estruturados em uma relação pai-filho. Cada nível de hierarquia torna o escopo mais específico. Você pode atribuir funções em qualquer um desses níveis de escopo. O nível selecionado determina a ampla aplicação da função. Níveis mais baixos herdam permissões de função de níveis mais altos.
Os grupos de gerenciamento são um nível de escopo acima das assinaturas, mas os grupos de gerenciamento dão suporte a hierarquias mais complexas. O diagrama a seguir mostra um exemplo de uma hierarquia de grupos de gerenciamento e assinaturas que você pode definir. Para obter mais informações sobre grupos de gerenciamento, consulte O que são grupos de gerenciamento do Azure?.
Formato de escopo
Se você atribuir funções usando a linha de comando, precisará especificar o escopo. Para ferramentas de linha de comando, o escopo é uma cadeia de caracteres potencialmente longa que identifica o escopo exato da atribuição de função. No portal do Azure, esse escopo normalmente é listado como a ID do recurso.
O escopo consiste em uma série de identificadores separados pelo caractere de barra (/). Você pode pensar nessa cadeia de caracteres como expressando a seguinte hierarquia, em que texto sem espaços reservados ({}) são identificadores fixos:
/subscriptions
/{subscriptionId}
/resourcegroups
/{resourceGroupName}
/providers
/{providerName}
/{resourceType}
/{resourceSubType1}
/{resourceSubType2}
/{resourceName}
-
{subscriptionId}é a ID da assinatura a ser usada (um GUID). -
{resourceGroupName}é o nome do grupo de recursos que contém. -
{providerName}é o nome do provedor de recursos que manipula o recurso e{resourceType}identifica{resourceSubType*}níveis adicionais dentro desse provedor de recursos. -
{resourceName}é a última parte da cadeia de caracteres que identifica um recurso específico.
Os grupos de gerenciamento são um nível acima das assinaturas e têm o escopo mais amplo (menos específico). As atribuições de função nesse nível se aplicam a assinaturas dentro do grupo de gerenciamento. O escopo de um grupo de gerenciamento tem o seguinte formato:
/providers
/Microsoft.Management
/managementGroups
/{managementGroupName}
Exemplos de escopo
| Scope | Example |
|---|---|
| Grupo de gerenciamento | /providers/Microsoft.Management/managementGroups/marketing-group |
| Subscription | /subscriptions/00000000-0000-0000-0000-000000000000 |
| Grupo de recursos | /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg |
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales |
|
| Resource | /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01 |
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork12345 |
Como determinar o escopo de um recurso
É bastante simples determinar o escopo de um grupo de gerenciamento, assinatura ou grupo de recursos. Você só precisa saber o nome e a ID da assinatura. No entanto, determinar o escopo de um recurso requer um pouco mais de trabalho. Aqui estão algumas maneiras de determinar o escopo de um recurso.
No portal do Azure, abra o recurso e examine as propriedades. O recurso deve listar a ID do recurso em que você pode determinar o escopo. Por exemplo, aqui estão as IDs de recurso de uma conta de armazenamento.
Outra maneira é usar o portal do Azure para atribuir uma função temporariamente no escopo do recurso e, em seguida, usar o Azure PowerShell ou a CLI do Azure para listar a atribuição de função. Na saída, o escopo será listado como uma propriedade.
RoleAssignmentId : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/pro viders/Microsoft.Authorization/roleAssignments/<roleAssignmentId> Scope : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01 DisplayName : User SignInName : user@contoso.com RoleDefinitionName : Storage Blob Data Reader RoleDefinitionId : 2a2b9908-6ea1-4ae2-8e65-a410df84e7d1 ObjectId : <principalId> ObjectType : User CanDelegate : False Description : ConditionVersion : Condition :{ "canDelegate": null, "condition": null, "conditionVersion": null, "description": null, "id": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}", "name": "{roleAssignmentId}", "principalId": "{principalId}", "principalName": "user@contoso.com", "principalType": "User", "resourceGroup": "test-rg", "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1", "roleDefinitionName": "Storage Blob Data Reader", "scope": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01", "type": "Microsoft.Authorization/roleAssignments" }
Escopo e modelos do ARM
Uma atribuição de função é um tipo especial do Azure Resource Manager chamado recurso de extensão. Um recurso de extensão é um recurso que adiciona aos recursos de outro recurso. Eles sempre existem como uma extensão (como um filho) de outro recurso. Por exemplo, uma atribuição de função no escopo da assinatura é um recurso de extensão da assinatura. O nome de uma atribuição de função é sempre o nome do recurso que você está estendendo acrescido de /Microsoft.Authorization/roleAssignments/{roleAssignmentId}. Ao atribuir funções usando o modelo do ARM (modelo do Azure Resource Manager), normalmente você não precisa fornecer o escopo. O motivo é que o campo de escopo acaba sendo sempre a ID do recurso que você está estendendo. O escopo pode ser determinado a partir da ID da atribuição de função em si. A tabela a seguir mostra exemplos de uma ID de atribuição de função e o escopo correspondente:
| ID de atribuição de função | Scope |
|---|---|
/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} |
/subscriptions/{subscriptionId} |
/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} |
/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg |
Para obter mais informações sobre escopo e modelos do ARM, consulte Atribuir funções do Azure usando modelos do Azure Resource Manager. Para obter uma lista completa dos tipos de recursos de extensão, consulte os tipos de recursos que estendem os recursos de outros recursos.