Přidání nebo úprava podmínek přiřazení rolí Azure pomocí rozhraní REST API
Podmínka přiřazení role Azure je další kontrola, kterou můžete volitelně přidat do přiřazení role, abyste zajistili podrobnější řízení přístupu. Můžete například přidat podmínku, která vyžaduje, aby objekt měl ke čtení objektu určitou značku. Tento článek popisuje, jak přidat, upravit, vypsat nebo odstranit podmínky pro přiřazení rolí pomocí rozhraní REST API.
Předpoklady
Musíte použít následující verze:
2020-03-01-preview
nebo novější2020-04-01-preview
nebo novější, pokud chcete vlastnost využítdescription
pro přiřazení rolí2022-04-01
je první stabilní verze.
Další informace o požadavcích pro přidání nebo úpravu podmínek přiřazení role naleznete v tématu Požadavky na podmínky.
Přidat podmínku
Pokud chcete přidat podmínku přiřazení role, použijte přiřazení rolí – Vytvoření rozhraní REST API. Přiřazení rolí – Vytvoření zahrnuje následující parametry související s podmínkami.
Parametr | Typ | Description |
---|---|---|
condition |
Řetězec | Podmínka, pod kterou může uživatel udělit oprávnění. |
conditionVersion |
Řetězec | Verze syntaxe podmínky Pokud condition je zadána bez conditionVersion , verze je nastavena na výchozí hodnotu 2.0. |
Použijte následující požadavek a text:
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}"
}
}
Následující příklad ukazuje, jak přiřadit roli Čtenář dat objektu blob služby Storage s podmínkou. Podmínka zkontroluje, jestli se název kontejneru rovná objektu 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"
}
}
Následuje příklad výstupu:
{
"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}"
}
Úprava podmínky
Pokud chcete upravit existující podmínku přiřazení role, použijte stejná přiřazení rolí – vytvořte rozhraní REST API, které jste použili k přidání podmínky přiřazení role. Následující příklad ukazuje JSON, kde condition
a description
jsou aktualizovány. condition
Lze upravit pouze objekty , conditionVersion
a description
vlastnosti. Je nutné zadat další vlastnosti, které odpovídají existujícímu přiřazení role.
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"
}
}
Výpis podmínky
Pokud chcete vypsat podmínku přiřazení role, použijte rozhraní REST API získání nebo výpisu přiřazení rolí. Další informace najdete v tématu Výpis přiřazení rolí Azure pomocí rozhraní REST API.
Odstranění podmínky
Pokud chcete odstranit podmínku přiřazení role, upravte podmínku přiřazení role a nastavte verzi podmínky i podmínky na prázdný řetězec nebo hodnotu null.
Pokud chcete také odstranit přiřazení role i podmínku, můžete použít rozhraní API pro odstranění rolí. Další informace najdete v tématu věnovaném odebrání přiřazení rolí v Azure.