Concept Flow - Role-based access control
User sends request
Check user role
Match role permissions
Allow or deny access
Return response
The system checks the user's role, matches permissions, then allows or denies access accordingly.
POST /_security/role/my_role
{
"indices": [
{
"names": ["logs-*"],
"privileges": ["read"]
}
]
}| Step | Action | Input/Condition | Result | Next Step |
|---|---|---|---|---|
| 1 | Receive request | User requests access to 'logs-2024' | Request received | Check user role |
| 2 | Check user role | User has role 'my_role' | Role found: 'my_role' | Match role permissions |
| 3 | Match role permissions | Role 'my_role' allows read on 'logs-*' | Permission matches request | Allow or deny access |
| 4 | Allow or deny access | Permission allows read | Access granted | Return response |
| 5 | Return response | Access granted | Response sent: 200 OK | End |
| Variable | Start | After Step 2 | After Step 3 | Final |
|---|---|---|---|---|
| user_role | undefined | 'my_role' | 'my_role' | 'my_role' |
| requested_action | undefined | 'read logs-2024' | 'read logs-2024' | 'read logs-2024' |
| permission_match | false | false | true | true |
| access_granted | false | false | false | true |
Role-based access control (RBAC) in Elasticsearch: - Define roles with specific permissions. - Assign roles to users. - When a user requests access, Elasticsearch checks the user's role. - Permissions linked to the role determine if access is allowed. - Access is granted or denied based on matching permissions.