Voorwaarden voor Azure-roltoewijzing toevoegen of bewerken met behulp van de REST API
Een voorwaarde voor azure-roltoewijzing is een extra controle dat u desgewenst aan uw roltoewijzing kunt toevoegen om nauwkeuriger toegangsbeheer te bieden. U kunt bijvoorbeeld een voorwaarde toevoegen waarvoor een object een specifieke tag moet hebben om het object te lezen. In dit artikel wordt beschreven hoe u voorwaarden voor uw roltoewijzingen toevoegt, bewerkt, weergeeft of verwijdert met behulp van de REST API.
Vereisten
U moet de volgende versies gebruiken:
2020-03-01-preview
of hoger2020-04-01-preview
of hoger als u dedescription
eigenschap wilt gebruiken voor roltoewijzingen2022-04-01
is de eerste stabiele versie
Zie Voorwaarden voor meer informatie over de vereisten voor het toevoegen of bewerken van voorwaarden voor roltoewijzing.
Een voorwaarde toevoegen
Als u een voorwaarde voor roltoewijzing wilt toevoegen, gebruikt u de roltoewijzingen - REST API maken . Roltoewijzingen : Maken bevat de volgende parameters met betrekking tot voorwaarden.
Parameter | Type | Omschrijving |
---|---|---|
condition |
String | Voorwaarde waaronder de gebruiker toestemming kan krijgen. |
conditionVersion |
String | Versie van de voorwaardesyntaxis. Als condition deze niet is opgegeven conditionVersion , wordt de versie ingesteld op de standaardwaarde 2.0. |
Gebruik de volgende aanvraag en hoofdtekst:
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}"
}
}
In het volgende voorbeeld ziet u hoe u de rol Opslagblobgegevenslezer met een voorwaarde toewijst. De voorwaarde controleert of de containernaam gelijk is aan '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"
}
}
Hieronder ziet u een voorbeeld van de uitvoer:
{
"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}"
}
Een voorwaarde bewerken
Als u een bestaande voorwaarde voor roltoewijzing wilt bewerken, gebruikt u dezelfde roltoewijzingen: MAAK REST API zoals u hebt gebruikt om de voorwaarde voor roltoewijzing toe te voegen. Hieronder ziet u een voorbeeld van een JSON waar condition
en description
worden bijgewerkt. Alleen de condition
, conditionVersion
en description
eigenschappen kunnen worden bewerkt. U moet de andere eigenschappen opgeven die overeenkomen met de bestaande roltoewijzing.
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"
}
}
Een voorwaarde weergeven
Als u een voorwaarde voor roltoewijzing wilt weergeven, gebruikt u de REST API voor roltoewijzingen ophalen of vermelden. Zie Azure-roltoewijzingen weergeven met behulp van de REST API voor meer informatie.
Een voorwaarde verwijderen
Als u een voorwaarde voor roltoewijzing wilt verwijderen, bewerkt u de voorwaardetoewijzingsvoorwaarde en stelt u zowel de voorwaarde als de voorwaardeversie in op een lege tekenreeks of null.
Als u zowel de roltoewijzing als de voorwaarde wilt verwijderen, kunt u ook de Roltoewijzingen - Api verwijderen gebruiken. Zie Azure-roltoewijzingen verwijderen voor meer informatie.