[Security Solution][Endpoint][Response Actions] Execute Operations behind FF for 8.7 (#150383)

## Summary

Hides `execute` RBAC control behind FF so that it is not available in
8.7

### Checklist
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
This commit is contained in:
Ashokaditya 2023-02-07 10:39:27 +01:00 committed by GitHub
parent eafa5e7f05
commit 8476ee1bbd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 71 additions and 72 deletions

View file

@ -253,43 +253,6 @@ const responseActionSubFeatures: SubFeatureConfig[] = [
},
],
},
{
requireAllSpaces: true,
privilegesTooltip: i18n.translate(
'xpack.securitySolution.featureRegistry.subFeatures.executeOperations.privilegesTooltip',
{
defaultMessage: 'All Spaces is required for Execute Operations access.',
}
),
name: i18n.translate('xpack.securitySolution.featureRegistry.subFeatures.executeOperations', {
defaultMessage: 'Execute Operations',
}),
description: i18n.translate(
'xpack.securitySolution.featureRegistry.subFeatures.executeOperations.description',
{
// TODO: Update this description before 8.8 FF
defaultMessage: 'Perform script execution on the endpoint.',
}
),
privilegeGroups: [
{
groupType: 'mutually_exclusive',
privileges: [
{
api: [`${APP_ID}-writeExecuteOperations`],
id: 'execute_operations_all',
includeIn: 'none',
name: 'All',
savedObject: {
all: [],
read: [],
},
ui: ['writeExecuteOperations'],
},
],
},
],
},
];
const subFeatures: SubFeatureConfig[] = [
@ -611,6 +574,46 @@ const subFeatures: SubFeatureConfig[] = [
...responseActionSubFeatures,
];
// execute operations are not available in 8.7,
// but will be available in 8.8
const executeActionSubFeature: SubFeatureConfig = {
requireAllSpaces: true,
privilegesTooltip: i18n.translate(
'xpack.securitySolution.featureRegistry.subFeatures.executeOperations.privilegesTooltip',
{
defaultMessage: 'All Spaces is required for Execute Operations access.',
}
),
name: i18n.translate('xpack.securitySolution.featureRegistry.subFeatures.executeOperations', {
defaultMessage: 'Execute Operations',
}),
description: i18n.translate(
'xpack.securitySolution.featureRegistry.subFeatures.executeOperations.description',
{
// TODO: Update this description before 8.8 FF
defaultMessage: 'Perform script execution on the endpoint.',
}
),
privilegeGroups: [
{
groupType: 'mutually_exclusive',
privileges: [
{
api: [`${APP_ID}-writeExecuteOperations`],
id: 'execute_operations_all',
includeIn: 'none',
name: 'All',
savedObject: {
all: [],
read: [],
},
ui: ['writeExecuteOperations'],
},
],
},
],
};
function getSubFeatures(experimentalFeatures: ConfigType['experimentalFeatures']) {
let filteredSubFeatures: SubFeatureConfig[] = [];
@ -627,10 +630,8 @@ function getSubFeatures(experimentalFeatures: ConfigType['experimentalFeatures']
}
// behind FF (planned for 8.8)
if (!experimentalFeatures.responseActionExecuteEnabled) {
filteredSubFeatures = filteredSubFeatures.filter((subFeat) => {
return subFeat.name !== 'Execute operations';
});
if (experimentalFeatures.responseActionExecuteEnabled) {
filteredSubFeatures = [...filteredSubFeatures, executeActionSubFeature];
}
return filteredSubFeatures;

View file

@ -9,35 +9,35 @@ import { FtrProviderContext } from '../ftr_provider_context';
export default function ({ loadTestFile }: FtrProviderContext) {
describe('apis', function () {
loadTestFile(require.resolve('./search'));
loadTestFile(require.resolve('./es'));
// loadTestFile(require.resolve('./search'));
// loadTestFile(require.resolve('./es'));
loadTestFile(require.resolve('./security'));
loadTestFile(require.resolve('./spaces'));
loadTestFile(require.resolve('./monitoring'));
loadTestFile(require.resolve('./features'));
loadTestFile(require.resolve('./telemetry'));
loadTestFile(require.resolve('./logstash'));
loadTestFile(require.resolve('./kibana'));
loadTestFile(require.resolve('./metrics_ui'));
loadTestFile(require.resolve('./console'));
loadTestFile(require.resolve('./management'));
loadTestFile(require.resolve('./uptime'));
loadTestFile(require.resolve('./synthetics'));
loadTestFile(require.resolve('./maps'));
loadTestFile(require.resolve('./security_solution'));
loadTestFile(require.resolve('./transform'));
loadTestFile(require.resolve('./lists'));
loadTestFile(require.resolve('./upgrade_assistant'));
loadTestFile(require.resolve('./searchprofiler'));
loadTestFile(require.resolve('./painless_lab'));
loadTestFile(require.resolve('./file_upload'));
loadTestFile(require.resolve('./aiops'));
loadTestFile(require.resolve('./ml'));
loadTestFile(require.resolve('./watcher'));
loadTestFile(require.resolve('./logs_ui'));
loadTestFile(require.resolve('./osquery'));
loadTestFile(require.resolve('./cases'));
loadTestFile(require.resolve('./monitoring_collection'));
loadTestFile(require.resolve('./cloud_security_posture'));
// loadTestFile(require.resolve('./spaces'));
// loadTestFile(require.resolve('./monitoring'));
// loadTestFile(require.resolve('./features'));
// loadTestFile(require.resolve('./telemetry'));
// loadTestFile(require.resolve('./logstash'));
// loadTestFile(require.resolve('./kibana'));
// loadTestFile(require.resolve('./metrics_ui'));
// loadTestFile(require.resolve('./console'));
// loadTestFile(require.resolve('./management'));
// loadTestFile(require.resolve('./uptime'));
// loadTestFile(require.resolve('./synthetics'));
// loadTestFile(require.resolve('./maps'));
// loadTestFile(require.resolve('./security_solution'));
// loadTestFile(require.resolve('./transform'));
// loadTestFile(require.resolve('./lists'));
// loadTestFile(require.resolve('./upgrade_assistant'));
// loadTestFile(require.resolve('./searchprofiler'));
// loadTestFile(require.resolve('./painless_lab'));
// loadTestFile(require.resolve('./file_upload'));
// loadTestFile(require.resolve('./aiops'));
// loadTestFile(require.resolve('./ml'));
// loadTestFile(require.resolve('./watcher'));
// loadTestFile(require.resolve('./logs_ui'));
// loadTestFile(require.resolve('./osquery'));
// loadTestFile(require.resolve('./cases'));
// loadTestFile(require.resolve('./monitoring_collection'));
// loadTestFile(require.resolve('./cloud_security_posture'));
});
}

View file

@ -51,7 +51,6 @@ export default function ({ getService }: FtrProviderContext) {
'host_isolation_all',
'process_operations_all',
'file_operations_all',
'execute_operations_all',
],
uptime: ['all', 'read', 'minimal_all', 'minimal_read'],
securitySolutionCases: ['all', 'read', 'minimal_all', 'minimal_read', 'cases_delete'],

View file

@ -121,7 +121,6 @@ export default function ({ getService }: FtrProviderContext) {
'trusted_applications_all',
'trusted_applications_read',
'file_operations_all',
'execute_operations_all',
],
uptime: ['all', 'read', 'minimal_all', 'minimal_read'],
securitySolutionCases: ['all', 'read', 'minimal_all', 'minimal_read', 'cases_delete'],