Configure audit log export via API for integration with any SIEM system
This is a guide for configuring audit log export via Audit Logs API to your SIEM system. You must perform the settings on the SIEM system side yourself according to its official documentation. For integration with RuSIEM and Wazuh, use the following instructions: Configure integration with RuSIEM and Configure integration with Wazuh.
- Create a service user.
- Get an IAM token for the account.
- Get the script for audit log export.
- Configure and run the script.
- Configure log ingestion in the SIEM system.
1. Create a service user
Add a service user with the audit_logs.admin. role.
Users can be added by the Account Owner or users with the iam.admin. role.
2. Get an account IAM token
Get an account IAM token for the service user you created in step 1.
3. Get the script for exporting audit logs to a SIEM system
We have prepared a script for exporting audit logs; it allows you to download logs to a file, as well as send them to a specified IP address or endpoint via the syslog or HTTP/HTTPS protocol.
-
Open the CLI.
-
Clone the script repository:
git clone https://github.com/t-rex-general/auditlog-integration.gitThe script files will be saved in the working directory to the
auditlog-integrationfolder.
4. Configure and run the script
The script allows you to receive logs in several ways:
- upload to a file;
- send to an IP address via the
syslog; - send to an endpoint via the
HTTP/HTTPS.
Configure the script depending on the required log collection method:
Upload to a file
Send via syslog
Send via HTTP/HTTPS
-
Open the CLI.
-
Create a virtual environment:
python3 -m venv .venv -
Activate the virtual environment:
source .venv/bin/activate -
Go to the script folder:
cd auditlog-integration -
Install the necessary dependencies:
pip3 install -r requirements.txt -
Create a configuration file
.env:touch .env -
Open the configuration file
.env:nano .env -
Fill in the configuration file
.env:8.1. Add a block with authentication parameters for the Audit Logs service API:
AUDIT_LOGS_URL=<base_url>/v1/logsUSERNAME=<username>PASSWORD=<password>ACCOUNT_ID=<account_id>Specify:
<base_url>— API URL for audit logs in the required pool. A list of URLs can be found in the List of URLs;<username>— name of the service user you created in step 1;<password>— service user password. If the password contains[]\^$.|?*+()characters, escape them by adding a backslash\;<account_id>— account number, which can be seen in the Control panel in the top right corner.
8.2. Add a block with event submission parameters:
TRANSPORT_TYPE=fileBy default, logs are saved in the script folder to the
events.txtfile.8.3. Add a line with the API request interval:
POLL_INTERVAL=<poll_interval>Specify
<poll_interval>— API request interval in seconds (default is 30).8.4. Exit the file and save changes: to do this, press sequentially Ctrl+X → Y → Enter.
8.5. Optional: change the log file name; to do this, in the script folder open the
savers.pyfile, find theclass FileSaverblock, and change the value in theself.filenamefield. -
Run the script:
python3 main.py
5. Configure log ingestion in the SIEM system
Configure log ingestion in your SIEM system. Use the official documentation for your SIEM system.