-
Notifications
You must be signed in to change notification settings - Fork 8.5k
[EDR Workflows][Device Control] Policy configuration #228958
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…/kibana into device-control-rbac
|
Pinging @elastic/security-defend-workflows (Team:Defend Workflows) |
|
This feature is too large to land in a single PR, so I’ll be splitting the work into reasonably scoped chunks. This is the initial PR, which introduces the policy settings UI for Device Control. More importantly, it also lays down the internal logic for handling permission validation, license downgrades, and related mechanisms. All texts should be treated as placeholders for now - final copy is still in progress. Crucially, all changes are gated behind a feature flag. Please double-check that nothing unintentionally affects existing policy behavior when the flag is off (which will be the case after merge). Thanks! :) |
|
Pinging @elastic/fleet (Team:Fleet) |
PhilippeOberti
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a comment, not a blocker just an fyi :)
x-pack/solutions/security/plugins/security_solution/common/experimental_features.ts
Outdated
Show resolved
Hide resolved
paul-tavares
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
jen-huang
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fleet auth changes LGTM
gergoabraham
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks great! added some small stuff, but no blockers 🚀 nice work!
x-pack/solutions/security/packages/features/src/security/v3_features/kibana_sub_features.ts
Outdated
Show resolved
Hide resolved
...solutions/security/plugins/security_solution/common/endpoint/models/policy_config_helpers.ts
Outdated
Show resolved
Hide resolved
x-pack/solutions/security/plugins/security_solution/common/endpoint/types/index.ts
Outdated
Show resolved
Hide resolved
...gement/pages/policy/view/policy_settings_form/components/device_control_protection_level.tsx
Show resolved
Hide resolved
💚 Build Succeeded
Metrics [docs]Module Count
Async chunks
Page load bundle
History
|
Follow up elastic#229921 This PR adds support for Trusted Devices management in Endpoint policy settings, introducing new UI and backend capabilities gated by license and product feature checks. Final card <img width="1236" height="470" alt="Screenshot 2025-08-01 at 13 01 16" src="https://github.com/user-attachments/assets/d1e14488-507f-4569-bf13-208c10b06196" /> <img width="1652" height="1288" alt="Screenshot 2025-07-30 at 11 42 55" src="https://github.com/user-attachments/assets/e3d6289e-c796-4d23-9cc8-5e3bbc1d8000" /> #### Key Features - **Trusted Devices Privilege:** Users can be assigned a "Trusted Devices" privilege, granting access to the Device Control panel within policy settings. <details><summary>:camera: Screenshots</summary><img width="1423" height="1342" alt="Screenshot 2025-07-28 at 09 49 50" src="https://github.com/user-attachments/assets/f115e31b-6e09-4f04-bf86-ccc77643a408" /></details> - **Product Feature Flag:** Adds the `endpointTrustedDevice` product feature, available as part of the Endpoint Complete Serverless PLI. - **Device Control Section:** Policies now include a Device Control section, allowing users to enable/disable the feature and set the required protection level. - **Feature Flag Coverage:** All UI and backend flows are orchestrated by a dedicated feature flag to ensure consistent enablement and rollout. #### Supported Scenarios - **Exitsting Policy:** When upgrading to this version, existing endpoint policies will display the Device Control section (disabled by default). <details><summary>:camera: Screenshots</summary><img width="1331" height="1194" alt="Screenshot 2025-07-28 at 09 44 11" src="https://github.com/user-attachments/assets/164efc19-bc48-4657-8989-09764556c2f1" /></details> - **New Policy Creation:** New policies have Device Control enabled and set to "Block all" by default. <details><summary>:camera: Screenshots</summary><img width="1364" height="1275" alt="Screenshot 2025-07-28 at 09 44 21" src="https://github.com/user-attachments/assets/299b3f77-0ee4-4921-bd26-f6ad334c4583" /></details> - **Serverless Upsell:** On Serverless, users without Endpoint Complete tier see an upsell component in place of Device Control. <details><summary>:camera: Screenshots</summary><img width="2555" height="1241" alt="Screenshot 2025-07-25 at 21 54 33" src="https://github.com/user-attachments/assets/4137e6bf-8b91-44a2-92c1-927620935d4e" /></details> - **ESS Upsell:** On ESS, users without an Enterprise license see an upsell component instead of Device Control. <details><summary>:camera: Screenshots</summary><img width="1412" height="1168" alt="Screenshot 2025-07-28 at 09 47 20" src="https://github.com/user-attachments/assets/58fe310e-ae77-4dfc-b72d-ce2d6d3cf948" /></details> - **API Enforcement:** All API endpoints for policy creation/modification are gated with PLI and license checks to prevent unauthorized use of Device Control. - **Compliance Task:** A background task checks all policies for compliance with enabled features. Device Control is automatically disabled on non-compliant policies.
Prerequisite #228958 Followup #230174 ### Device Control — Trusted Devices (UI only) This is the next PR in the Device Control series and focuses on the UI for **Trusted Devices**. **What’s included** - New **Trusted Devices** section under **Management** and a “Trusted devices” tab in policy settings. - Lists API now accepts the `trusted_device` list type (read-only for now). - Feature flag and RBAC/PLI visibility wired up. **What’s missing** - Artifact CRUD ops; the form is stubbed and will be completed in the next PR. **Heads-up** All texts and icons are placeholders while we wait for final assets. That shouldn’t block this PR - we’ll merge with the feature flag disabled. See the attached screenshots for how it behaves in various states. <img width="1405" height="967" alt="Screenshot 2025-07-29 at 13 57 46" src="https://github.com/user-attachments/assets/2c3a3951-5410-44cf-b533-2865a342eb13" /> <img width="1402" height="1124" alt="Screenshot 2025-07-29 at 13 57 59" src="https://github.com/user-attachments/assets/796bc42e-7a40-4306-a6c2-73cb850329aa" /> <img width="1419" height="1142" alt="Screenshot 2025-07-29 at 13 58 06" src="https://github.com/user-attachments/assets/8289d165-8a66-4b12-b554-8dc38b7022c8" /> <img width="1407" height="887" alt="Screenshot 2025-07-29 at 16 51 25" src="https://github.com/user-attachments/assets/39e0543f-d0bc-4698-a169-e6dc54c8c934" /> <img width="1420" height="1181" alt="Screenshot 2025-07-30 at 09 20 46" src="https://github.com/user-attachments/assets/f82b8551-6ada-4ac7-980a-f56daf4f22df" /> <img width="1396" height="1216" alt="Screenshot 2025-07-30 at 09 21 02" src="https://github.com/user-attachments/assets/fb0a1cd2-2e8b-417a-800c-b02926dfe79f" /> <details><summary>ESS Feature Flag Disabled 📸 </summary> <img width="1424" height="880" alt="Screenshot 2025-07-30 at 09 35 27" src="https://github.com/user-attachments/assets/c7b517ed-367f-4783-ad28-5089e7e59341" /> <img width="1399" height="992" alt="Screenshot 2025-07-30 at 09 35 58" src="https://github.com/user-attachments/assets/227944d1-121c-443c-bd54-6b731476cfe1" /> <img width="1412" height="853" alt="Screenshot 2025-07-30 at 09 36 14" src="https://github.com/user-attachments/assets/de37e0af-a9e2-45c7-bb8e-736ecca8c473" /> <img width="1418" height="975" alt="Screenshot 2025-07-30 at 09 36 38" src="https://github.com/user-attachments/assets/9bff9aeb-4cdf-4d33-80a7-4fb765c1e38a" /> <img width="1373" height="1069" alt="Screenshot 2025-07-30 at 09 37 01" src="https://github.com/user-attachments/assets/010a45f9-67ef-439b-a413-8d5c69aa2622" /> <img width="1407" height="826" alt="Screenshot 2025-07-30 at 09 37 16" src="https://github.com/user-attachments/assets/a889f4f9-b4cd-4803-b176-addbd081b161" /> <img width="1405" height="955" alt="Screenshot 2025-07-30 at 09 37 28" src="https://github.com/user-attachments/assets/0f5fee8a-79ee-4b74-9975-013ee13ca0f8" /> </details> <details><summary>ESS Platinum Feature Flag Enabled 📸 </summary> <img width="1427" height="968" alt="Screenshot 2025-07-30 at 09 41 05" src="https://github.com/user-attachments/assets/2bccb7a7-2931-413f-bfae-9d9e7a439236" /> <img width="1413" height="885" alt="Screenshot 2025-07-30 at 09 41 57" src="https://github.com/user-attachments/assets/dd72c88f-ddc1-4b85-9732-fde5877d976f" /> <img width="1338" height="893" alt="Screenshot 2025-07-30 at 09 42 13" src="https://github.com/user-attachments/assets/90e52017-d7b0-48e2-8e4d-1972a1addbe8" /> <img width="1402" height="1377" alt="Screenshot 2025-07-30 at 09 42 26" src="https://github.com/user-attachments/assets/4623dfdd-40e3-471c-b993-c52bcba05ca9" /> <img width="1413" height="1375" alt="Screenshot 2025-07-30 at 09 42 38" src="https://github.com/user-attachments/assets/6deba224-85d2-4356-adc7-59dc9b951d46" /> <img width="1411" height="1379" alt="Screenshot 2025-07-30 at 09 42 49" src="https://github.com/user-attachments/assets/dabb63b4-840d-47f2-82bb-509656723ba4" /> <img width="1415" height="934" alt="Screenshot 2025-07-30 at 09 44 25" src="https://github.com/user-attachments/assets/bc8d59bb-698a-463d-b5e9-d803ddf7310a" /> </details> <details><summary>Serverless Complete Feature Flag Enabled 📸 </summary> <img width="1408" height="940" alt="Screenshot 2025-07-30 at 09 48 37" src="https://github.com/user-attachments/assets/df052087-16cd-4514-bad0-6d426d2d40fe" /> </details> <details><summary>Serverless Complete Feature Flag Disabled 📸 </summary> <img width="1419" height="1175" alt="Screenshot 2025-07-30 at 09 57 31" src="https://github.com/user-attachments/assets/7da1e6f9-c34d-4785-b474-978a1b8054c6" /> </details> <details><summary>Serverless Essentials Feature Flag Enabled 📸 </summary> <img width="1423" height="1090" alt="Screenshot 2025-07-30 at 10 03 09" src="https://github.com/user-attachments/assets/7ec19cee-5665-48b8-b17e-517f19b319fe" /> <img width="1418" height="1092" alt="Screenshot 2025-07-30 at 10 03 45" src="https://github.com/user-attachments/assets/05a021fb-c258-48dc-84bb-d02b3a435911" /> <img width="1418" height="883" alt="Screenshot 2025-07-30 at 10 04 15" src="https://github.com/user-attachments/assets/732ef702-7407-47d0-b8fa-4937b4c6c1cb" /> <img width="1412" height="1026" alt="Screenshot 2025-07-30 at 10 04 51" src="https://github.com/user-attachments/assets/f263892d-4d0b-4993-a65f-730400b57c0a" /> <img width="1418" height="811" alt="Screenshot 2025-07-30 at 10 04 58" src="https://github.com/user-attachments/assets/53336a3d-1b04-41a6-b94e-4ac5e9d6810c" /> <img width="1406" height="1378" alt="Screenshot 2025-07-30 at 10 05 19" src="https://github.com/user-attachments/assets/52e822e6-4c74-46ee-9b45-1552659c2671" /> <img width="1425" height="1007" alt="Screenshot 2025-07-30 at 10 05 36" src="https://github.com/user-attachments/assets/56a0db6f-f295-457f-82bf-1637f4ea85cb" /> </details> --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Follow up elastic#229921 This PR adds support for Trusted Devices management in Endpoint policy settings, introducing new UI and backend capabilities gated by license and product feature checks. Final card <img width="1236" height="470" alt="Screenshot 2025-08-01 at 13 01 16" src="https://github.com/user-attachments/assets/d1e14488-507f-4569-bf13-208c10b06196" /> <img width="1652" height="1288" alt="Screenshot 2025-07-30 at 11 42 55" src="https://github.com/user-attachments/assets/e3d6289e-c796-4d23-9cc8-5e3bbc1d8000" /> #### Key Features - **Trusted Devices Privilege:** Users can be assigned a "Trusted Devices" privilege, granting access to the Device Control panel within policy settings. <details><summary>:camera: Screenshots</summary><img width="1423" height="1342" alt="Screenshot 2025-07-28 at 09 49 50" src="https://github.com/user-attachments/assets/f115e31b-6e09-4f04-bf86-ccc77643a408" /></details> - **Product Feature Flag:** Adds the `endpointTrustedDevice` product feature, available as part of the Endpoint Complete Serverless PLI. - **Device Control Section:** Policies now include a Device Control section, allowing users to enable/disable the feature and set the required protection level. - **Feature Flag Coverage:** All UI and backend flows are orchestrated by a dedicated feature flag to ensure consistent enablement and rollout. #### Supported Scenarios - **Exitsting Policy:** When upgrading to this version, existing endpoint policies will display the Device Control section (disabled by default). <details><summary>:camera: Screenshots</summary><img width="1331" height="1194" alt="Screenshot 2025-07-28 at 09 44 11" src="https://github.com/user-attachments/assets/164efc19-bc48-4657-8989-09764556c2f1" /></details> - **New Policy Creation:** New policies have Device Control enabled and set to "Block all" by default. <details><summary>:camera: Screenshots</summary><img width="1364" height="1275" alt="Screenshot 2025-07-28 at 09 44 21" src="https://github.com/user-attachments/assets/299b3f77-0ee4-4921-bd26-f6ad334c4583" /></details> - **Serverless Upsell:** On Serverless, users without Endpoint Complete tier see an upsell component in place of Device Control. <details><summary>:camera: Screenshots</summary><img width="2555" height="1241" alt="Screenshot 2025-07-25 at 21 54 33" src="https://github.com/user-attachments/assets/4137e6bf-8b91-44a2-92c1-927620935d4e" /></details> - **ESS Upsell:** On ESS, users without an Enterprise license see an upsell component instead of Device Control. <details><summary>:camera: Screenshots</summary><img width="1412" height="1168" alt="Screenshot 2025-07-28 at 09 47 20" src="https://github.com/user-attachments/assets/58fe310e-ae77-4dfc-b72d-ce2d6d3cf948" /></details> - **API Enforcement:** All API endpoints for policy creation/modification are gated with PLI and license checks to prevent unauthorized use of Device Control. - **Compliance Task:** A background task checks all policies for compliance with enabled features. Device Control is automatically disabled on non-compliant policies.
…29921) Prerequisite elastic#228958 Followup elastic#230174 ### Device Control — Trusted Devices (UI only) This is the next PR in the Device Control series and focuses on the UI for **Trusted Devices**. **What’s included** - New **Trusted Devices** section under **Management** and a “Trusted devices” tab in policy settings. - Lists API now accepts the `trusted_device` list type (read-only for now). - Feature flag and RBAC/PLI visibility wired up. **What’s missing** - Artifact CRUD ops; the form is stubbed and will be completed in the next PR. **Heads-up** All texts and icons are placeholders while we wait for final assets. That shouldn’t block this PR - we’ll merge with the feature flag disabled. See the attached screenshots for how it behaves in various states. <img width="1405" height="967" alt="Screenshot 2025-07-29 at 13 57 46" src="https://github.com/user-attachments/assets/2c3a3951-5410-44cf-b533-2865a342eb13" /> <img width="1402" height="1124" alt="Screenshot 2025-07-29 at 13 57 59" src="https://github.com/user-attachments/assets/796bc42e-7a40-4306-a6c2-73cb850329aa" /> <img width="1419" height="1142" alt="Screenshot 2025-07-29 at 13 58 06" src="https://github.com/user-attachments/assets/8289d165-8a66-4b12-b554-8dc38b7022c8" /> <img width="1407" height="887" alt="Screenshot 2025-07-29 at 16 51 25" src="https://github.com/user-attachments/assets/39e0543f-d0bc-4698-a169-e6dc54c8c934" /> <img width="1420" height="1181" alt="Screenshot 2025-07-30 at 09 20 46" src="https://github.com/user-attachments/assets/f82b8551-6ada-4ac7-980a-f56daf4f22df" /> <img width="1396" height="1216" alt="Screenshot 2025-07-30 at 09 21 02" src="https://github.com/user-attachments/assets/fb0a1cd2-2e8b-417a-800c-b02926dfe79f" /> <details><summary>ESS Feature Flag Disabled 📸 </summary> <img width="1424" height="880" alt="Screenshot 2025-07-30 at 09 35 27" src="https://github.com/user-attachments/assets/c7b517ed-367f-4783-ad28-5089e7e59341" /> <img width="1399" height="992" alt="Screenshot 2025-07-30 at 09 35 58" src="https://github.com/user-attachments/assets/227944d1-121c-443c-bd54-6b731476cfe1" /> <img width="1412" height="853" alt="Screenshot 2025-07-30 at 09 36 14" src="https://github.com/user-attachments/assets/de37e0af-a9e2-45c7-bb8e-736ecca8c473" /> <img width="1418" height="975" alt="Screenshot 2025-07-30 at 09 36 38" src="https://github.com/user-attachments/assets/9bff9aeb-4cdf-4d33-80a7-4fb765c1e38a" /> <img width="1373" height="1069" alt="Screenshot 2025-07-30 at 09 37 01" src="https://github.com/user-attachments/assets/010a45f9-67ef-439b-a413-8d5c69aa2622" /> <img width="1407" height="826" alt="Screenshot 2025-07-30 at 09 37 16" src="https://github.com/user-attachments/assets/a889f4f9-b4cd-4803-b176-addbd081b161" /> <img width="1405" height="955" alt="Screenshot 2025-07-30 at 09 37 28" src="https://github.com/user-attachments/assets/0f5fee8a-79ee-4b74-9975-013ee13ca0f8" /> </details> <details><summary>ESS Platinum Feature Flag Enabled 📸 </summary> <img width="1427" height="968" alt="Screenshot 2025-07-30 at 09 41 05" src="https://github.com/user-attachments/assets/2bccb7a7-2931-413f-bfae-9d9e7a439236" /> <img width="1413" height="885" alt="Screenshot 2025-07-30 at 09 41 57" src="https://github.com/user-attachments/assets/dd72c88f-ddc1-4b85-9732-fde5877d976f" /> <img width="1338" height="893" alt="Screenshot 2025-07-30 at 09 42 13" src="https://github.com/user-attachments/assets/90e52017-d7b0-48e2-8e4d-1972a1addbe8" /> <img width="1402" height="1377" alt="Screenshot 2025-07-30 at 09 42 26" src="https://github.com/user-attachments/assets/4623dfdd-40e3-471c-b993-c52bcba05ca9" /> <img width="1413" height="1375" alt="Screenshot 2025-07-30 at 09 42 38" src="https://github.com/user-attachments/assets/6deba224-85d2-4356-adc7-59dc9b951d46" /> <img width="1411" height="1379" alt="Screenshot 2025-07-30 at 09 42 49" src="https://github.com/user-attachments/assets/dabb63b4-840d-47f2-82bb-509656723ba4" /> <img width="1415" height="934" alt="Screenshot 2025-07-30 at 09 44 25" src="https://github.com/user-attachments/assets/bc8d59bb-698a-463d-b5e9-d803ddf7310a" /> </details> <details><summary>Serverless Complete Feature Flag Enabled 📸 </summary> <img width="1408" height="940" alt="Screenshot 2025-07-30 at 09 48 37" src="https://github.com/user-attachments/assets/df052087-16cd-4514-bad0-6d426d2d40fe" /> </details> <details><summary>Serverless Complete Feature Flag Disabled 📸 </summary> <img width="1419" height="1175" alt="Screenshot 2025-07-30 at 09 57 31" src="https://github.com/user-attachments/assets/7da1e6f9-c34d-4785-b474-978a1b8054c6" /> </details> <details><summary>Serverless Essentials Feature Flag Enabled 📸 </summary> <img width="1423" height="1090" alt="Screenshot 2025-07-30 at 10 03 09" src="https://github.com/user-attachments/assets/7ec19cee-5665-48b8-b17e-517f19b319fe" /> <img width="1418" height="1092" alt="Screenshot 2025-07-30 at 10 03 45" src="https://github.com/user-attachments/assets/05a021fb-c258-48dc-84bb-d02b3a435911" /> <img width="1418" height="883" alt="Screenshot 2025-07-30 at 10 04 15" src="https://github.com/user-attachments/assets/732ef702-7407-47d0-b8fa-4937b4c6c1cb" /> <img width="1412" height="1026" alt="Screenshot 2025-07-30 at 10 04 51" src="https://github.com/user-attachments/assets/f263892d-4d0b-4993-a65f-730400b57c0a" /> <img width="1418" height="811" alt="Screenshot 2025-07-30 at 10 04 58" src="https://github.com/user-attachments/assets/53336a3d-1b04-41a6-b94e-4ac5e9d6810c" /> <img width="1406" height="1378" alt="Screenshot 2025-07-30 at 10 05 19" src="https://github.com/user-attachments/assets/52e822e6-4c74-46ee-9b45-1552659c2671" /> <img width="1425" height="1007" alt="Screenshot 2025-07-30 at 10 05 36" src="https://github.com/user-attachments/assets/56a0db6f-f295-457f-82bf-1637f4ea85cb" /> </details> --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
…29921) Prerequisite elastic#228958 Followup elastic#230174 ### Device Control — Trusted Devices (UI only) This is the next PR in the Device Control series and focuses on the UI for **Trusted Devices**. **What’s included** - New **Trusted Devices** section under **Management** and a “Trusted devices” tab in policy settings. - Lists API now accepts the `trusted_device` list type (read-only for now). - Feature flag and RBAC/PLI visibility wired up. **What’s missing** - Artifact CRUD ops; the form is stubbed and will be completed in the next PR. **Heads-up** All texts and icons are placeholders while we wait for final assets. That shouldn’t block this PR - we’ll merge with the feature flag disabled. See the attached screenshots for how it behaves in various states. <img width="1405" height="967" alt="Screenshot 2025-07-29 at 13 57 46" src="https://github.com/user-attachments/assets/2c3a3951-5410-44cf-b533-2865a342eb13" /> <img width="1402" height="1124" alt="Screenshot 2025-07-29 at 13 57 59" src="https://github.com/user-attachments/assets/796bc42e-7a40-4306-a6c2-73cb850329aa" /> <img width="1419" height="1142" alt="Screenshot 2025-07-29 at 13 58 06" src="https://github.com/user-attachments/assets/8289d165-8a66-4b12-b554-8dc38b7022c8" /> <img width="1407" height="887" alt="Screenshot 2025-07-29 at 16 51 25" src="https://github.com/user-attachments/assets/39e0543f-d0bc-4698-a169-e6dc54c8c934" /> <img width="1420" height="1181" alt="Screenshot 2025-07-30 at 09 20 46" src="https://github.com/user-attachments/assets/f82b8551-6ada-4ac7-980a-f56daf4f22df" /> <img width="1396" height="1216" alt="Screenshot 2025-07-30 at 09 21 02" src="https://github.com/user-attachments/assets/fb0a1cd2-2e8b-417a-800c-b02926dfe79f" /> <details><summary>ESS Feature Flag Disabled 📸 </summary> <img width="1424" height="880" alt="Screenshot 2025-07-30 at 09 35 27" src="https://github.com/user-attachments/assets/c7b517ed-367f-4783-ad28-5089e7e59341" /> <img width="1399" height="992" alt="Screenshot 2025-07-30 at 09 35 58" src="https://github.com/user-attachments/assets/227944d1-121c-443c-bd54-6b731476cfe1" /> <img width="1412" height="853" alt="Screenshot 2025-07-30 at 09 36 14" src="https://github.com/user-attachments/assets/de37e0af-a9e2-45c7-bb8e-736ecca8c473" /> <img width="1418" height="975" alt="Screenshot 2025-07-30 at 09 36 38" src="https://github.com/user-attachments/assets/9bff9aeb-4cdf-4d33-80a7-4fb765c1e38a" /> <img width="1373" height="1069" alt="Screenshot 2025-07-30 at 09 37 01" src="https://github.com/user-attachments/assets/010a45f9-67ef-439b-a413-8d5c69aa2622" /> <img width="1407" height="826" alt="Screenshot 2025-07-30 at 09 37 16" src="https://github.com/user-attachments/assets/a889f4f9-b4cd-4803-b176-addbd081b161" /> <img width="1405" height="955" alt="Screenshot 2025-07-30 at 09 37 28" src="https://github.com/user-attachments/assets/0f5fee8a-79ee-4b74-9975-013ee13ca0f8" /> </details> <details><summary>ESS Platinum Feature Flag Enabled 📸 </summary> <img width="1427" height="968" alt="Screenshot 2025-07-30 at 09 41 05" src="https://github.com/user-attachments/assets/2bccb7a7-2931-413f-bfae-9d9e7a439236" /> <img width="1413" height="885" alt="Screenshot 2025-07-30 at 09 41 57" src="https://github.com/user-attachments/assets/dd72c88f-ddc1-4b85-9732-fde5877d976f" /> <img width="1338" height="893" alt="Screenshot 2025-07-30 at 09 42 13" src="https://github.com/user-attachments/assets/90e52017-d7b0-48e2-8e4d-1972a1addbe8" /> <img width="1402" height="1377" alt="Screenshot 2025-07-30 at 09 42 26" src="https://github.com/user-attachments/assets/4623dfdd-40e3-471c-b993-c52bcba05ca9" /> <img width="1413" height="1375" alt="Screenshot 2025-07-30 at 09 42 38" src="https://github.com/user-attachments/assets/6deba224-85d2-4356-adc7-59dc9b951d46" /> <img width="1411" height="1379" alt="Screenshot 2025-07-30 at 09 42 49" src="https://github.com/user-attachments/assets/dabb63b4-840d-47f2-82bb-509656723ba4" /> <img width="1415" height="934" alt="Screenshot 2025-07-30 at 09 44 25" src="https://github.com/user-attachments/assets/bc8d59bb-698a-463d-b5e9-d803ddf7310a" /> </details> <details><summary>Serverless Complete Feature Flag Enabled 📸 </summary> <img width="1408" height="940" alt="Screenshot 2025-07-30 at 09 48 37" src="https://github.com/user-attachments/assets/df052087-16cd-4514-bad0-6d426d2d40fe" /> </details> <details><summary>Serverless Complete Feature Flag Disabled 📸 </summary> <img width="1419" height="1175" alt="Screenshot 2025-07-30 at 09 57 31" src="https://github.com/user-attachments/assets/7da1e6f9-c34d-4785-b474-978a1b8054c6" /> </details> <details><summary>Serverless Essentials Feature Flag Enabled 📸 </summary> <img width="1423" height="1090" alt="Screenshot 2025-07-30 at 10 03 09" src="https://github.com/user-attachments/assets/7ec19cee-5665-48b8-b17e-517f19b319fe" /> <img width="1418" height="1092" alt="Screenshot 2025-07-30 at 10 03 45" src="https://github.com/user-attachments/assets/05a021fb-c258-48dc-84bb-d02b3a435911" /> <img width="1418" height="883" alt="Screenshot 2025-07-30 at 10 04 15" src="https://github.com/user-attachments/assets/732ef702-7407-47d0-b8fa-4937b4c6c1cb" /> <img width="1412" height="1026" alt="Screenshot 2025-07-30 at 10 04 51" src="https://github.com/user-attachments/assets/f263892d-4d0b-4993-a65f-730400b57c0a" /> <img width="1418" height="811" alt="Screenshot 2025-07-30 at 10 04 58" src="https://github.com/user-attachments/assets/53336a3d-1b04-41a6-b94e-4ac5e9d6810c" /> <img width="1406" height="1378" alt="Screenshot 2025-07-30 at 10 05 19" src="https://github.com/user-attachments/assets/52e822e6-4c74-46ee-9b45-1552659c2671" /> <img width="1425" height="1007" alt="Screenshot 2025-07-30 at 10 05 36" src="https://github.com/user-attachments/assets/56a0db6f-f295-457f-82bf-1637f4ea85cb" /> </details> --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Follow up #229921
This PR adds support for Trusted Devices management in Endpoint policy settings, introducing new UI and backend capabilities gated by license and product feature checks.
Final card
Key Features
Trusted Devices Privilege:
Users can be assigned a "Trusted Devices" privilege, granting access to the Device Control panel within policy settings.
📷 Screenshots
Product Feature Flag:
Adds the
endpointTrustedDeviceproduct feature, available as part of the Endpoint Complete Serverless PLI.Device Control Section:
Policies now include a Device Control section, allowing users to enable/disable the feature and set the required protection level.
Feature Flag Coverage:
All UI and backend flows are orchestrated by a dedicated feature flag to ensure consistent enablement and rollout.
Supported Scenarios
Exitsting Policy:
When upgrading to this version, existing endpoint policies will display the Device Control section (disabled by default).
📷 Screenshots
New Policy Creation:
New policies have Device Control enabled and set to "Block all" by default.
📷 Screenshots
Serverless Upsell:
On Serverless, users without Endpoint Complete tier see an upsell component in place of Device Control.
📷 Screenshots
ESS Upsell:
On ESS, users without an Enterprise license see an upsell component instead of Device Control.
📷 Screenshots
API Enforcement:
All API endpoints for policy creation/modification are gated with PLI and license checks to prevent unauthorized use of Device Control.
Compliance Task:
A background task checks all policies for compliance with enabled features. Device Control is automatically disabled on non-compliant policies.