Azure-szerepkör-hozzárendelési feltételek hozzáadása vagy szerkesztése a REST API használatával
Az Azure-szerepkör-hozzárendelési feltétel egy további ellenőrzés, amelyet igény szerint hozzáadhat a szerepkör-hozzárendeléshez, hogy részletesebb hozzáférés-vezérlést biztosítson. Hozzáadhat például egy feltételt, amely megköveteli, hogy egy objektum egy adott címkével rendelkezzen az objektum olvasásához. Ez a cikk bemutatja, hogyan adhat hozzá, szerkeszthet, listázhat vagy törölhet feltételeket a szerepkör-hozzárendelésekhez a REST API használatával.
Előfeltételek
A következő verziókat kell használnia:
2020-03-01-preview
vagy újabb2020-04-01-preview
vagy később, ha a tulajdonságotdescription
szerepkör-hozzárendelésekhez szeretné használni2022-04-01
az első stabil verzió
A szerepkör-hozzárendelési feltételek hozzáadásának vagy szerkesztésének előfeltételeiről további információt a Feltételek előfeltételei című témakörben talál.
Feltétel hozzáadása
Szerepkör-hozzárendelési feltétel hozzáadásához használja a Szerepkör-hozzárendelések – REST API létrehozása lehetőséget. Szerepkör-hozzárendelések – A létrehozás a feltételekhez kapcsolódó alábbi paramétereket tartalmazza.
Paraméter | Típus | Description |
---|---|---|
condition |
Sztring | Az a feltétel, amely alatt a felhasználó engedélyt kaphat. |
conditionVersion |
Sztring | A feltétel szintaxisának verziója. Ha condition nincs conditionVersion megadva, akkor a verzió alapértelmezett értéke 2.0. |
Használja a következő kérést és törzset:
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}"
}
}
Az alábbi példa bemutatja, hogyan rendelheti hozzá a Storage Blob-adatolvasó szerepkört egy feltételhez. A feltétel ellenőrzi, hogy a tároló neve "blob-example-container" értékű-e.
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"
}
}
Az alábbiakban egy példa látható a kimenetre:
{
"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}"
}
Feltétel szerkesztése
Meglévő szerepkör-hozzárendelési feltétel szerkesztéséhez használja ugyanazokat a szerepkör-hozzárendeléseket – REST API létrehozása a szerepkör-hozzárendelési feltétel hozzáadásához használt módon. Az alábbiakban egy JSON-példát mutatunk be, ahol condition
és description
amelyek frissülnek. Csak a condition
, conditionVersion
és description
a tulajdonságok szerkeszthetők. Meg kell adnia a meglévő szerepkör-hozzárendelésnek megfelelő egyéb tulajdonságokat.
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"
}
}
Feltétel listázása
Szerepkör-hozzárendelési feltétel listázásához használja a Szerepkör-hozzárendelések lekérése vagy a REST API listázása lehetőséget. További információ: Azure-szerepkör-hozzárendelések listázása a REST API használatával.
Feltétel törlése
Szerepkör-hozzárendelési feltétel törléséhez szerkessze a szerepkör-hozzárendelés feltételét, és állítsa a feltétel és a feltétel verzióját üres sztringre vagy null értékre.
Ha a szerepkör-hozzárendelést és a feltételt is törölni szeretné, használhatja a Szerepkör-hozzárendelések – Törlés API-t. For more information, see Remove Azure role assignments.