Ajouter ou modifier des conditions d’attribution de rôle Azure avec l’API REST
Une condition d’attribution de rôle Azure est une vérification supplémentaire que vous pouvez éventuellement ajouter à votre attribution de rôle pour fournir un contrôle d’accès plus précis. Par exemple, vous pouvez ajouter une condition qui oblige un objet à porter une étiquette spécifique pour être lu. Cet article explique comment ajouter, modifier, lister ou supprimer des conditions pour vos attributions de rôles à l’aide de l’API REST.
Prérequis
Vous devez utiliser les versions suivantes :
2020-03-01-preview
ou ultérieur2020-04-01-preview
ou une version ultérieure si vous souhaitez utiliser la propriétédescription
pour les attributions de rôles2022-04-01
est la première version stable
Pour plus d’informations sur les prérequis à l’ajout ou à la modification des conditions d’attribution de rôle, consultez Prérequis aux conditions.
Ajouter une condition
Pour ajouter une condition d’attribution de rôle, utilisez l’API REST Attributions de rôles – Créer. Attributions de rôles – Créer comprend les paramètres suivants associés aux conditions.
Paramètre | Type | Description |
---|---|---|
condition |
String | Condition sous laquelle l’utilisateur peut se voir accorder une autorisation. |
conditionVersion |
String | Version de la syntaxe de condition. Si condition est spécifié sans conditionVersion , la version est définie sur la valeur par défaut 2.0. |
Utilisez la requête et le corps suivants :
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}"
}
}
L’exemple suivant montre comment attribuer le rôle Lecteur des données Blob du stockage avec une condition. La condition vérifie si le nom du conteneur correspond à « 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"
}
}
Voici un exemple de sortie :
{
"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}"
}
Modifier une condition
Pour modifier une condition d’attribution de rôle existante, utilisez la même API REST Attributions de rôles – Créer que celle utilisée pour ajouter la condition d’attribution de rôle. Ce qui suit montre un exemple de JSON où condition
et description
sont mis à jour. Seules les propriétés condition
, conditionVersion
et description
peuvent être modifiées. Vous devez spécifier les autres propriétés pour qu’elles correspondent à l’attribution de rôle existante.
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"
}
}
Lister une condition
Pour lister une condition d’attribution de rôle, utilisez l’API REST Lister ou Obtenir les attributions de rôles. Pour plus d’informations, consultez Lister les attributions de rôles Azure à l’aide de l’API REST.
Supprimer une condition
Pour supprimer une condition d’attribution de rôle, modifiez-la en définissant la condition et la version de condition sur une chaîne vide ou sur Null.
Si vous voulez supprimer à la fois l’attribution de rôle et la condition, vous pouvez également utiliser l’API Attributions de rôles – Supprimer. Pour plus d’informations, consultez Supprimer des attributions de rôles Azure.