Compreender o âmbito para o Azure RBAC
Âmbito é o conjunto de recursos a que o acesso se aplica. Quando atribuis um papel, é importante compreender o alcance para que possas conceder a um diretor de segurança apenas o acesso que realmente precisa. Limitando o âmbito, limita-se os recursos em risco se o diretor de segurança estiver alguma vez comprometido.
Níveis de âmbito
Em Azure, pode especificar um âmbito a quatro níveis: grupo de gestão, subscrição, grupo de recursos e recursos. Os âmbitos são estruturados numa relação de principal-subordinado. Cada nível de hierarquia torna o âmbito mais específico. Pode atribuir funções em qualquer um destes níveis de âmbito. O nível selecionado determina a largura da função. Níveis mais baixos herdam permissões de função de níveis mais altos.
Os grupos de gestão são um nível de âmbito acima das subscrições, mas os grupos de gestão apoiam hierarquias mais complexas. O diagrama que se segue mostra um exemplo de uma hierarquia de grupos de gestão e subscrições que pode definir. Para obter mais informações sobre grupos de gestão, veja o que são os grupos de gestão Azure?.
Formato de âmbito
Se atribuir funções utilizando a linha de comando, terá de especificar o âmbito. Para ferramentas de linha de comando, o âmbito é uma cadeia potencialmente longa que identifica o âmbito exato da atribuição de funções. No portal do Azure, este âmbito é tipicamente listado como o ID do recurso.
O âmbito consiste numa série de identificadores separados pelo carácter do corte (/). Pode pensar nesta cadeia como expressando a seguinte hierarquia, onde o texto sem espaços reservados ({}
) são identificadores fixos:
/subscriptions
/{subscriptionId}
/resourcegroups
/{resourceGroupName}
/providers
/{providerName}
/{resourceType}
/{resourceSubType1}
/{resourceSubType2}
/{resourceName}
{subscriptionId}
é o ID da subscrição a utilizar (um GUID).{resourcesGroupName}
é o nome do grupo de recursos contendo.{providerName}
é o nome do fornecedor de recursos que trata do recurso, então{resourceType}
e{resourceSubType*}
identificar outros níveis dentro desse fornecedor de recursos.{resourceName}
é a última parte da cadeia que identifica um recurso específico.
Os grupos de gestão são um nível superior às subscrições e têm o âmbito mais amplo (menos específico). As atribuições de funções a este nível aplicam-se a subscrições dentro do grupo de gestão. A margem para um grupo de gestão tem o seguinte formato:
/providers
/Microsoft.Management
/managementGroups
/{managmentGroupName}
Exemplos de âmbito
Âmbito | Exemplo |
---|---|
Grupo de gestão | /providers/Microsoft.Management/managementGroups/marketing-group |
Subscrição | /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 |
|
Recurso | /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 a margem de manobra para um recurso
É bastante simples determinar o alcance de um grupo de gestão, subscrição ou grupo de recursos. Só precisa saber o nome e a identificação da assinatura. No entanto, determinar a margem para um recurso requer um pouco mais de trabalho. Aqui estão algumas maneiras de determinar a possibilidade de um recurso.
No portal do Azure, abra o recurso e, em seguida, olhe para as propriedades. O recurso deve listar o ID de recurso onde pode determinar o âmbito. Por exemplo, aqui estão os IDs de recursos para uma conta de armazenamento.
Outra forma é usar o portal do Azure para atribuir uma função temporariamente no âmbito do recurso e, em seguida, usar Azure PowerShell ou Azure CLI para listar a atribuição de funções. Na saída, o âmbito será listado como um imóvel.
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" }
Modelos de âmbito e ARM
Uma atribuição de funções é um tipo especial em Azure Resource Manager chamado um recurso de extensão. Um recurso de extensão é um recurso que adiciona às capacidades de outro recurso. Existem sempre como uma extensão (como uma criança) de outro recurso. Por exemplo, uma atribuição de funções no âmbito de subscrição é um recurso de extensão da subscrição. O nome de uma atribuição de funções é sempre o nome do recurso que está a estender mais /Microsoft.Authorization/roleAssignments/{roleAssignmentId}
. Ao atribuir funções utilizando o modelo Azure Resource Manager (modelo ARM), normalmente não precisa de fornecer o âmbito. A razão é que o campo de âmbito acaba por ser sempre o ID do recurso que está a estender. O âmbito pode ser determinado a partir da identificação da própria atribuição de funções. A tabela a seguir apresenta exemplos de um ID de atribuição de funções e do âmbito correspondente:
ID de atribuição de funções | Âmbito |
---|---|
/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 os modelos de âmbito e ARM, consulte as funções De Atribuir Azure utilizando modelos Resource Manager Azure. Para obter uma lista completa dos tipos de recursos de extensão, consulte tipos de recursos que ampliam as capacidades de outros recursos.
Passos seguintes
- Passos para atribuir um papel de Azure
- Resource providers for Azure services (Fornecedor de recursos para serviços do Azure)
- O que são os grupos de gestão do Azure?