Omówienie zakresu kontroli dostępu opartej na rolach platformy Azure
Zakres to zestaw zasobów, do których ma zastosowanie dostęp. Podczas przypisywania roli ważne jest, aby zrozumieć zakres, aby można było przyznać podmiotowi zabezpieczeń tylko dostęp, którego potrzebuje. Ograniczając zakres, ograniczasz, jakie zasoby są zagrożone, jeśli podmiot zabezpieczeń kiedykolwiek zostanie naruszony.
Poziomy zakresu
Na platformie Azure można określić zakres na czterech poziomach: grupa zarządzania, subskrypcja, grupa zasobów i zasób. Zakresy mają strukturę opartą na relacji nadrzędny-podrzędny. Każdy poziom hierarchii sprawia, że zakres jest bardziej szczegółowy. Role można przypisywać na dowolnym z tych poziomów zakresu. Wybrany poziom określa, jak szeroko jest stosowana rola. Niższe poziomy dziedziczą uprawnienia roli z wyższych poziomów.
Grupy zarządzania są poziomem zakresu powyżej subskrypcji, ale grupy zarządzania obsługują bardziej złożone hierarchie. Na poniższym diagramie przedstawiono przykład hierarchii grup zarządzania i subskrypcji, które można zdefiniować. Aby uzyskać więcej informacji na temat grup zarządzania, zobacz Co to są grupy zarządzania platformy Azure?.
Format zakresu
Jeśli przypiszesz role przy użyciu wiersza polecenia, musisz określić zakres. W przypadku narzędzi wiersza polecenia zakres jest potencjalnie długim ciągiem, który identyfikuje dokładny zakres przypisania roli. W witrynie Azure Portal ten zakres jest zazwyczaj wyświetlany jako identyfikator zasobu.
Zakres składa się z serii identyfikatorów oddzielonych ukośnikiem (/). Ten ciąg można traktować jako wyrażający następującą hierarchię, gdzie tekst bez symboli zastępczych ({}
) są stałymi identyfikatorami:
/subscriptions
/{subscriptionId}
/resourcegroups
/{resourceGroupName}
/providers
/{providerName}
/{resourceType}
/{resourceSubType1}
/{resourceSubType2}
/{resourceName}
{subscriptionId}
to identyfikator subskrypcji do użycia (identyfikator GUID).{resourceGroupName}
to nazwa zawierającej grupę zasobów.{providerName}
to nazwa dostawcy zasobów, który obsługuje zasób, a{resourceSubType*}
następnie{resourceType}
identyfikuje dalsze poziomy w ramach tego dostawcy zasobów.{resourceName}
jest ostatnią częścią ciągu, która identyfikuje określony zasób.
Grupy zarządzania są poziomem wyższym niż subskrypcje i mają najszerszy (najmniej konkretny) zakres. Przypisania ról na tym poziomie mają zastosowanie do subskrypcji w grupie zarządzania. Zakres grupy zarządzania ma następujący format:
/providers
/Microsoft.Management
/managementGroups
/{managmentGroupName}
Przykłady zakresu
Scope | Przykład |
---|---|
Grupa zarządzania | /providers/Microsoft.Management/managementGroups/marketing-group |
Subskrypcja | /subscriptions/00000000-0000-0000-0000-000000000000 |
Grupa zasobów | /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg |
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales |
|
Zasób | /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 |
Jak określić zakres zasobu
Dość proste jest określenie zakresu grupy zarządzania, subskrypcji lub grupy zasobów. Wystarczy znać nazwę i identyfikator subskrypcji. Jednak określenie zakresu zasobu wymaga nieco więcej pracy. Poniżej przedstawiono kilka sposobów określania zakresu zasobu.
W witrynie Azure Portal otwórz zasób, a następnie przyjrzyj się właściwościom. Zasób powinien zawierać listę identyfikatora zasobu, w którym można określić zakres. Na przykład poniżej przedstawiono identyfikatory zasobów dla konta magazynu.
Innym sposobem jest użycie witryny Azure Portal do tymczasowego przypisania roli w zakresie zasobów, a następnie użycie programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure w celu wyświetlenia listy przypisań ról. W danych wyjściowych zakres zostanie wyświetlony jako właściwość.
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" }
Zakres i szablony usługi ARM
Przypisanie roli jest specjalnym typem w usłudze Azure Resource Manager nazywanym zasobem rozszerzenia. Zasób rozszerzenia to zasób, który dodaje możliwości innego zasobu. Zawsze istnieją jako rozszerzenie (na przykład podrzędne) innego zasobu. Na przykład przypisanie roli w zakresie subskrypcji jest zasobem rozszerzenia subskrypcji. Nazwa przypisania roli jest zawsze nazwą zasobu, który rozszerzasz, oraz /Microsoft.Authorization/roleAssignments/{roleAssignmentId}
. Podczas przypisywania ról przy użyciu szablonu usługi Azure Resource Manager (szablonu usługi ARM) zwykle nie trzeba podawać zakresu. Przyczyną jest to, że pole zakresu zawsze jest identyfikatorem rozszerzanego zasobu. Zakres można określić na podstawie identyfikatora samego przypisania roli. W poniższej tabeli przedstawiono przykłady identyfikatora przypisania roli i odpowiadający mu zakres:
Identyfikator przypisania roli | 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 |
Aby uzyskać więcej informacji na temat zakresu i szablonów usługi ARM, zobacz Przypisywanie ról platformy Azure przy użyciu szablonów usługi Azure Resource Manager. Aby uzyskać pełną listę typów zasobów rozszerzeń, zobacz Typy zasobów, które rozszerzają możliwości innych zasobów.