Skip to content

Commit 6c866ec

Browse files
[Security][9.4 & Serverless][RBAC] Ability to grant access to alerts (#5538)
<!-- Thank you for contributing to the Elastic Docs! 🎉 Use this template to help us efficiently review your contribution. --> ## Summary <!-- Describe what your PR changes or improves. If your PR fixes an issue, link it here. If your PR does not fix an issue, describe the reason you are making the change. --> Fixes elastic/docs-content-internal#796. ### Preview - [Detections privileges | Manage alerts](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5538/solutions/security/detect-and-alert/detections-privileges#manage-alerts): Doc's what's needed to manage alerts in Serverless/9.4, and previous releases. - [Entity risk scoring](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5538/solutions/security/advanced-entity-analytics/entity-risk-scoring-requirements#_entity_risk_scoring) - Updated custom stack roles privs to show access needed to view alert risk contributions in entity details. Need to know which predefined roles provide this access. - [View the Privileged user monitoring dashboard](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5538/solutions/security/advanced-entity-analytics/privileged-user-monitoring-requirements#privmon_privs) - Updated privs for viewing the **Privileged user monitoring** dashboard. - [Attack discovery](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5538/solutions/security/ai/attack-discovery#attack-discovery-rbac) - Added a new tab for privs needed to access Attack discovery alerts. - [Cases](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5538/explore-analyze/cases/control-case-access#give-alerts-access) - Updated privs for adding alerts to cases. ## Generative AI disclosure <!-- To help us ensure compliance with the Elastic open source and documentation guidelines, please answer the following: --> 1. Did you use a generative AI (GenAI) tool to assist in creating this contribution? - [x] Yes - [ ] No <!-- 2. If you answered "Yes" to the previous question, please specify the tool(s) and model(s) used (e.g., Google Gemini, OpenAI ChatGPT-4, etc.). Tool(s) and model(s) used: --> Cursor + Auto mode --------- Co-authored-by: Ryland Herrick <ryalnd@gmail.com>
1 parent 7e6a77e commit 6c866ec

5 files changed

Lines changed: 78 additions & 31 deletions

File tree

explore-analyze/cases/control-case-access.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,16 @@ Users must log in to their deployment at least once before they can be assigned
108108

109109
::::{applies-switch}
110110

111-
:::{applies-item} stack: ga
111+
:::{applies-item} { stack: ga 9.4+, serverless: ga }
112112

113-
* `All` for the **Cases** feature under the appropriate solution (**Security** or **{{observability}}**).
114-
* `Read` for a solution that has alerts (for example, **{{observability}}** or **Security**).
113+
* `All` for the **Cases** feature under the appropriate solution (**Security** or **{{observability}}**).
114+
* To work with alerts in cases:
115+
- **Security**: `Read` or `All` for the **Security > Alerts** feature. For what each level allows, refer to [Detections privileges](/solutions/security/detect-and-alert/detections-privileges.md#manage-alerts).
116+
- **{{observability}}**: `Read` for **{{observability}}**
115117

116118
:::
117119

118-
:::{applies-item} serverless: ga
120+
:::{applies-item} stack: ga 9.0-9.3
119121

120122
* `All` for the **Cases** feature under the appropriate solution (**Security** or **{{observability}}**).
121123
* `Read` for a solution that has alerts (for example, **{{observability}}** or **Security**).

solutions/security/advanced-entity-analytics/entity-risk-scoring-requirements.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ To install or run the risk scoring engine, you need the following:
3535
| --- | --- | --- | --- |
3636
| Install the risk engine | `manage_index_templates`<br> `manage_transform`<br> `manage_ingest_pipelines` | `All` for `risk-score.risk-score-*` | **Read** for the **Security** feature |
3737
| Run the risk engine | `manage_transform` | N/A | **Read** for the **Security** feature |
38+
| {applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` View alert risk contributions in entity details | N/A | N/A | **Read** for the **Security > Alerts** feature |
3839

3940

4041
### Predefined roles [ers_roles]

solutions/security/advanced-entity-analytics/privileged-user-monitoring-requirements.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,31 @@ To use this feature, you need:
2424

2525
## Privileges [privmon_privs]
2626

27+
:::{table}
28+
:widths: 2-6-4
29+
2730
| Action | Index Privileges | Kibana Privileges |
2831
| ------ | ---------------- | ----------------- |
29-
| Enable the privileged user monitoring feature | N/A | **All** for the **Security** feature |
30-
| View the Privileged user monitoring dashboard | `Read` for the following indices:<br> - `.entity_analytics.monitoring.users-<space-id>`<br> - `risk-score.risk-score-*`<br> - `.alerts-security.alerts-<space-id>`<br> - `.ml-anomalies-shared`<br> - Security data view indices | **Read** for the **Security** feature |
32+
| Enable privileged user monitoring | N/A | **All** for the **Security** feature |
33+
| View Privileged user monitoring dashboard | `Read` for the following indices:<br> - `.entity_analytics.monitoring.users-<space-id>`<br> - `risk-score.risk-score-*`<br> - `.alerts-security.alerts-<space-id>`<br> - `.ml-anomalies-shared`<br> - Security data view indices | {applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` **Read** for the **Security** feature and at least **Read** for the **Alerts** feature to view detection alert data on the dashboard. <br><br>{applies_to}`stack: ga =9.3` **Read** for the **Security** feature |
34+
35+
:::
3136

3237
## Predefined roles [privmon_roles]
3338
```yaml {applies_to}
3439
serverless:
3540
```
3641
42+
:::{table}
43+
:widths: 4-8
44+
3745
| Action | Predefined role |
3846
| --- | --- |
3947
| Enable privileged user monitoring | - Platform engineer<br>- Admin |
4048
| View the Privileged user monitoring dashboard | - Tier 1 analyst<br>- Tier 2 analyst<br>- Tier 3 analyst<br>- Rule author<br>- SOC manager<br>- Platform engineer<br>- Detections admin<br>- Admin |
4149
50+
:::
51+
4252
## Known limitations
4353
4454
* Currently, none of the privileged user monitoring visualizations support [cross-cluster search](/explore-analyze/cross-cluster-search.md) as part of the data that they query from.

solutions/security/ai/attack-discovery.md

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,30 @@ To use Attack Discovery, your role needs specific privileges.
2626

2727
::::{applies-switch}
2828

29-
:::{applies-item} { "stack": "ga 9.3+", "serverless": "ga" }
29+
:::{applies-item} { "stack": "ga 9.4+", "serverless": "ga" }
3030

3131
Ensure your role has:
3232

33-
* `All` [{{kib}} privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-role-management.md) for the **Security > Attack discovery** {{kib}} feature and at least `Read` privileges for the **Security > Rules** {{kib}} feature.
33+
* Minimum [{{kib}} privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-role-management.md) for these **Security** features:
34+
35+
- `All` for **Attack discovery**
36+
- At least `Read` for **Rules**
37+
- At least `Read` for **Alerts**
38+
39+
* The appropriate [index privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-role-management.md#adding_index_privileges), based on what you want to do with Attack Discovery alerts:
40+
41+
| Action | Indices | {{es}} privileges |
42+
|---------|---------|--------------------------|
43+
| Read Attack Discovery alerts | - `.alerts-security.attack.discovery.alerts-<space-id>`<br>- `.internal.alerts-security.attack.discovery.alerts-<space-id>`<br> - `.adhoc.alerts-security.attack.discovery.alerts-<space-id>`<br>- `.internal.adhoc.alerts-security.attack.discovery.alerts-<space-id>`| `read` and `view_index_metadata` |
44+
| Read and modify Attack Discovery alerts. This includes:<br>- Generating discovery alerts manually<br>- Generating discovery alerts using schedules<br>- Sharing manually created alerts with other users<br>- Updating a discovery's status |- `.alerts-security.attack.discovery.alerts-<space-id>`<br>- `.internal.alerts-security.attack.discovery.alerts-<space-id>`<br>- `.adhoc.alerts-security.attack.discovery.alerts-<space-id>`<br>- `.internal.adhoc.alerts-security.attack.discovery.alerts-<space-id>`| `read`, `view_index_metadata`, `write`, and `maintenance`|
45+
46+
:::
47+
48+
:::{applies-item} { "stack": "ga 9.3"}
49+
50+
Ensure your role has:
51+
52+
* `All` [{{kib}} privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-role-management.md) for the **Security > Attack discovery** {{kib}} feature and at least `Read` privileges for the **Security > Rules, Alerts, and Exceptions** {{kib}} feature.
3453

3554
![attack-discovery-rules-rbac](/solutions/images/attack-discovery-rules-rbac.png "elasticsearch =60%x60%")
3655

@@ -49,7 +68,7 @@ Ensure your role has:
4968

5069
* `All` [{{kib}} privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-role-management.md) for the **Security > Attack discovery** {{kib}} feature and at least `Read` privileges for the **Security > Rules, Alerts, and Exceptions** {{kib}} feature.
5170

52-
![attack-discovery-rbac](/solutions/images/security-attck-disc-rbac.png)
71+
![attack-discovery-rbac](/solutions/images/security-attck-disc-rbac.png "elasticsearch =60%x60%")
5372

5473
* The appropriate [index privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-role-management.md#adding_index_privileges), based on what you want to do with Attack Discovery alerts:
5574

@@ -64,7 +83,7 @@ Ensure your role has:
6483

6584
Ensure your role has `All` [{{kib}} privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-role-management.md) for the **Security > Attack discovery** {{kib}} feature.
6685

67-
![attack-discovery-rbac](/solutions/images/security-attck-disc-rbac.png)
86+
![attack-discovery-rbac](/solutions/images/security-attck-disc-rbac.png "elasticsearch =60%x60%")
6887

6988
:::
7089

@@ -82,7 +101,8 @@ In {{stack}} 9.0.0, the **Run** button is called **Generate**.
82101

83102
::::{image} /solutions/images/security-attack-discovery-settings.png
84103
:alt: Attack Discovery's settings menu
85-
:width: 500px
104+
:screenshot:
105+
:width: 60%
86106
::::
87107

88108
You can select which alerts Attack Discovery will process by filtering based on a KQL query, the time and date selector, and the **Number of alerts** slider. Note that sending more alerts than your chosen LLM can handle may result in an error. Under **Alert summary** you can view a summary of the selected alerts grouped by various fields, and under **Alerts preview** you can see more details about the selected alerts.
@@ -115,6 +135,8 @@ You’ll need to select an LLM connector before you can analyze alerts. To get s
115135

116136
:::{image} /solutions/images/security-attck-disc-select-model-empty.png
117137
:alt: attck disc select model empty
138+
:screenshot:
139+
:width: 60%
118140
:::
119141

120142
3. Once you’ve selected a connector, do one of the following to start the analysis:
@@ -138,6 +160,8 @@ Each discovery includes the following information describing the potential threa
138160

139161
:::{image} /solutions/images/security-attck-disc-example-disc.png
140162
:alt: Attack Discovery detail view
163+
:screenshot:
164+
:width: 60%
141165
:::
142166

143167

@@ -153,6 +177,7 @@ There are several ways you can incorporate discoveries into your {{elastic-sec}}
153177

154178
:::{image} /solutions/images/security-add-discovery-to-assistant.gif
155179
:alt: Attack Discovery view in AI Assistant
180+
:width: 60%
156181
:::
157182

158183
## Schedule discoveries

solutions/security/detect-and-alert/detections-privileges.md

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
mapped_pages:
33
- https://www.elastic.co/guide/en/security/current/detections-permissions-section.html
44
applies_to:
5-
stack: ga all
5+
stack: ga
66
serverless:
7-
security: ga all
7+
security: ga
88
products:
99
- id: security
1010
- id: cloud-serverless
@@ -15,9 +15,9 @@ description: Find privilege requirements, predefined roles, and the authorizatio
1515

1616
Learn about the access requirements for detection features, including:
1717

18-
- **Privilege requirements**: Cluster, index, and {{kib}} privileges that your role needs to enable detections, manage rules, and more
19-
- **Predefined {{serverless-full}} roles**: {{serverless-short}} roles with detection privileges
20-
- **Authorization model**: How rules inherit privileges from their last editor via API keys
18+
- **Privilege requirements**: Cluster, index, and {{kib}} privileges that your role needs to enable detections, manage rules, view and edit alerts, and more
19+
- **Predefined {{serverless-full}} roles**: {{serverless-short}} roles with detection privileges
20+
- **Authorization model**: How rules inherit privileges from their last editor using API keys
2121

2222
For instructions on turning on the detections feature, refer to [Turn on detections](/solutions/security/detect-and-alert/turn-on-detections.md).
2323

@@ -27,7 +27,14 @@ Rules run in the background using the privileges of the user who last edited the
2727

2828
## About index privileges
2929

30-
When creating custom roles for detection features, you'll need to grant access to system indices that include your space ID (`<space-id>`). For example, the default space uses `.alerts-security.alerts-default`. Refer to the following details to understand which system indices your role might require access to.
30+
When creating custom roles for detection features, you'll need to grant access to system indices that include your space ID (`<space-id>`). For example, the default space uses `.alerts-security.alerts-default`. Refer to the following details to understand which system indices your role might require access to.
31+
32+
{applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` You can give a role access to alerts only, rules only, or both.
33+
34+
:::{admonition} Role access to rules and alerts in 9.4
35+
:applies_to: {"stack": "ga 9.4+", "serverless": "ga"}
36+
Starting in {{stack}} 9.4, new custom roles require explicit **Rules and Exceptions** and **Alerts** privileges. Earlier releases sometimes granted alert-related access indirectly through broader **Security** privileges or the **Rules, Alerts, and Exceptions** feature. Review custom roles after an upgrade to confirm each role still has the intended access to alerts.
37+
:::
3138

3239
:::::{tab-set}
3340

@@ -56,7 +63,8 @@ Index privileges
5663
- `.items-<space-id>`
5764

5865
{{kib}} privileges
59-
: - {applies_to}`stack: ga 9.3` {applies_to}`serverless: ga` `All` for the `Rules, Alerts, and Exceptions` feature
66+
: - {applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` `All` for the `Rules and Exceptions` feature and `All` for the `Alerts` feature
67+
- {applies_to}`stack: ga =9.3` {applies_to}`serverless: ga` `All` for the `Rules, Alerts, and Exceptions` feature
6068
- {applies_to}`stack: ga 9.0-9.2` `All` for the `Security` feature
6169

6270
## Preview rules
@@ -70,7 +78,8 @@ Index privileges
7078
- `.internal.preview.alerts-security.alerts-<space-id>-*`
7179

7280
{{kib}} privileges
73-
: - {applies_to}`stack: ga 9.3+` {applies_to}`serverless: ga` `All` for the `Rules, Alerts, and Exceptions` feature
81+
: - {applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` `All` for the `Rules and Exceptions` feature and `All` for the `Alerts` feature
82+
- {applies_to}`stack: ga =9.3` {applies_to}`serverless: ga` `All` for the `Rules, Alerts, and Exceptions` feature
7483
- {applies_to}`stack: ga 9.0-9.2` `All` for the `Security` feature
7584

7685
## Manage rules
@@ -86,11 +95,12 @@ Index privileges
8695
- `.items-<space-id>`
8796

8897
{{kib}} privileges
89-
: - {applies_to}`stack: ga 9.3+` {applies_to}`serverless: ga` `All` for the `Rules, Alerts, and Exceptions` feature
98+
: - {applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` `All` for the `Rules and Exceptions` feature and `All` for the `Alerts` feature
99+
- {applies_to}`stack: ga =9.3` {applies_to}`serverless: ga` `All` for the `Rules, Alerts, and Exceptions` feature
90100
- {applies_to}`stack: ga 9.0-9.2` `All` for the `Security` feature
91101

92102
::::{note}
93-
To manage rules with actions and connectors, you need additional privileges for the `Actions and Connectors` feature (`Management`> `Actions and Connectors`):
103+
To manage rules with actions and connectors, you need additional privileges for the `Actions and Connectors` feature (`Management` > `Actions and Connectors`):
94104

95105
- `All`: Provides full access to rule actions and connectors.
96106
- `Read`: Allows you to edit rule actions and use existing connectors, but you cannot create new connectors.
@@ -114,15 +124,11 @@ Index privileges
114124
- `.items-<space-id>`
115125

116126
{{kib}} privileges
117-
: - {applies_to}`stack: ga 9.3` {applies_to}`serverless: ga` `All` for the `Rules, Alerts, and Exceptions` feature
127+
: - {applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` `Read` for `Alerts`: View alerts, open alert flyouts, and view alert tables on pages and dashboards with alert-related flows.
128+
- {applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` `All` for `Alerts`: Everything that `Read` provides, plus changing alert status, setting assignees, setting tags, and bulk actions on alerts.
129+
- {applies_to}`stack: ga 9.3` `All` for the `Rules, Alerts, and Exceptions` feature to view alert management flows
118130
- {applies_to}`stack: ga 9.0-9.2` `All` for the `Security` feature
119131

120-
::::{note}
121-
Alerts are managed through {{es}} index privileges. To view alert management flows, you need at least `Read` for the `Rules, Alerts, and Exceptions` feature.
122-
123-
Before a user can be assigned to a case, they must log into {{kib}} at least once to create a user profile.
124-
::::
125-
126132
## Manage exceptions
127133

128134
Cluster privileges
@@ -132,7 +138,7 @@ Index privileges
132138
: None
133139

134140
{{kib}} privileges
135-
: - {applies_to}`stack: ga 9.4` {applies_to}`serverless: ga` At least `Read` for the `Rules, Alerts, and Exceptions` feature and **Manage Exceptions** selected for the `Exceptions` sub-feature
141+
: - {applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` At least `Read` for the `Rules and Exceptions` feature and **Manage Exceptions** selected for the `Exceptions` sub-feature
136142
- {applies_to}`stack: ga =9.3` `All` for the `Rules, Alerts, and Exceptions` feature
137143
- {applies_to}`stack: ga 9.0-9.2` `All` for the `Security` feature
138144

@@ -147,11 +153,12 @@ Index privileges
147153
- `.items-<space-id>`
148154

149155
{{kib}} privileges
150-
: - {applies_to}`stack: ga 9.3` {applies_to}`serverless: ga` `All` for the `Rules, Alerts, and Exceptions` feature
156+
: - {applies_to}`stack: ga 9.4+` {applies_to}`serverless: ga` `All` for the `Rules and Exceptions` feature and `All` for the `Alerts` feature
157+
- {applies_to}`stack: ga =9.3` {applies_to}`serverless: ga` `All` for the `Rules, Alerts, and Exceptions` feature
151158
- {applies_to}`stack: ga 9.0-9.2` `All` for the `Security` feature
152159

153160
::::{important}
154-
To create the `.lists` and `.items` data streams in your space, visit the **Rules** page for each appropriate space.
161+
To create the `.lists` and `.items` data streams in your space, visit the **Rules** page for each appropriate space.
155162
::::
156163

157164

@@ -167,6 +174,8 @@ serverless: ga
167174
| --- | --- |
168175
| Manage rules | Threat Intelligence Analyst, Tier 3 Analyst, Detections Eng, SOC Manager, Endpoint Policy Manager, Platform Engineer, Editor |
169176
| View rules (read only) | Tier 1 Analyst, Tier 2 Analyst, Viewer, Endpoint Operations Analyst |
177+
| View alerts and entity risk scoring (read only) | Viewer, Editor, Tier 1 Analyst, Tier 2 Analyst, Tier 3 Analyst, Threat Intelligence Analyst, Rule author, SOC Manager, Detections Eng, Platform Engineer, Endpoint Operations Analyst, Endpoint Policy Manager |
170178
| Manage alerts | All roles except Viewer |
171179
| Manage exceptions and value lists | Threat Intelligence Analyst, Tier 3 Analyst, Detections Eng, SOC Manager, Endpoint Policy Manager, Platform Engineer, Editor |
172180
| View exceptions and value lists (read only) | Tier 1 Analyst, Tier 2 Analyst, Viewer, Endpoint Operations Analyst |
181+

0 commit comments

Comments
 (0)