Skip to content

Commit 0da6609

Browse files
committed
docs: link Installation Guide in README
1 parent 6072312 commit 0da6609

File tree

2 files changed

+24
-69
lines changed

2 files changed

+24
-69
lines changed
Lines changed: 23 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,33 @@
11
# Sentinel Connector with Azure Function
22

3-
## Requirements
3+
Sentinel Connector allows ingesting WithSecure Security Events into Microsoft Sentinel Logs
4+
Workspace. Connector periodically polls Security Events from Elements backends and forwards
5+
it to Azure cloud.
6+
7+
![WithSecure Security Events in Elements Security Center](docs/images/security_events_list_ok.png)
8+
9+
Sentinel administrator can use ingested events to create Workbooks,
10+
Playbooks and use other Sentinel features.
11+
12+
![Security Events in Sentinel](docs/images/security_events_logs.png)
13+
14+
## Installation
15+
16+
Repository provides packages that help install Connector in Azure cloud. **[Installation Guide](docs/installation_guide.md)**
17+
contains step-by-step installation procedure that will help you start ingesting WithSecure
18+
Security Events.
19+
20+
Contact [WithSecure support](https://www.withsecure.com/en/support) if you need more detail or help with installation.
21+
22+
## Development
23+
24+
### Requirements
425

526
- Python 3.10.x
627
- Poetry (https://python-poetry.org/)
728
- Azure CLI (https://learn.microsoft.com/en-us/cli/azure/)
829

9-
## Project structure
30+
### Project structure
1031

1132
- `app/function_app.py` - entry point for Azure Function
1233
- `app/lib/` - connector implementation responsible for reading data from Elements API and
@@ -17,48 +38,6 @@
1738
- `poetry.toml` - poetry configuration
1839
- `pyproject.toml` - project configuration (dependencies, additional tools, scripts, etc)
1940

20-
## Installation in Azure Cloud
21-
22-
Connector installation has following steps:
23-
24-
1. Create Elements API credentials
25-
2. Creating Azure Entra application.
26-
3. Deploying Azure resources.
27-
4. Preparing installation package.
28-
5. Package installation.
29-
30-
Log Analytics Workspace is not managed with provided deployment templates. It can be created
31-
manually in Azure Portal or from command line. All resources must be deployed in the same
32-
resource group where Log Analytics Workspace is created. In next paragraphs this group is
33-
referenced as `$resource_group`.
34-
35-
Installation requires working Azure CLI. Run `az version` to verify if tool is available.
36-
37-
### Create Elements API credentials
38-
39-
Follow user guide to create Elements API credentials. Save credentials in safe place.
40-
41-
### Create Azure Entra application
42-
43-
Create new [Entra Application](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/tutorial-logs-ingestion-portal#create-microsoft-entra-application)
44-
and credentials. Save secret key in safe place.
45-
46-
### Deploying connector
47-
48-
In this step all resources that are required by Connector are deployed and linked with
49-
existing Log Analytics Workspace and Entra Application.
50-
51-
1. Adjust file `deploy/connector_app_parameters.json`. Set required values:
52-
- `workspaceName` - name of **existing** Log Analytics Workspace,
53-
- `entraObjectId` - principal id of Entra Application. Can be found in Entra Application,
54-
under link `Managed application in local directory` in field `Object ID`,
55-
- `elementsApiClientId` - client id from the WithSecure Elements Portal,
56-
- `elementsApiClientSecret` - client secret from WithSecure Elements Portal,
57-
- `entraTenantId`- value of `Directory (client) ID` property in Entra Application management console,
58-
- `entraClientId`- value of `Application (client) ID` property in Entra Application management console,
59-
- `entraClientSecret` - secret key from Application credentials.
60-
61-
2. Execute command `az deployment group create --name ConnectorApp --resource-group $resource_group --template-file deploy/azuredeploy_connector_app.json --parameters deploy/connector_app_parameters.json`
6241

6342
### Building installation package
6443

@@ -78,8 +57,6 @@ existing Log Analytics Workspace and Entra Application.
7857
date.
7958
3. Wait until new events arrive in table `WsSecurityEvents_CL`.
8059

81-
## Development
82-
8360
### Testing
8461

8562
1. Tests are kept in directory `tests/`. To execute whole suite run command `poetry run pytest`.
@@ -112,25 +89,3 @@ To start function in emulator it needs to be appended to Azure Functions. To do
11289

11390
To learn more visit:
11491
[Quickstart: Create a function in Azure with Python using VS Code](https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-vs-code-python?pivots=python-mode-decorators)
115-
116-
117-
## Troubleshooting
118-
119-
**Security Events are missing**
120-
121-
1. Open invocation logs in Azure Function console.
122-
2. Check if most recent logs contains entry starting with `Execution error`.
123-
3. If there is no error it means that function works as expected. However in Log Analytics
124-
workspace new events might appear with bigger delay.
125-
4. Check if most recent logs contains entry starting with `Found 0 events since $date`.
126-
5. Check security events in Elements Portal. If all events are older that `$date` then
127-
connector works as expected.
128-
6. Otherwise find transaction id (`X-Transaction`) from last request to Elements API and
129-
contact with support team.
130-
131-
**Function handler is not visible in functions list**
132-
133-
If `upload_security_events` function is missing on list it might indicate that Azure couldn't
134-
initialize it. It might be caused by missing dependencies, error in module initialization
135-
or wrong runtime used to build package. There is no easy way to find reason why Azure couldn't
136-
initialize function. The only method is `trial and error`.

integrations/sentinel/data_connector/docs/installation_guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ from file `azuredeploy_connector_app.json` deploys all required resources:
136136
Go to resource group with Sentinel solution. After successful deployment it should contain
137137
items similar to ones from screenshot below.
138138

139-
![Resource group](images/resource_group_after_ok.png)
139+
![Resource group](images/resources_group_after_ok.png)
140140

141141
After deployment connector starts polling Security Events from Elements backend. Every
142142
minute reads most recent events and push to table `WsSecurityEvents_CL` in Log Analytics

0 commit comments

Comments
 (0)