Collect Akamai DNS logs
Parser Version: 4.0
This document explains how to ingest Akamai DNS logs to Google Security Operations using Google Cloud Storage V2.
Akamai Edge DNS is an authoritative DNS service that provides fast, highly available, and secure DNS resolution. It leverages the Akamai Intelligent Edge Platform to deliver DNS responses from the closest point of presence, offering built-in DDoS protection and DNSSEC support. You can use Akamai DataStream 2 to stream Edge DNS query logs to a Google Cloud Storage bucket, which Google SecOps then ingests.
Before you begin
Make sure that you have the following prerequisites:
- A Google SecOps instance
- A GCP project with Cloud Storage API enabled
- Permissions to create and manage GCS buckets
- Permissions to manage IAM policies on GCS buckets
- An Akamai Control Center account with DataStream access
- An Akamai contract that includes Edge DNS and DataStream 2
- Edge DNS zones configured and active in your Akamai account
Create Google Cloud Storage bucket
- Go to the Google Cloud Console.
- Select your project or create a new one.
- In the navigation menu, go to Cloud Storage > Buckets.
- Click Create bucket.
Provide the following configuration details:
Setting Value Name your bucket Enter a globally unique name (for example, akamai-dns-logs)Location type Choose based on your needs (Region, Dual-region, Multi-region) Location Select the location (for example, us-central1)Storage class Standard (recommended for frequently accessed logs) Access control Uniform (recommended) Protection tools Optional: Enable object versioning or retention policy Click Create.
Create a GCS service account for DataStream 2
DataStream 2 requires a GCS service account with write permissions to deliver logs to your bucket.
Create service account
- In the GCP Console, go to IAM & Admin > Service Accounts.
- Click Create Service Account.
- Provide the following configuration details:
- Service account name: Enter
akamai-datastream-sa - Service account description: Enter
Service account for Akamai DataStream 2 to write Edge DNS logs to GCS
- Service account name: Enter
- Click Create and Continue.
- In the Grant this service account access to project section, add the following role:
- Click Select a role.
- Search for and select Storage Object Creator.
- Click Continue.
- Click Done.
Create and download a service account key
- In the GCP Console, go to IAM & Admin > Service Accounts.
- Click on the service account (
akamai-datastream-sa). - Go to the Keys tab.
- Click Add Key > Create new key.
- Select JSON as the key type.
- Click Create.
- Save the downloaded JSON key file securely. You will need the service account name and private key values when configuring DataStream 2.
Grant IAM permissions on GCS bucket
Grant the service account write permissions on the GCS bucket:
- Go to Cloud Storage > Buckets.
- Click on your bucket name (for example,
akamai-dns-logs). - Go to the Permissions tab.
- Click Grant access.
- Provide the following configuration details:
- Add principals: Enter the service account email (for example,
akamai-datastream-sa@PROJECT_ID.iam.gserviceaccount.com) - Assign roles: Select Storage Object Creator
- Add principals: Enter the service account email (for example,
- Click Save.
Configure DataStream 2 for Edge DNS
DataStream 2 replaces the legacy Log Delivery Service (LDS) for streaming Edge DNS logs. Use DataStream 2 to create a stream that collects Edge DNS query logs and delivers them to your GCS bucket.
Create an Edge DNS stream
- Sign in to Akamai Control Center.
- Go to ☰ > COMMON SERVICES > DataStream.
- Click Create stream.
- Select Edge DNS from the drop-down list.
- In the Configuration tab, provide the following configuration details:
- Display Name: Enter a name for the stream (for example,
Edge DNS to GCS) - Group: Select the relevant account control group
- Contract ID: Verify the contract number associated with the group
- Display Name: Enter a name for the stream (for example,
- In Select zones, choose the Edge DNS zones you want the stream to collect log data for.
- Click Next.
Choose data parameters
On the Data Sets tab, select the data set fields you want to include in the stream. The following fields are available for Edge DNS:
Data Element JSON Key Description Epoch timestamp timeStampUnix epoch timestamp of the log entry Date dateUTC date for the log entry Resolver IP requestIPIP address of the DNS resolver making the request Request port requestPortPort number of the DNS resolver Request name requestNameQuery name of the request Class dnsClassDNS class of the request Request type requestTypeDNS record type of the request EDNS0 flag edns0FlagEDNS0 Client Subnet (ECS) indicator EDNS0 size edns0SizeECS field size in bytes DNSSEC flag dnssecFlagDNSSEC indicator TCP flag tcpFlagTCP indicator Answers answersRequest answers for a request query name Time timeUTC time for the log entry Click Next.
Configure Google Cloud Storage destination
- On the Destination tab, select Google Cloud Storage.
Provide the following configuration details:
- Display name: Enter a name for the destination (for example,
GCS Edge DNS Logs) - Bucket: Enter the name of the GCS bucket (for example,
akamai-dns-logs) - Project ID: Enter your GCP project ID
- Path (optional): Enter a folder path for log files (for example,
akamai-dns) - Service account name: Enter the service account name from the JSON key file (
akamai-datastream-sa) Private key: Enter the
private_keyvalue from the JSON key file in PEM format with line break symbols-----BEGIN PRIVATE KEY-----\nprivate_key_content\n-----END PRIVATE KEY-----\n
- Display name: Enter a name for the destination (for example,
Click Validate & Save to test the connection to your GCS bucket.
Optionally, in the Delivery options menu:
- Edit the Filename field to change the prefix and suffix for log files
- Change the Push frequency to receive bundled logs every 30 or 60 seconds
Click Next to go to the Summary tab.
Review and activate
- On the Summary tab, review the stream configuration.
- Click Activate stream.
- Wait for the stream status to change to Active (this may take a few minutes).
Verify log delivery
- After the stream is active, wait for the configured push frequency interval (30 or 60 seconds).
- Go to the Google Cloud Console.
- Go to Cloud Storage > Buckets.
- Click on your bucket name (for example,
akamai-dns-logs). - Navigate to the path folder (for example,
akamai-dns/). - Verify that new log files are being created.
If log files are not appearing:
- Verify the stream status is Active in the DataStream dashboard
- Check that the service account has Storage Object Creator permissions on the bucket
- Verify the bucket name and project ID are correct in the stream configuration
- Check for validation errors in the DataStream dashboard
Retrieve the Google SecOps service account
Google SecOps uses a unique service account to read data from your GCS bucket. You must grant this service account access to your bucket.
Get the service account email
- Go to SIEM Settings > Feeds.
- Click Add New Feed.
- Click Configure a single feed.
- In the Feed name field, enter a name for the feed (for example,
Akamai DNS Logs). - Select Google Cloud Storage V2 as the Source type.
- Select AKAMAI_DNS as the Log type.
- Click Get Service Account.
A unique service account email will be displayed, for example:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comCopy this email address for use in the next step.
Click Next.
Specify values for the following input parameters:
Storage bucket URL: Enter the GCS bucket URI with the prefix path:
gs://akamai-dns-logs/akamai-dns/
Source deletion option: Select the deletion option according to your preference:
- Never: Never deletes any files after transfers (recommended for testing).
- Delete transferred files: Deletes files after successful transfer.
Delete transferred files and empty directories: Deletes files and empty directories after successful transfer.
Maximum File Age: Include files modified in the last number of days (default is 180 days)
Asset namespace: The asset namespace
Ingestion labels: The label to be applied to the events from this feed
Click Next.
Review your new feed configuration in the Finalize screen, and then click Submit.
Grant IAM permissions to the Google SecOps service account
The Google SecOps service account needs Storage Object Viewer role on your GCS bucket.
- Go to Cloud Storage > Buckets.
- Click on your bucket name (for example,
akamai-dns-logs). - Go to the Permissions tab.
- Click Grant access.
- Provide the following configuration details:
- Add principals: Paste the Google SecOps service account email
- Assign roles: Select Storage Object Viewer
Click Save.
UDM mapping table
| Log Field | UDM Mapping | Logic |
|---|---|---|
timestamp |
metadata.event_timestamp |
Parsed from the timestamp field in the raw log. |
source_ip |
principal.ip |
The value is taken from the source_ip field. |
source_port |
principal.port |
The value is taken from the source_port field and converted to an integer. |
query |
network.dns.questions.name |
The value is taken from the query field. |
query_type |
network.dns.questions.type |
The value is taken from the query_type field and mapped to DNS record type. |
response_code |
network.dns.response_code |
The value is taken from the response_code field. |
metadata.event_type |
Set to NETWORK_DNS if principal information is present; otherwise set to GENERIC_EVENT. |
|
metadata.product_name |
Set to Akamai DNS. |
|
metadata.vendor_name |
Set to Akamai. |
Change Log
View the Change Log for this parser
Need more help? Get answers from Community members and Google SecOps professionals.