Skip to content

Commit 2af5254

Browse files
authored
Merge pull request #111853 from rolyon/rolyon-rbac-role-definitions
[Azure RBAC] Role definition property descriptions
2 parents 99fa612 + f6909d4 commit 2af5254

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

articles/role-based-access-control/role-definitions.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ms.devlang: na
1212
ms.topic: conceptual
1313
ms.tgt_pltfrm: na
1414
ms.workload: identity
15-
ms.date: 03/19/2020
15+
ms.date: 04/17/2020
1616
ms.author: rolyon
1717
ms.reviewer: bagovind
1818
ms.custom:
@@ -21,9 +21,9 @@ ms.custom:
2121

2222
If you are trying to understand how a role works or if you are creating your own [custom role for Azure resources](custom-roles.md), it's helpful to understand how roles are defined. This article describes the details of role definitions and provides some examples.
2323

24-
## Role definition structure
24+
## Role definition
2525

26-
A *role definition* is a collection of permissions. It's sometimes just called a *role*. A role definition lists the operations that can be performed, such as read, write, and delete. It can also list the operations that can't be performed or operations related to underlying data. A role definition has the following structure:
26+
A *role definition* is a collection of permissions. It's sometimes just called a *role*. A role definition lists the operations that can be performed, such as read, write, and delete. It can also list the operations that can't be performed or operations related to underlying data. A role definition has the following properties:
2727

2828
```
2929
Name
@@ -37,6 +37,20 @@ NotDataActions []
3737
AssignableScopes []
3838
```
3939

40+
| Property | Description |
41+
| --- | --- |
42+
| `Name` | The display name of the role. |
43+
| `Id` | The unique ID of the role. |
44+
| `IsCustom` | Indicates whether this is a custom role. Set to `true` for custom roles. |
45+
| `Description` | The description of the role. |
46+
| `Actions` | An array of strings that specifies the management operations that the role allows to be performed. |
47+
| `NotActions` | An array of strings that specifies the management operations that are excluded from the allowed `Actions`. |
48+
| `DataActions` | An array of strings that specifies the data operations that the role allows to be performed to your data within that object. |
49+
| `NotDataActions` | An array of strings that specifies the data operations that are excluded from the allowed `DataActions`. |
50+
| `AssignableScopes` | An array of strings that specifies the scopes that the role is available for assignment. |
51+
52+
### Operations format
53+
4054
Operations are specified with strings that have the following format:
4155

4256
- `{Company}.{ProviderName}/{resourceType}/{action}`
@@ -51,6 +65,8 @@ The `{action}` portion of an operation string specifies the type of operations y
5165
| `action` | Enables custom operations like restart virtual machines (POST). |
5266
| `delete` | Enables delete operations (DELETE). |
5367

68+
### Role definition example
69+
5470
Here's the [Contributor](built-in-roles.md#contributor) role definition in JSON format. The wildcard (`*`) operation under `Actions` indicates that the principal assigned to this role can perform all actions, or in other words, it can manage everything. This includes actions defined in the future, as Azure adds new resource types. The operations under `NotActions` are subtracted from `Actions`. In the case of the [Contributor](built-in-roles.md#contributor) role, `NotActions` removes this role's ability to manage access to resources and also assign access to resources.
5571

5672
```json
@@ -87,7 +103,7 @@ Management access is not inherited to your data provided that the container auth
87103

88104
Previously, role-based access control was not used for data operations. Authorization for data operations varied across resource providers. The same role-based access control authorization model used for management operations has been extended to data operations.
89105

90-
To support data operations, new data properties have been added to the role definition structure. Data operations are specified in the `DataActions` and `NotDataActions` properties. By adding these data properties, the separation between management and data is maintained. This prevents current role assignments with wildcards (`*`) from suddenly having accessing to data. Here are some data operations that can be specified in `DataActions` and `NotDataActions`:
106+
To support data operations, new data properties have been added to the role definition. Data operations are specified in the `DataActions` and `NotDataActions` properties. By adding these data properties, the separation between management and data is maintained. This prevents current role assignments with wildcards (`*`) from suddenly having accessing to data. Here are some data operations that can be specified in `DataActions` and `NotDataActions`:
91107

92108
- Read a list of blobs in a container
93109
- Write a storage blob in a container

0 commit comments

Comments
 (0)