Przypisywanie ról platformy Azure przy użyciu interfejs API Rest
Kontrola dostępu oparta na rolach (RBAC) platformy Azure to system autoryzacji używany do zarządzania dostępem do zasobów platformy Azure. Aby udzielić dostępu, należy przypisać role do użytkowników, grup, jednostek usług lub tożsamości zarządzanych w określonym zakresie. W tym artykule opisano sposób przypisywania ról przy użyciu interfejsu API REST.
Wymagania wstępne
Aby przypisać role platformy Azure, musisz mieć:
Microsoft.Authorization/roleAssignments/write
uprawnienia, takie jak kontrola dostępu oparta na rolach Administracja istrator lub Administracja istrator dostępu użytkowników
Należy użyć następujących wersji:
2015-07-01
lub nowsze w celu przypisania roli platformy Azure2018-09-01-preview
lub nowsze, aby przypisać rolę platformy Azure do nowej jednostki usługi
Aby uzyskać więcej informacji, zobacz Wersje interfejsów API rest kontroli dostępu opartej na rolach platformy Azure.
Przypisywanie roli platformy Azure
Aby przypisać rolę, użyj przypisań ról — utwórz interfejs API REST i określ podmiot zabezpieczeń, definicję roli i zakres. Aby wywołać ten interfejs API, musisz mieć dostęp do Microsoft.Authorization/roleAssignments/write
akcji, takiej jak kontrola dostępu oparta na rolach Administracja istrator.
Użyj interfejsu API REST definicji ról — lista lub zobacz Wbudowane role , aby uzyskać identyfikator definicji roli, którą chcesz przypisać.
Użyj narzędzia GUID, aby wygenerować unikatowy identyfikator, który będzie używany dla identyfikatora przypisania roli. Identyfikator ma format:
00000000-0000-0000-0000-000000000000
Zacznij od następującego żądania i treści:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{ "properties": { "roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "principalId": "{principalId}" } }
W identyfikatorze URI zastąp element {scope} zakresem przypisania roli.
Scope Typ providers/Microsoft.Management/managementGroups/{groupId1}
Grupa zarządzania subscriptions/{subscriptionId1}
Subskrypcja subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1
Grupa zasobów subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/microsoft.web/sites/mysite1
Zasób W poprzednim przykładzie microsoft.web jest dostawcą zasobów, który odwołuje się do wystąpienia usługi App Service. Podobnie można użyć dowolnego innego dostawcy zasobów i określić zakres. Aby uzyskać więcej informacji, zobacz Dostawcy i typy zasobów platformy Azure oraz obsługiwane operacje dostawcy zasobów platformy Azure.
Zastąp element {roleAssignmentId} identyfikatorem GUID przypisania roli.
W treści żądania zastąp element {scope} tym samym zakresem co w identyfikatorze URI.
Zastąp element {roleDefinitionId} identyfikatorem definicji roli.
Zastąp element {principalId} identyfikatorem obiektu użytkownika, grupy lub jednostki usługi, która zostanie przypisana do roli.
Następujące żądanie i treść przypisuje użytkownikowi rolę Czytelnik kopii zapasowych w zakresie subskrypcji:
PUT https://management.azure.com/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912",
"principalId": "{objectId1}"
}
}
Poniżej przedstawiono przykład danych wyjściowych:
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912",
"principalId": "{objectId1}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId1}",
"condition": null,
"conditionVersion": null,
"createdOn": "2022-05-06T23:55:23.7679147Z",
"updatedOn": "2022-05-06T23:55:23.7679147Z",
"createdBy": null,
"updatedBy": "{updatedByObjectId1}",
"delegatedManagedIdentityResourceId": null,
"description": null
},
"id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId1}"
}
Nowa jednostka usługi
Jeśli tworzysz nową jednostkę usługi i natychmiast spróbujesz przypisać rolę do tej jednostki usługi, przypisanie tej roli może zakończyć się niepowodzeniem w niektórych przypadkach. Jeśli na przykład utworzysz nową tożsamość zarządzaną, a następnie spróbujesz przypisać rolę do tej jednostki usługi, przypisanie roli może zakończyć się niepowodzeniem. Przyczyną tego błędu jest prawdopodobnie opóźnienie replikacji. Jednostka usługi jest tworzona w jednym regionie; Jednak przypisanie roli może wystąpić w innym regionie, który jeszcze nie zreplikował jednostki usługi.
Aby rozwiązać ten scenariusz, użyj przypisań ról — utwórz interfejs API REST i ustaw principalType
właściwość na ServicePrincipal
. Należy również ustawić wartość na 2018-09-01-preview
lub nowsząapiVersion
. 2022-04-01
jest pierwszą stabilną wersją.
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
"principalId": "{principalId}",
"principalType": "ServicePrincipal"
}
}
Następne kroki
- Wyświetlanie listy przypisań ról platformy Azure przy użyciu interfejsu API REST
- Deploy resources with Resource Manager templates and Resource Manager REST API (Wdrażanie zasobów za pomocą szablonów usługi Resource Manager i interfejsu API REST usługi Resource Manager)
- Dokumentacja interfejsu API REST platformy Azure
- Tworzenie lub aktualizowanie ról niestandardowych platformy Azure przy użyciu interfejsu API REST