Latest Dynatrace Preview
Dynatrace integration with Amazon GuardDuty allows you to unify and contextualize security findings across tools and products, enabling central prioritization, visualization, and automation.
GuardDuty detects suspicious activities in your AWS accounts, workloads, and data. The Dynatrace platform observes the runtime entities related to those AWS resources. Ingesting the detection findings from GuardDuty helps you analyze them in the context of their production apps.
Amazon GuardDuty events are sent to Amazon EventBridge, which triggers an AWS Lambda function.
The Lambda function pre-processes the events and sends them to Dynatrace via a dedicated OpenPipeline security ingest endpoint.
The OpenPipeline ingest endpoint processes and maps the data according to the Semantic Dictionary conventions.
Data is stored in a bucket called default_security_custom_events
(for details, see: Built-in Grail buckets).
See below for the Amazon GuardDuty and Dynatrace requirements.
Install and configure the latest AWS CLI.
Select the AWS region where you want to create the event forwarder.
In a terminal, run:
aws configure
Set your default region (for example, us-east-1
).
openpipeline.events_security
scope and save it for later.To set up Amazon GuardDuty ingestion, follow the steps below.
Download the Dynatrace CloudFormation template from GitHub.
Set up the secret with the OpenPipeline API token.
Run the following command, making sure to replace <your_API_token>
with your actual access token created in Prerequisites.
aws secretsmanager create-secret \--name dynatrace-aws-guardduty-event-forwarder-open-pipeline-ingest-api-token \--description "Dynatrace token, allows data to be sent to the OpenPipeline endpoint." \--secret-string '{"DYNATRACE_OPENPIPELINE_INGEST_API_TOKEN": "<your_API_token>"}'
Deploy the CloudFormation template and AWS resources.
Run the following command, making sure to replace
<AWS_secret_ARN>
with the ARN of the secret created previously<your_Dynatrace_ingest_URL>
with the URL of your Dynatrace ingest endpoint for security events (for example, https://mytenant.apps.dynatrace.com/platform/ingest/v1/events.security
)aws cloudformation deploy \--template-file ./dynatrace_aws_guardduty_event_forwarder_template.yaml \--stack-name dynatrace-aws-guardduty-event-forwarder \--parameter-overrides \"AwsSecretArn"="<AWS_secret_ARN>" \"DynatraceOpenPipelineEndpoint"="<your_Dynatrace_ingest_URL>" \--capabilities CAPABILITY_NAMED_IAM
Verify configuration by running the following queries in Notebooks:
fetch events| filter dt.system.bucket == "default_security_custom_events"| filter event.kind == "SECURITY_EVENT"AND event.provider=="Amazon GuardDuty"AND event.type=="DETECTION_FINDING"
Detection finding events store the individual detection findings per affected object represented by an AWS resource.
The aws
namespace is added to store AWS-related information with the following fields:
aws.account.id
aws.region
aws.availability_zone
aws.resource.type
aws.resource.name
CONTAINER
: All the detection findings with a container as the target resource are classified as CONTAINER
in object.type
, and the container namespace is added with the corresponding fields:
container.id
container.name
container.image.name
container.image.version
dt.security.risk.level
is mapped from the severity level determined by Amazon GuardDuty mapping of the severity score (detail.severity
).
dt.security.risk.score
is mapped directly from the severity score (detail.severity
) set by Amazon GuardDuty.
dt.security.risk.level
(mapped from finding.severity
)dt.security.risk.score
(mapped from finding.score
)