From 7b57cdb01a3160dc3e7ac74dcf8bbecbd0ca4b8c Mon Sep 17 00:00:00 2001 From: John Pipkin Date: Fri, 7 Feb 2025 14:44:56 -0600 Subject: [PATCH 1/5] DOCS-680 - Update role filter article --- .../roles/construct-search-filter-for-role.md | 60 ++++++++++++------- .../users-roles/roles/create-manage-roles.md | 28 ++++++--- docs/reuse/role-stacking-tip.md | 3 + 3 files changed, 60 insertions(+), 31 deletions(-) create mode 100644 docs/reuse/role-stacking-tip.md diff --git a/docs/manage/users-roles/roles/construct-search-filter-for-role.md b/docs/manage/users-roles/roles/construct-search-filter-for-role.md index ee39416345..e2fdab06e0 100644 --- a/docs/manage/users-roles/roles/construct-search-filter-for-role.md +++ b/docs/manage/users-roles/roles/construct-search-filter-for-role.md @@ -5,7 +5,7 @@ description: Construct a role search filter to control what log data users with --- import useBaseUrl from '@docusaurus/useBaseUrl'; - +import RoleStacking from '../../../reuse/role-stacking-tip.md'; This page describes how to define search filters for a role. These instructions apply to the **Search Filter** option in Step 6 of the [Create a role](/docs/manage/users-roles/roles/create-manage-roles/#create-a-role) procedure. @@ -25,12 +25,13 @@ When a user with this filter enters a query like: _sourceCategory=labs/apache | parse "* --" as src_ip | count by src_ip | sort _count ``` -Sumo silently (it’s transparent to the user) adds the role filter to the beginning of the query with an AND: +Sumo Logic silently (it’s transparent to the user) adds the role filter to the beginning of the query with an `AND`: ```sql _sourceCategory=labs* AND (_sourceCategory=labs/apache | parse "* --" as src_ip | count by src_ip | sort _count) ``` + The examples above are simple: they involve a single role, and hence a single role filter.  -Typically however, a Sumo user will have multiple roles. If a user has multiple roles, Sumo `OR`s the several role filters and prepends that expression to the user’s queries with an `AND`, as discussed in [Multiple role filters and filter precedence](#multiple-role-filters-and-filter-precedence). +Typically however, a Sumo Logic user will have multiple roles. If a user has multiple roles, Sumo Logic `OR`s the several role filters and prepends that expression to the user’s queries with an `AND`, as discussed in [Multiple role filters and filter precedence](#multiple-role-filters-and-filter-precedence).    ## Search filter basics @@ -69,7 +71,7 @@ You can use metadata fields in a role search filter. The following search filter _collector=HR_Tools ``` -When a user with that role filter runs a query, Sumo prepends the filter to the query with an AND: +When a user with that role filter runs a query, Sumo Logic prepends the filter to the query with an `AND`: ```sql _collector=HR_Tools AND @@ -77,25 +79,25 @@ _collector=HR_Tools AND ### Using AND and OR in a search filter -You can use AND and OR in a search filter. For example, this role filter uses OR to grant access to log data from two source categories: +You can use `AND` and `OR` in a search filter. For example, this role filter uses `OR` to grant access to log data from two source categories: ```sql _sourceCategory=stock OR _sourceCategory=insurance ``` -When a user with that role filter runs a query, Sumo prepends the filter to the query with an AND: +When a user with that role filter runs a query, Sumo Logic prepends the filter to the query with an `AND`: ```sql (_sourceCategory=stock OR _sourceCategory=insurance) AND ``` -This role filter below uses AND to grant access to log data with the source category “insurance” from the collector named “HR_Tools”: +This role filter below uses `AND` to grant access to log data with the source category “insurance” from the collector named “HR_Tools”: ```sql _collector=HR_Tools AND _sourceCategory=insurance ``` -When a user with that role filter runs a query, Sumo prepends the filter to the query with an AND: +When a user with that role filter runs a query, Sumo Logic prepends the filter to the query with an `AND`: ```sql (_collector=HR_Tools AND _sourceCategory=insurance) AND @@ -109,7 +111,7 @@ You can include a string you want to search for in a role search filter. This ro _collector=HR_Tools AND enrollment ``` -When a user with that role filter runs a query, Sumo runs it like this: +When a user with that role filter runs a query, Sumo Logic runs it like this: ```sql (_collector=HR_Tools AND enrollment) AND @@ -123,7 +125,7 @@ You can use an asterisk (\*) as a wildcard in a role search filter. This role fi _collector=HR*  ``` -When a user with that role filter runs a query, Sumo runs it like this: +When a user with that role filter runs a query, Sumo Logic runs it like this: ```sql _collector=HR* AND @@ -135,7 +137,7 @@ This role filter grants access to logs that contain the string “violation” f _collector=HR* AND violation ``` -When a user with that role filter runs a query, Sumo runs it like this: +When a user with that role filter runs a query, Sumo Logic runs it like this: ```sql (_collector=HR* AND violation) AND @@ -155,15 +157,21 @@ denies access to log data whose:   * `_sourceName` contains “finance” * `_sourceCategory` contains “secret” -When a user with that role filter runs a query, Sumo runs it like this: +When a user with that role filter runs a query, Sumo Logic runs it like this: ```sql (!_sourceHost=humanresources* AND !_sourceName=*finance* AND !_sourceCategory=*secret*) AND ``` +:::warning +Although we provide this an example to show that it's possible, we do not recommend filtering to deny access. That's because if multiple roles are applied to a user, a situation can arise where one role denies access to a certain area, but another role allows access to that same area. Therefore, if possible, always apply filtering that allows access rather than denies access. Then roles can be used in an additive way to build access for users. +::: + ## Multiple role filters and filter precedence -When a user is assigned to multiple Sumo roles, Sumo combines the role filters from each of the roles using a logical OR to come up with the combined role filter. +When a user is assigned to multiple Sumo Logic roles ("role stacking"), Sumo Logic combines the role filters from each of the roles using a logical `OR` to come up with the combined role filter. + + When multiple roles filters are applied to a query, the least restrictive filter takes precedence. That this rule doesn’t apply if any of the role filters applied to a query is simply blank, which effectively grants access to all data, and would be the least restrictive filter. If the combined search filters applied to a query includes filters that are blank, the blank search filter is ignored and the next least restrictive filter takes precedence. So, if you actually want to grant a role access to all data, set the search filter to an asterisk (`*`). A search filter that is configured in that fashion will take precedence when combined with more restrictive search filters. @@ -180,7 +188,7 @@ Role A allows access to log data whose `_source` tag is “GCP Audit” and `_co Role B Allows access to log data whose `_sourceCategory` tag begins with “Vx”.   -When a user with Roles A and B runs a query, Sumo applies the filters with an OR, and prepends them with an AND to your query, like this: +When a user with Roles A and B runs a query, Sumo Logic applies the filters with an `OR`, and prepends them with an `AND` to your query, like this: ```sql ((_source="GCP Audit" AND _collector="GCP") OR _sourceCategory="Vx*") @@ -196,19 +204,19 @@ Assume the following role filters. | Role | Filter | |:----------|:-------------------| | Role A | `_collector=fee*` | -| Role B | `!_collector=fi*` | +| Role B | `_collector=f*` | Role A allows access only to log data whose `_collector` tag matches “fee\*”, and not to data whose `_collector` tag is any other value. -Role B Allows access to any log data whose `_collector` tag does not match “fi”.   +Role B Allows access to any log data whose `_collector` tag matches “f\*”, and not to data whose `_collector` tag is any other value.   -When a user with Roles A and B runs a query, Sumo combines the two filters with an OR, and prepends them with an AND to your query, like this: +When a user with Roles A and B runs a query, Sumo Logic combines the two filters with an `OR`, and prepends them with an `AND` to your query, like this: ```sql -(_collector=fee OR !_collector=fi) AND +(_collector=fee OR _collector=f) AND ``` -**The least restrictive of the role filters takes precedence**. So, although Role A effectively restricts results to log data that matches `_collector=fee*`, Role B allows grants access to all collectors, except for those that match `_collector=fi*`. So, Role B takes precedence and Role A has no effect. +**The least restrictive of the role filters takes precedence**. So, although Role A effectively restricts results to log data that matches `_collector=fee*`, Role B allows grants access to all collectors that match `_collector=f*`. So, Role B takes precedence and Role A has no effect. ### Example 3  @@ -224,7 +232,7 @@ Role A allows access only to log data whose `_sourceCategory` is “analytics-la Role B Allows access to log data whose `_sourceCategory` begins with “analytics”. -When a user with Roles A and B runs a query, Sumo combines the two filters with an OR, like this: +When a user with Roles A and B runs a query, Sumo Logic combines the two filters with an `OR`, like this: ```sql (_sourceCategory=analytics-lab OR _sourceCategory=analytics*) AND @@ -232,6 +240,7 @@ When a user with Roles A and B runs a query, Sumo combines the two filters with **The least restrictive of the role filters takes precedence.** Role A alone grants access to a log data from a single  source category, “analytics-lab”.  Role B grants access to log data to any source category that starts with “analytics”. Since the least restrictive filter takes precedence, data tagged `_sourceCategory=analyticsLong` could be returned in addition to data tagged `_sourceCategory=analytics-lab`. + -### Example 5 +### Example 4 Assume the following role filters. @@ -266,4 +276,8 @@ Role A allows access to all indexes whose name starts with "sumologic". Role B, with a blank search filter (user did not enter anything as the search filter for the role), allows access to all data. -When a user with Roles A and B runs a query, Sumo combines the two filters and since Role B has a blank search filter, the more restrictive search filter, Role A, takes precedence. Users with the combined role filter will be able to  view any log data in any of the indexes prefixed with "sumologic". +When a user with Roles A and B runs a query, Sumo Logic combines the two filters and since Role B has a blank search filter, the more restrictive search filter, Role A, takes precedence. Users with the combined role filter will be able to  view any log data in any of the indexes prefixed with "sumologic". + +## Test role filtering + +To test whether filtering works as expected, select a role and click the **Emulate log search** button. For more information, see [Test a role](/docs/manage/users-roles/roles/create-manage-roles/#test-a-roles-log-access-rights). \ No newline at end of file diff --git a/docs/manage/users-roles/roles/create-manage-roles.md b/docs/manage/users-roles/roles/create-manage-roles.md index d701a2ec06..b0bc174cf3 100644 --- a/docs/manage/users-roles/roles/create-manage-roles.md +++ b/docs/manage/users-roles/roles/create-manage-roles.md @@ -5,6 +5,7 @@ description: You can create custom roles for your users. --- import useBaseUrl from '@docusaurus/useBaseUrl'; +import RoleStacking from '../../../reuse/role-stacking-tip.md'; This section has instructions for creating and managing Sumo Logic roles. The roles you assign to a user control what Sumo Logic capabilities are available to the user and what log data the user can access. This functionality is referred to as role-based access control.   @@ -25,14 +26,17 @@ To create a role: 1. The **Create New Role** pane appears on the right side of the page.
Create a new role 1. **Name**. Enter a name for the role.  1. **Description**. Enter a description of the role to help other Administrators understand the purpose or limitations of the role. -1. **Search Filter**. Select one of the following to create a filter that allows access to only the logs that match the defined conditions. Only one is allowed for each. For examples, see [Search Filter and Index Access examples](#search-filter-and-index-access-examples) below. (For general guidance on creating search filters, see [Construct a Search Filter for a Role](/docs/manage/users-roles/roles/construct-search-filter-for-role/).) +1. **Search Filter**. Select one of the following to create a filter that allows access to only the logs that match the defined conditions. Only one is allowed for each. (For general guidance on creating search filters, see [Construct a Search Filter for a Role](/docs/manage/users-roles/roles/construct-search-filter-for-role/).) * **Log Analytics data filter**. This filter applies to all the [partitions](/docs/manage/partitions/run-search-against-partition/) and [LiveTail](/docs/search/live-tail/). * **Audit data filter**. This filter applies to all the logs in [Audit Indexes](/docs/manage/security/audit-indexes/) and [LiveTail](/docs/search/live-tail/). For example, you could include filters for `sumologic_audit_events`, `sumologic_search_events`, `sumologic_search_usage_per_query`, or `sumologic_system_events`, `sumologic_volume`, to name a few. * **Security data filter**. This filter applies on all logs in [Cloud SIEM security indexes](/docs/cse/records-signals-entities-insights/search-cse-records-in-sumo#partition-for-cloud-siem-signals). 1. **Index Access**. Allows or denies access to [search indexes](/docs/manage/partitions/data-tiers/). Select one of the following and choose the indexes in the **Select Indexes** box that appears: * **All indexes**. Allow access to all indexes. * **Allow few indexes**. Allow access to only the selected indexes. - * **Deny few indexes**. Deny access to the selected indexes. + * **Deny few indexes**. Deny access to the selected indexes. + :::warning + Use **Deny few indexes** with caution. We do not recommend filtering to deny access. That's because if multiple roles are applied to a user, a situation can arise where one role denies access to a certain area, but another role allows access to that same area. Therefore, if possible, apply filtering that allows access rather than denies access. For more information, see [Index Access behavior when a user has multiple roles](#index-access-behavior-when-a-user-has-multiple-roles) below. + ::: 1. **Capabilities**. In this section, click the checkbox beside each capability you want to grant to users with this role. For information about what each capability enables, see [Role Capabilities](/docs/manage/users-roles/roles/role-capabilities/). 1. Click **Save**.  @@ -42,9 +46,10 @@ Follow this process to restrict access using the **Search Filter** and **Index A 1. Identify the dataset you would like to control access to. Test it out using a [search query](/docs/search/get-started-with-search/). 2. Create the role using the **Search Filter** and/or **Index Access** sections. -3. Verify the dataset access is correct using [emulation](#test-a-role-with-search-filter-and-index-access-defined). +3. Verify the dataset access is correct using [emulation](#test-a-roles-log-access-rights). 4. [Assign the role](#add-a-user-to-a-role) to the relevant users. + ### Index Access behavior when a user has multiple roles +This section describes what happens when a user is assigned multiple roles ("role stacking") and each role has different settings for Index Access. + + + A role can have one of the following Index Access settings: * **All indexes**. Allows access to all indexes. * **Allow few indexes**. Allows access to only the selected indexes. - * **Deny few indexes**. Denies access to the selected indexes. + * **Deny few indexes**. Denies access to the selected indexes. However, if a user is assigned multiple roles that each have different Index Access settings, following is how they are evaluated: * **All indexes** + **Allow few indexes**. Indexes in the "Allow few indexes" list are allowed, and all other indexes are allowed. @@ -67,12 +77,14 @@ However, if a user is assigned multiple roles that each have different Index Acc * **Allow few indexes** + **Deny few indexes**. Indexes in the "Allow few indexes" list are allowed, indexes in the deny list are denied, and all other indexes are denied. * **All indexes** + **Deny few indexes** + **Allow few indexes**. Indexes in the "Allow few indexes" list are allowed, indexes in the deny list are denied, and the rest of the indexes are allowed. -### Test a role with Search Filter and Index Access defined +## Test a role's log access rights + +To test a role to see if it displays the expected log access behavior, select a role and click **Emulate log search**. 1. [**Classic UI**](/docs/get-started/sumo-logic-ui-classic/). In the main Sumo Logic menu select **Administration > Users and Roles > Roles**.
[**New UI**](/docs/get-started/sumo-logic-ui/). In the top menu select **Administration**, and then under **Users and Roles** select **Roles**. You can also click the **Go To...** menu at the top of the screen and select **Roles**. -1. Select a role with **Search Filter** and/or **Index Access** defined. -1. Click **Emulate log search**. The search will be emulated for the filtering defined in the role. (In the example below, an index access filter is defined.)
Emulate log search for index filter -1. Enter your search parameters in the log search emulation window. The search will return only what is allowed by filtering defined in the role.
Emulate log search window +1. Select a role. +1. Click **Emulate log search**. The search will be emulated for the permissions of the role, including the filtering defined in the role. (In the example below, an index access filter is defined.)
Emulate log search for index filter +1. Enter your search parameters in the log search emulation window. The search will return only what is allowed by the role.
Emulate log search window ## Add a user to a role diff --git a/docs/reuse/role-stacking-tip.md b/docs/reuse/role-stacking-tip.md new file mode 100644 index 0000000000..06b7e447ac --- /dev/null +++ b/docs/reuse/role-stacking-tip.md @@ -0,0 +1,3 @@ +:::tip +As a rule, you should avoid "role stacking" and provide all the access needed for a user in a single role. That is because when roles are stacked, conflicts can arise between the access provided by different roles. However, if you do "stack roles", we recommend that you use filtering to allow access rather than deny access. This way, each additional role allows more access, and conflicts are avoided that could arise from combining "allow access" and "deny access" filters from different roles. +::: \ No newline at end of file From 7f439b17169729f059b42372b4fadef96cbb352b Mon Sep 17 00:00:00 2001 From: "John Pipkin (Sumo Logic)" Date: Mon, 10 Feb 2025 09:44:17 -0600 Subject: [PATCH 2/5] Update docs/manage/users-roles/roles/construct-search-filter-for-role.md Co-authored-by: Kim (Sumo Logic) <56411016+kimsauce@users.noreply.github.com> --- .../users-roles/roles/construct-search-filter-for-role.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manage/users-roles/roles/construct-search-filter-for-role.md b/docs/manage/users-roles/roles/construct-search-filter-for-role.md index e2fdab06e0..c5f22607cc 100644 --- a/docs/manage/users-roles/roles/construct-search-filter-for-role.md +++ b/docs/manage/users-roles/roles/construct-search-filter-for-role.md @@ -164,7 +164,7 @@ When a user with that role filter runs a query, Sumo Logic runs it like this: ``` :::warning -Although we provide this an example to show that it's possible, we do not recommend filtering to deny access. That's because if multiple roles are applied to a user, a situation can arise where one role denies access to a certain area, but another role allows access to that same area. Therefore, if possible, always apply filtering that allows access rather than denies access. Then roles can be used in an additive way to build access for users. +Although this example demonstrates that filtering to deny access is possible, we do not recommend it. If a user has multiple roles, one role may deny access to an area while another grants access, leading to conflicts. To avoid this, use filtering to allow access rather than deny it. This ensures roles work additively, making access management more predictable. ::: ## Multiple role filters and filter precedence From 0b3e68d6fab316efa69f137dece4c0af011e902a Mon Sep 17 00:00:00 2001 From: "John Pipkin (Sumo Logic)" Date: Mon, 10 Feb 2025 09:44:50 -0600 Subject: [PATCH 3/5] Update docs/manage/users-roles/roles/create-manage-roles.md Co-authored-by: Kim (Sumo Logic) <56411016+kimsauce@users.noreply.github.com> --- docs/manage/users-roles/roles/create-manage-roles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manage/users-roles/roles/create-manage-roles.md b/docs/manage/users-roles/roles/create-manage-roles.md index b0bc174cf3..062ab3f93f 100644 --- a/docs/manage/users-roles/roles/create-manage-roles.md +++ b/docs/manage/users-roles/roles/create-manage-roles.md @@ -35,7 +35,7 @@ To create a role: * **Allow few indexes**. Allow access to only the selected indexes. * **Deny few indexes**. Deny access to the selected indexes. :::warning - Use **Deny few indexes** with caution. We do not recommend filtering to deny access. That's because if multiple roles are applied to a user, a situation can arise where one role denies access to a certain area, but another role allows access to that same area. Therefore, if possible, apply filtering that allows access rather than denies access. For more information, see [Index Access behavior when a user has multiple roles](#index-access-behavior-when-a-user-has-multiple-roles) below. + Use **Deny few indexes** with caution. We do not recommend filtering to deny access, as conflicting roles can create access inconsistencies—one role may deny access while another grants it. Whenever possible, apply filtering to allow access rather than deny it. This ensures roles work additively for more predictable access management. For more information, see [Index Access behavior when a user has multiple roles](#index-access-behavior-when-a-user-has-multiple-roles) below. ::: 1. **Capabilities**. In this section, click the checkbox beside each capability you want to grant to users with this role. For information about what each capability enables, see [Role Capabilities](/docs/manage/users-roles/roles/role-capabilities/). 1. Click **Save**.  From d1e4043be70d452c94484a146a1ca3bc3a66f192 Mon Sep 17 00:00:00 2001 From: "John Pipkin (Sumo Logic)" Date: Mon, 10 Feb 2025 09:45:19 -0600 Subject: [PATCH 4/5] Update docs/reuse/role-stacking-tip.md Co-authored-by: Kim (Sumo Logic) <56411016+kimsauce@users.noreply.github.com> --- docs/reuse/role-stacking-tip.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reuse/role-stacking-tip.md b/docs/reuse/role-stacking-tip.md index 06b7e447ac..3c10ac2f3d 100644 --- a/docs/reuse/role-stacking-tip.md +++ b/docs/reuse/role-stacking-tip.md @@ -1,3 +1,3 @@ :::tip -As a rule, you should avoid "role stacking" and provide all the access needed for a user in a single role. That is because when roles are stacked, conflicts can arise between the access provided by different roles. However, if you do "stack roles", we recommend that you use filtering to allow access rather than deny access. This way, each additional role allows more access, and conflicts are avoided that could arise from combining "allow access" and "deny access" filters from different roles. +As a best practice, avoid "role stacking" and assign all necessary access within a single role to prevent conflicts. When multiple roles are applied, conflicting permissions can arise. However, if role stacking is necessary, use filtering to allow access rather than deny it. This way, each additional role expands access rather than creating conflicts between "allow" and "deny" filters from different roles. ::: \ No newline at end of file From 817c9925ee3d3e098e620e58017b802bbce35e90 Mon Sep 17 00:00:00 2001 From: John Pipkin Date: Mon, 10 Feb 2025 09:46:33 -0600 Subject: [PATCH 5/5] Updates from reviews --- .../roles/construct-search-filter-for-role.md | 42 ++---------------- .../users-roles/roles/create-manage-roles.md | 2 +- .../users-roles/users/create-edit-users.md | 9 ++++ .../emulate-log-search-as-user.png | Bin 0 -> 43017 bytes .../users-roles/select-emulate-log-search.png | Bin 0 -> 35848 bytes 5 files changed, 14 insertions(+), 39 deletions(-) create mode 100644 static/img/users-roles/emulate-log-search-as-user.png create mode 100644 static/img/users-roles/select-emulate-log-search.png diff --git a/docs/manage/users-roles/roles/construct-search-filter-for-role.md b/docs/manage/users-roles/roles/construct-search-filter-for-role.md index c5f22607cc..e3505bc477 100644 --- a/docs/manage/users-roles/roles/construct-search-filter-for-role.md +++ b/docs/manage/users-roles/roles/construct-search-filter-for-role.md @@ -8,51 +8,17 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; import RoleStacking from '../../../reuse/role-stacking-tip.md'; This page describes how to define search filters for a role. These instructions apply to the **Search Filter** option in Step 6 of the [Create a role](/docs/manage/users-roles/roles/create-manage-roles/#create-a-role) procedure. - -## Understanding search filters - -A search filter for a role defines what log data a user with that role can access. You can define a search filter using keywords, wildcards, metadata fields, and logical operators. Here is a simple role filter: - -```sql -_sourceCategory=labs* -``` - -This filter grants access to logs whose `_sourceCategory` begins with the string “labs”. (Logs whose `_sourceCategory` don’t start with “labs” won’t be accessible.) - -When a user with this filter enters a query like: - -```sql -_sourceCategory=labs/apache | parse "* --" as src_ip | count by src_ip | sort _count -``` - -Sumo Logic silently (it’s transparent to the user) adds the role filter to the beginning of the query with an `AND`: - -```sql -_sourceCategory=labs* AND (_sourceCategory=labs/apache | parse "* --" as src_ip | count by src_ip | sort _count) -``` - - - -The examples above are simple: they involve a single role, and hence a single role filter.  - -Typically however, a Sumo Logic user will have multiple roles. If a user has multiple roles, Sumo Logic `OR`s the several role filters and prepends that expression to the user’s queries with an `AND`, as discussed in [Multiple role filters and filter precedence](#multiple-role-filters-and-filter-precedence).    ## Search filter basics -The sections below list search filter limitations, and describe how you can use keywords, wildcards, metadata, and logical operators in filters.  +A search filter for a role defines what log data a user with that role can access. You can define a search filter using keywords, wildcards, metadata fields, and logical operators. -The explanations of the behavior of each example filter assume that no other role filters apply. In practice, you will likely assign multiple roles to users. After you understand the basics of how role filters work, see [Multiple role filters and filter precedence](#multiple-role-filters-and-filter-precedence). +The explanations of the behavior of each example filter assume that no other role filters apply. In practice, you may assign multiple roles to users. After you understand the basics of how role filters work, see [Multiple role filters and filter precedence](#multiple-role-filters-and-filter-precedence). ### Search filter limitations +The sections below list search filter limitations, and describe how you can use keywords, wildcards, metadata, and logical operators in filters.  + * Role filters should include only keyword expressions or built-in metadata field expressions using these fields: `_sourcecategory`, `_collector`, `_source`, `_sourcename`, `_sourcehost`. * Using `_index` or `_view` in a role filter scope is not supported. * Role filters cannot include vertical pipes (`|`). diff --git a/docs/manage/users-roles/roles/create-manage-roles.md b/docs/manage/users-roles/roles/create-manage-roles.md index 062ab3f93f..4653e3d169 100644 --- a/docs/manage/users-roles/roles/create-manage-roles.md +++ b/docs/manage/users-roles/roles/create-manage-roles.md @@ -79,7 +79,7 @@ However, if a user is assigned multiple roles that each have different Index Acc ## Test a role's log access rights -To test a role to see if it displays the expected log access behavior, select a role and click **Emulate log search**. +To test a role to see if it displays the expected log access behavior, select a role and click **Emulate log search**. (You can also test a user. See [Test a user's log access rights](/docs/manage/users-roles/users/create-edit-users/#test-a-users-log-access-rights).) 1. [**Classic UI**](/docs/get-started/sumo-logic-ui-classic/). In the main Sumo Logic menu select **Administration > Users and Roles > Roles**.
[**New UI**](/docs/get-started/sumo-logic-ui/). In the top menu select **Administration**, and then under **Users and Roles** select **Roles**. You can also click the **Go To...** menu at the top of the screen and select **Roles**. 1. Select a role. diff --git a/docs/manage/users-roles/users/create-edit-users.md b/docs/manage/users-roles/users/create-edit-users.md index 0a3db0de07..ddb28eefc4 100644 --- a/docs/manage/users-roles/users/create-edit-users.md +++ b/docs/manage/users-roles/users/create-edit-users.md @@ -46,3 +46,12 @@ When you add or remove a role from a user, it can take about an hour for the RBA 1. Select the row for the user you want to edit and choose **Edit** from the three-dot kebab options menu. 1. An edit pane appears on the right side of the page. For information about edit options, see [Create a user](#create-a-user) above. 1. After editing the user, click **Save**. + +## Test a user's log access rights + +A user's permissions in Sumo Logic are determined by the [roles the user is assigned](/docs/manage/users-roles/roles/add-remove-users-role/). After assigning roles to a user, you can test the user to see if it displays the expected log access behavior based on its assigned roles. (You can also test a role. See [Test a role's log access rights](/docs/manage/users-roles/roles/create-manage-roles/#test-a-roles-log-access-rights).) + +1. [**Classic UI**](/docs/get-started/sumo-logic-ui-classic/). In the main Sumo Logic menu select **Administration > Users and Roles > Users**.
[**New UI**](/docs/get-started/sumo-logic-ui/). In the top menu select **Administration**, and then under **Users and Roles** select **Users**. You can also click the **Go To...** menu at the top of the screen and select **Users**. +1. Select a user. +1. Click **More Actions > Emulate log search**. The search will be emulated for the permissions of the user.
Emulate log search for a user +1. Enter your search parameters in the log search emulation window. The search will return only what is allowed for the user.
Emulate log search window diff --git a/static/img/users-roles/emulate-log-search-as-user.png b/static/img/users-roles/emulate-log-search-as-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7d056058668a7e88684e60cc4d5ac7d0ea762d GIT binary patch literal 43017 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�DUhM3TNv|cQ^^cYsHhR%!Y({ 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 literal 0 HcmV?d00001