Sdílet prostřednictvím


Understand scope for Azure RBAC

Obor je sada prostředků, na které se vztahuje přístup. When you assign a role, it's important to understand scope so that you can grant a security principal just the access that it really needs. By limiting the scope, you limit what resources are at risk if the security principal is ever compromised.

Úrovně rozsahu

V Azure můžete zadat obor na čtyřech úrovních: skupina pro správu, předplatné, skupina prostředků a prostředek. Scopy jsou strukturované v rámci vztahu rodič-dítě. Každá úroveň hierarchie zpřístupňuje obor konkrétněji. Role můžete přiřadit na kterékoli z těchto úrovní působnosti. Úroveň, kterou vyberete, určuje, jak široce se role použije. Nižší úrovně dědí oprávnění role z vyšších úrovní.

Diagram of scope for a role assignment.

Management groups are a level of scope above subscriptions, but management groups support more complex hierarchies. Následující diagram znázorňuje příklad hierarchie skupin pro správu a předplatných, které můžete definovat. Další informace o skupinách pro správu najdete v tématu Co jsou skupiny pro správu Azure?

Diagram of management group and subscription hierarchy.

Formát oboru

Pokud přiřadíte role pomocí příkazového řádku, budete muset zadat obor. For command-line tools, scope is a potentially long string that identifies the exact scope of the role assignment. In the Azure portal, this scope is typically listed as the resource ID.

Obor se skládá z řady identifikátorů oddělených znakem lomítka (/). Tento řetězec si můžete představit jako vyjádření následující hierarchie, kde text bez zástupných symbolů ({}) představuje pevné identifikátory:

/subscriptions
    /{subscriptionId}
        /resourcegroups
            /{resourceGroupName}
                /providers
                    /{providerName}
                        /{resourceType}
                            /{resourceSubType1}
                                /{resourceSubType2}
                                    /{resourceName}
  • {subscriptionId} je ID předplatného, které se má použít (identifikátor GUID).
  • {resourceGroupName} is the name of the containing resource group.
  • {providerName}je název poskytovatele prostředků, který prostředek zpracovává, a {resourceType} pak {resourceSubType*} identifikuje další úrovně v rámci tohoto poskytovatele prostředků.
  • {resourceName} je poslední část řetězce, která identifikuje konkrétní zdroj.

Management groups are a level above subscriptions and have the broadest (least specific) scope. Role assignments at this level apply to subscriptions within the management group. Rozsah skupiny pro řízení má následující formát:

/providers
    /Microsoft.Management
        /managementGroups
            /{managementGroupName}

Příklady rozsahu

Scope Příklad
Skupina pro správu /providers/Microsoft.Management/managementGroups/marketing-group
Předplatné /subscriptions/00000000-0000-0000-0000-000000000000
Skupina zdrojů /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
Zdroj /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

Určení rozsahu prostředku

It's fairly simple to determine the scope for a management group, subscription, or resource group. Stačí znát název a ID předplatného. Určení rozsahu prostředku vyžaduje trochu více práce. Tady je několik způsobů, jak určit rozsah prostředku.

  • Na webu Azure Portal otevřete prostředek a podívejte se na vlastnosti. Prostředek by měl uvést ID prostředku , kde můžete určit rozsah. For example, here are the resource IDs for a storage account.

    Screenshot of resource IDs for a storage account in Azure portal.

  • Dalším způsobem je použití webu Azure Portal k dočasnému přiřazení role v oboru prostředků a následnému zobrazení seznamu přiřazení role pomocí Azure PowerShellu nebo Azure CLI . Ve výstupu bude obor uveden jako vlastnost.

    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"
      }
    

Rozsah a šablony ARM

Přiřazení role je speciální typ v Azure Resource Manageru označovaný jako prostředek rozšíření. Prostředek rozšíření je prostředek, který se přidává k možnostem jiného prostředku. They always exist as an extension (like a child) of another resource. Například přiřazení role v oboru předplatného je prostředek rozšíření předplatného. The name of a role assignment is always the name of the resource you are extending plus /Microsoft.Authorization/roleAssignments/{roleAssignmentId}. Při přiřazování rolí pomocí šablony Azure Resource Manageru (šablona ARM) obvykle nemusíte rozsah zadávat. The reason is that the scope field ends up always being the ID of the resource you are extending. Obor lze určit z ID samotného přiřazení role. Následující tabulka uvádí příklady ID přiřazení role a odpovídajícího oboru:

Role assignment ID 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

Další informace o oboru a šablonách ARM najdete v tématu Přiřazení rolí Azure pomocí šablon Azure Resource Manageru. Úplný seznam typů prostředků rozšíření najdete v tématu Typy prostředků, které rozšiřují možnosti dalších prostředků.

Další kroky