[8.12] Add docs for SentinelOne connector (#174696) (#176083)

# Backport

This will backport the following commits from `main` to `8.12`:
- [Add docs for SentinelOne connector
(#174696)](https://github.com/elastic/kibana/pull/174696)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Patryk
Kopyciński","email":"contact@patrykkopycinski.com"},"sourceCommit":{"committedDate":"2024-02-01T17:15:26Z","message":"Add
docs for SentinelOne connector (#174696)\n\n## Summary\r\n\r\nAdd docs
for SentinelOne connector\r\n\r\n---------\r\n\r\nCo-authored-by: Joe
Peeples <joe.peeples@elastic.co>\r\nCo-authored-by: Kibana Machine
<42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by:
lcawl
<lcawley@elastic.co>","sha":"04004ddaaccb672ae446bcf2ac4e43958f5f5194","branchLabelMapping":{"^v8.13.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","docs","Feature:Actions/ConnectorTypes","v8.12.0","v8.13.0"],"title":"Add
docs for SentinelOne
connector","number":174696,"url":"https://github.com/elastic/kibana/pull/174696","mergeCommit":{"message":"Add
docs for SentinelOne connector (#174696)\n\n## Summary\r\n\r\nAdd docs
for SentinelOne connector\r\n\r\n---------\r\n\r\nCo-authored-by: Joe
Peeples <joe.peeples@elastic.co>\r\nCo-authored-by: Kibana Machine
<42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by:
lcawl
<lcawley@elastic.co>","sha":"04004ddaaccb672ae446bcf2ac4e43958f5f5194"}},"sourceBranch":"main","suggestedTargetBranches":["8.12"],"targetPullRequestStates":[{"branch":"8.12","label":"v8.12.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.13.0","branchLabelMappingKey":"^v8.13.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/174696","number":174696,"mergeCommit":{"message":"Add
docs for SentinelOne connector (#174696)\n\n## Summary\r\n\r\nAdd docs
for SentinelOne connector\r\n\r\n---------\r\n\r\nCo-authored-by: Joe
Peeples <joe.peeples@elastic.co>\r\nCo-authored-by: Kibana Machine
<42973632+kibanamachine@users.noreply.github.com>\r\nCo-authored-by:
lcawl
<lcawley@elastic.co>","sha":"04004ddaaccb672ae446bcf2ac4e43958f5f5194"}}]}]
BACKPORT-->

Co-authored-by: Patryk Kopyciński <contact@patrykkopycinski.com>
This commit is contained in:
Kibana Machine 2024-02-01 13:33:45 -05:00 committed by GitHub
parent 3457f326b7
commit 22d5c4d220
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 98 additions and 0 deletions

View file

@ -47,6 +47,10 @@ a| <<pagerduty-action-type,PagerDuty>>
| Send an event in PagerDuty.
a| <<sentinelone-action-type,SentinelOne>>
| Send a request to SentinelOne.
a| <<server-log-action-type,ServerLog>>
| Add a message to a Kibana log.

View file

@ -0,0 +1,39 @@
[[sentinelone-action-type]]
== SentinelOne connector
++++
<titleabbrev>SentinelOne</titleabbrev>
++++
:frontmatter-description: Add a connector that can use the SentinelOne API to send actions.
:frontmatter-tags-products: [kibana]
:frontmatter-tags-content-type: [how-to]
:frontmatter-tags-user-goals: [configure]
preview::[]
The SentinelOne connector communicates with SentinelOne Management Console via REST API.
[float]
[[define-sentinelone-ui]]
=== Create connectors in {kib}
You can create connectors in *{stack-manage-app} > {connectors-ui}*. For example:
[role="screenshot"]
image::management/connectors/images/sentinelone-connector.png[SentinelOne connector]
// NOTE: This is an autogenerated screenshot. Do not edit it directly.
[float]
[[sentinelone-connector-configuration]]
==== Connector configuration
SentinelOne connectors have the following configuration properties:
API token:: A SentinelOne API token created by the user.
URL:: The SentinelOne tenant URL. If you are using the <<action-settings,`xpack.actions.allowedHosts`>> setting, make sure the hostname is added to the allowed hosts.
[float]
[[sentinelone-action-parameters]]
=== Test connectors
At this time, you cannot test the SentinelOne connector.

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View file

@ -8,6 +8,7 @@ include::action-types/teams.asciidoc[leveloffset=+1]
include::action-types/openai.asciidoc[leveloffset=+1]
include::action-types/opsgenie.asciidoc[leveloffset=+1]
include::action-types/pagerduty.asciidoc[leveloffset=+1]
include::action-types/sentinelone.asciidoc[leveloffset=+1]
include::action-types/server-log.asciidoc[leveloffset=+1]
include::action-types/servicenow.asciidoc[leveloffset=+1]
include::action-types/servicenow-sir.asciidoc[leveloffset=+1]

View file

@ -45,6 +45,7 @@ export enum ExternalServiceSimulator {
XMATTERS = 'xmatters',
TORQ = 'torq',
TINES = 'tines',
SENTINELONE = 'sentinelone',
}
export function getExternalServiceSimulatorPath(service: ExternalServiceSimulator): string {
@ -63,6 +64,7 @@ export function getAllExternalServiceSimulatorPaths(): string[] {
allPaths.push(`/api/_${NAME}/${ExternalServiceSimulator.MS_EXCHANGE}/1234567/oauth2/v2.0/token`);
allPaths.push(`/api/_${NAME}/${ExternalServiceSimulator.SERVICENOW}/oauth_token.do`);
allPaths.push(`/api/_${NAME}/${ExternalServiceSimulator.TINES}/webhook/path/secret`);
allPaths.push(`/api/_${NAME}/${ExternalServiceSimulator.SENTINELONE}/web/api/v2.1/`);
return allPaths;
}

View file

@ -61,6 +61,7 @@ export default function ({ loadTestFile, getService }: FtrProviderContext) {
loadTestFile(require.resolve('./jira_connector'));
loadTestFile(require.resolve('./opsgenie_connector'));
loadTestFile(require.resolve('./pagerduty_connector'));
loadTestFile(require.resolve('./sentinelone_connector'));
loadTestFile(require.resolve('./server_log_connector'));
loadTestFile(require.resolve('./servicenow_itom_connector'));
loadTestFile(require.resolve('./servicenow_itsm_connector'));

View file

@ -0,0 +1,51 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import {
ExternalServiceSimulator,
getExternalServiceSimulatorPath,
} from '@kbn/actions-simulators-plugin/server/plugin';
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const commonScreenshots = getService('commonScreenshots');
const screenshotDirectories = ['response_ops_docs', 'stack_connectors'];
const pageObjects = getPageObjects(['common', 'header']);
const actions = getService('actions');
const kibanaServer = getService('kibanaServer');
const testSubjects = getService('testSubjects');
let simulatorUrl: string;
let editSimulatorUrl: string;
describe('sentinelone connector', function () {
before(async () => {
simulatorUrl = kibanaServer.resolveUrl(
getExternalServiceSimulatorPath(ExternalServiceSimulator.TINES)
);
editSimulatorUrl = simulatorUrl.replace('/elastic:changeme@', '/');
});
beforeEach(async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
});
it('sentinelone connector screenshots', async () => {
await pageObjects.common.navigateToApp('connectors');
await pageObjects.header.waitUntilLoadingHasFinished();
await actions.common.openNewConnectorForm('sentinelone');
await testSubjects.setValue('nameInput', 'Sentinelone test connector');
await testSubjects.setValue('config.url-input', editSimulatorUrl);
await testSubjects.setValue('secrets.token-input', 'tester');
await commonScreenshots.takeScreenshot('sentinelone-connector', screenshotDirectories);
await testSubjects.click('create-connector-flyout-save-test-btn');
await pageObjects.common.clearAllToasts();
await commonScreenshots.takeScreenshot('sentinelone-params-test', screenshotDirectories);
await testSubjects.click('euiFlyoutCloseButton');
});
});
}