Dodawanie lub edytowanie warunków przypisywania ról platformy Azure przy użyciu interfejsu API REST
Warunek przypisania roli platformy Azure to dodatkowa kontrola, którą można opcjonalnie dodać do przypisania roli, aby zapewnić bardziej szczegółową kontrolę dostępu. Można na przykład dodać warunek, który wymaga, aby obiekt miał określony tag do odczytania obiektu. W tym artykule opisano sposób dodawania, edytowania, wyświetlania listy lub usuwania warunków przypisań ról przy użyciu interfejsu API REST.
Wymagania wstępne
Należy użyć następujących wersji:
2020-03-01-preview
lub nowsze2020-04-01-preview
lub później, jeśli chcesz użyćdescription
właściwości dla przypisań ról2022-04-01
jest pierwszą stabilną wersją
Aby uzyskać więcej informacji na temat wymagań wstępnych dotyczących dodawania lub edytowania warunków przypisania roli, zobacz Warunki wstępne.
Dodaj warunek
Aby dodać warunek przypisania roli, użyj przypisań ról — tworzenie interfejsu API REST. Przypisania ról — tworzenie zawiera następujące parametry związane z warunkami.
Parametr | Type | opis |
---|---|---|
condition |
Ciąg | Warunek, w którym użytkownik może mieć uprawnienia. |
conditionVersion |
Ciąg | Wersja składni warunku. Jeśli condition określono wartość bez conditionVersion , wersja jest ustawiona na wartość domyślną 2.0. |
Użyj 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}",
"condition": "{condition}",
"conditionVersion": "2.0",
"description": "{description}"
}
}
W poniższym przykładzie pokazano, jak przypisać rolę Czytelnik danych obiektu blob usługi Storage z warunkiem. Warunek sprawdza, czy nazwa kontenera jest równa "blobs-example-container".
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container"
}
}
Poniżej przedstawiono przykład danych wyjściowych:
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"createdOn": "2022-07-20T06:20:44.0205560Z",
"updatedOn": "2022-07-20T06:20:44.2955371Z",
"createdBy": null,
"updatedBy": "{updatedById}",
"delegatedManagedIdentityResourceId": null,
"description": "Read access if container name equals blobs-example-container"
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId}"
}
Edytowanie warunku
Aby edytować istniejący warunek przypisania roli, użyj tych samych przypisań ról — utwórz interfejs API REST, który został użyty do dodania warunku przypisania roli. Poniżej przedstawiono przykładowy kod JSON, w którym condition
i description
gdzie są aktualizowane. condition
Tylko właściwości , conditionVersion
i description
można edytować. Aby dopasować istniejące przypisanie roli, należy określić inne właściwości.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container or blobs-example-container2"
}
}
Wyświetlanie listy warunku
Aby wyświetlić listę warunków przypisania roli, użyj interfejsu API REST Uzyskiwanie lub Wyświetlanie listy przypisań ról. Aby uzyskać więcej informacji, zobacz Wyświetlanie listy przypisań ról platformy Azure przy użyciu interfejsu API REST.
Usuwanie warunku
Aby usunąć warunek przypisania roli, zmodyfikuj warunek przypisania roli i ustaw zarówno warunek, jak i wersję warunku na pusty ciąg lub wartość null.
Alternatywnie, jeśli chcesz usunąć zarówno przypisanie roli, jak i warunek, możesz użyć interfejsu API Przypisania ról — Usuwanie . Aby uzyskać więcej informacji, zobacz Usuwanie przypisań ról platformy Azure.