Export Audit Logs to ADLS
Create an ADSL shared access signature token for the export
Before Immuta can export audit events to your Azure Data Lake Storage (ADLS) Gen2 storage account, you need to create a shared access signature (SAS) token that allows the Immuta audit service to add audit logs to your specified ADLS storage account and file system.
Follow the Azure documentation to create the following in Azure:
-
An ADLS Gen2 storage account with the following settings required for audit export:
- Enable hierarchical namespace
- Standard performance is adequate, but premium may be used
-
A shared access signature (SAS) for your dedicated container with at least the following permissions at the storage account or container level:
- Create
- Write
Save the SAS token to use in the next steps. Do not navigate away from the SAS page unless you have saved the token.
Configure the audit export to ADLS
You can configure your audit export destination using one of two methods:
Using the Immuta CLI
Install the Immuta CLI
Download the binary in a tab below that corresponds to your operating system:
-
Linux x86_64 (amd64)
curl -Lo immuta https://immuta-platform-artifacts.s3.amazonaws.com/cli/latest/immuta_cli_linux_amd64 && chmod +x immuta
-
Linux ARMv8 (arm64)
curl -Lo immuta https://immuta-platform-artifacts.s3.amazonaws.com/cli/latest/immuta_cli_linux_arm64 && chmod +x immuta
-
Darwin x86_64 (amd64)
curl -Lo immuta https://immuta-platform-artifacts.s3.amazonaws.com/cli/latest/immuta_cli_darwin_amd64 && chmod +x immuta
-
Darwin ARMv8 (arm64)
curl -Lo immuta https://immuta-platform-artifacts.s3.amazonaws.com/cli/latest/immuta_cli_darwin_arm64 && chmod +x immuta
The latest stable binary can be found here: https://immuta-platform-artifacts.s3.amazonaws.com/cli/latest/immuta_cli_windows_amd64.
Download and add the binary to a directory in your system's $PATH as immuta.exe.
Configure the Immuta CLI
For descriptions of the commands used below, see the Immuta audit export configuration CLI reference guide.
- The SHA 256 checksum is available to verify the file at https://immuta-platform-artifacts.s3.amazonaws.com/cli/latest/immuta_cli_SHA256SUMS.
- Run
immuta configure
in your terminal. - Enter the URL of your Immuta tenant in the interactive prompt.
- Enter your Immuta API Key.
Configure Immuta to export audit logs to ADLS
-
Set the following parameters in a JSON or YAML file:
- interval: The interval at which audit logs will be exported to your ADLS storage. They can be sent at 2-, 4-, 6-, 12-, or 24-hour intervals.
- storage account: The name of the storage account you created that your audit logs will be sent to.
- file system: The name of the file system (or container) you created that your audit logs will be written to.
- path: The name of the path in the file system. This will be a new folder or directory in the container where Immuta will send your audit logs for storage.
- SAS token: The previously-generated SAS token.
{ "interval": "EVERY_12_HOURS", "storageAccount": "your-adls-storage-account", "filesystem": "audit-output", "path": "immuta-audit", "sasToken": "your-sas-token" }
-
Create an export configuration in Immuta by running the following command:
immuta audit exportConfig create:adls ./your-exportConfig.json
List all configurations
To view all of the export configurations created for your Immuta tenant, run the following command:
immuta audit exportConfig list
View a configuration
To review a specific export configuration, run the get command with the export configuration ID as the argument:
immuta audit exportConfig get your-exportConfig-ID
Disable a configuration
To disable a configuration, run the following command with the export configuration ID as the argument:
immuta audit exportConfig disable your-exportConfig-ID
Enable a configuration
To enable a disabled configuration, run the following command with the export configuration ID as the argument:
immuta audit exportConfig enable your-exportConfig-ID
Delete a configuration
To delete an export configuration, run the following command with the export configuration ID as the argument:
immuta audit exportConfig delete your-exportConfig-ID
Using the audit service GraphQL API
Configure Immuta to export audit logs to ADLS Gen2
-
Pass the following fields into the $data variable used in the mutation in the next step:
- interval: The interval at which audit logs will be exported to your ADLS storage. They can be sent at 2-, 4-, 6-, 12-, or 24-hour intervals.
- storage account: The name of the storage account you created that your audit logs will be sent to.
- file system: The name of the file system (or container) you created that your audit logs will be written to.
- path: The name of the path in the file system. This will be a new folder or directory in the container where Immuta will send your audit logs for storage.
- SAS token: The previously-generated SAS token.
{ "interval": "EVERY_12_HOURS", "storageAccount": "your-adls-storage-account", "filesystem": "audit-output", "path": "immuta-audit", "sasToken": "your-sas-token" }
-
Configure these settings in Immuta using the
createAdlsExportConfiguration
mutation:mutation createAdlsExportConfiguration($data: CreateAdlsExportConfigurationInput!) { createAdlsExportConfiguration(data: $data) { id enabled interval endpointConfiguration { ... on AdlsEndpointConfiguration { storageAccount filesystem path } } } }
The ADLS export configuration to create.
{"data": CreateAdlsExportConfigurationInput}
{ "interval": "EVERY_2_HOURS", "storageAccount": "your-adls-storage-account", "filesystem": "audit-output", "path": "immuta-audit", "sasToken": "your-sas-token" }
{ "data": { "createADlsExportConfiguration": { "id": "4", "enabled": true, "interval": "EVERY_2_HOURS", "endpointConfiguration": { "storageAccount": "your-adls-storage-account", "filesystem": "audit-output", "path": "immuta-audit" } } } }
Disable a configuration
To disable a configuration, use the disableExportConfiguration
mutation:
mutation disableExportConfiguration($id: String!) {
disableExportConfiguration(id: $id) {
id
interval
enabled
}
}
The ID of the export configuration to disable.
{"id": "4"}
{
"data": {
"disableExportConfiguration": {
"id": "4",
"interval": "EVERY_2_HOURS",
"enabled": false
}
}
}
Enable a configuration
To enable a disabled configuration, use the enableExportConfiguration
mutation:
mutation enableExportConfiguration($id: String!) {
enableExportConfiguration(id: $id) {
id
interval
enabled
}
}
The ID of the export configuration to enable.
{"id": "4"}
{
"data": {
"enableExportConfiguration": {
"id": "4",
"interval": "EVERY_2_HOURS",
"enabled": true
}
}
}